{
  "generator": "cannon website 2.15.5",
  "timestamp": 1748865255,
  "def": {
    "setting": {
      "minimum_liquidity_ratio": {
        "defaultValue": "1100000000000000000"
      },
      "account_timeout_withdraw": {
        "defaultValue": "86400"
      },
      "snx_package": {
        "defaultValue": "synthetix:3.12.0"
      },
      "owner": {
        "defaultValue": "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
      },
      "target_preset": {
        "defaultValue": "main"
      },
      "salt": {
        "defaultValue": "0x3330363734343032330000000000000000000000000000000000000000000000"
      },
      "bundleSalt": {
        "defaultValue": "snax"
      },
      "deployer": {
        "defaultValue": "0x302d2451d9f47620374B54c521423Bf0403916A2"
      },
      "snx_aggregator_address": {
        "defaultValue": "0x2FCF37343e916eAEd1f1DdaaF84458a359b53877"
      },
      "snx_chainlink_staleness_tolerance": {
        "defaultValue": "3600"
      },
      "snx_address": {
        "defaultValue": "<%= imports.legacyMarket.imports.v2x.contracts.ProxySynthetix.address %>"
      },
      "snx_liquidation_reward": {
        "defaultValue": "<%= parseEther('10') %>"
      },
      "legacy_market_package": {
        "defaultValue": "synthetix-legacy-market:3.12.1"
      },
      "sc_pool_id": {
        "defaultValue": "1"
      },
      "pool_owner": {
        "defaultValue": "0x302d2451d9f47620374B54c521423Bf0403916A2"
      },
      "ccip_router": {
        "defaultValue": "0x261c05167db67B2b619f9d312e0753f3721ad6E8"
      },
      "ccip_token_pool": {
        "defaultValue": "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8"
      },
      "spot_market_package": {
        "defaultValue": "synthetix-spot-market:3.6.0"
      },
      "eth_aggregator_address": {
        "defaultValue": "0x13e3Ee699D1909E989722E753853AE30b17e08c5"
      },
      "pythPriceVerificationAddress": {
        "defaultValue": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C"
      },
      "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"
      },
      "weth_address": {
        "defaultValue": "0x4200000000000000000000000000000000000006"
      },
      "synthEthAsyncFixedFee": {
        "defaultValue": "0.001"
      },
      "synthEthMaxMarketCollateral": {
        "defaultValue": "0"
      },
      "synthEthSkewScale": {
        "defaultValue": "100000"
      },
      "synthEthWrapFee": {
        "defaultValue": "0.0001"
      },
      "synthEthUnwrapFee": {
        "defaultValue": "0.0001"
      },
      "v2x_package": {
        "defaultValue": "synthetix:2.101.2"
      },
      "oracle_manager_package": {
        "defaultValue": "oracle-manager:3.10.1"
      },
      "perps_market_package": {
        "defaultValue": "synthetix-perps-market:3.6.0"
      },
      "treasury_market_package": {
        "defaultValue": "synthetix-treasury-market:3.12.3"
      },
      "btc_aggregator_address": {
        "defaultValue": "0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593"
      },
      "pdao": {
        "defaultValue": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
      },
      "treasury": {
        "defaultValue": "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99"
      },
      "treasury_pool_id_setting": {
        "defaultValue": "8"
      },
      "treasury_aux_token_address": {
        "defaultValue": "<%= imports.legacyMarket.imports.v2x.contracts.ProxysUSD.address %>"
      },
      "treasury_aux_recipient": {
        "defaultValue": "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99"
      },
      "treasury_aux_ratio": {
        "defaultValue": "<%= parseEther('0.2') %>"
      },
      "treasury_aux_reset_time": {
        "description": "1000 years time to reset, we never reset, pause only",
        "defaultValue": "<%= 1000 * 365 * 24 * 3600  %>"
      },
      "ethSettlementWindowDuration": {
        "defaultValue": "60"
      },
      "ethSettlementDelay": {
        "defaultValue": "15"
      },
      "treasury_market_target_cratio": {
        "defaultValue": "<%= parseEther('1.1') %>"
      },
      "position_manager_address": {
        "defaultValue": "0x693cd986b8b840607d3c7952f038bc22da636f48"
      },
      "pythEthFeedId": {
        "defaultValue": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace"
      }
    },
    "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": [
          [],
          []
        ],
        "depends": [
          "provision.system"
        ]
      },
      "permitCreatePool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addToFeatureFlagAllowlist",
        "args": [
          "<%= formatBytes32String('createPool') %>",
          "<%= settings.deployer %>"
        ]
      },
      "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
          }
        }
      },
      "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
          }
        ]
      },
      "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": [
          "<%= extras.treasury_pool_id %>"
        ],
        "depends": [
          "invoke.createScPool"
        ]
      },
      "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
        ]
      },
      "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"
        ]
      },
      "createEthSynth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "createSynth",
        "args": [
          "Synthetic Ethereum",
          "snxETH",
          "<%= settings.owner %>"
        ],
        "extra": {
          "synth_eth_market_id": {
            "event": "SynthRegistered",
            "arg": 0
          },
          "synth_eth_token_address": {
            "event": "SynthRegistered",
            "arg": 1
          }
        }
      },
      "setSynthPriceEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "updatePriceData",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= extras.eth_oracle_id %>",
          "<%= extras.eth_oracle_id %>"
        ]
      },
      "setSynthAtomicFixedFeeEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setAtomicFixedFee",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= MaxUint256 %>"
        ]
      },
      "setSynthSettlementStrategyEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setSettlementStrategy",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "0",
          {
            "strategyType": "1",
            "settlementDelay": "<%= settings.bigCapSettlementDelay %>",
            "settlementWindowDuration": "<%= settings.bigCapSettlementWindowDuration %>",
            "priceVerificationContract": "<%= settings.pythPriceVerificationAddress %>",
            "feedId": "<%= settings.pythEthFeedId %>",
            "url": "<%= settings.pythFeedUrl %>",
            "settlementReward": 0,
            "minimumUsdExchangeAmount": "<%= parseEther(settings.settlementMinimumUsdExchangeAmount) %>",
            "maxRoundingLoss": "<%= parseEther(settings.settlementMaxRoundingLoss) %>",
            "priceDeviationTolerance": "<%= parseEther('1') %>",
            "disabled": false
          }
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.spotFactory",
          "setting.bigCapSettlementDelay",
          "setting.bigCapSettlementWindowDuration",
          "setting.pythEthFeedId",
          "setting.pythFeedUrl",
          "setting.pythPriceVerificationAddress",
          "setting.settlementMaxRoundingLoss",
          "setting.settlementMinimumUsdExchangeAmount"
        ]
      },
      "setSynthAsyncFixedFeeEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setAsyncFixedFee",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= parseEther(settings.synthEthAsyncFixedFee) %>"
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.spotFactory",
          "setting.synthEthAsyncFixedFee"
        ]
      },
      "setSynthMaxMarketCollateralEth": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner",
          "args": []
        },
        "func": "configureMaximumMarketCollateral",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= settings.weth_address %>",
          "<%= parseEther(settings.synthEthMaxMarketCollateral) %>"
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.system",
          "setting.synthEthMaxMarketCollateral",
          "setting.weth_address"
        ]
      },
      "configureSynthWrapperEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setWrapper",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= settings.weth_address %>",
          "<%= parseEther(settings.synthEthMaxMarketCollateral) %>"
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.spotFactory",
          "setting.synthEthMaxMarketCollateral",
          "setting.weth_address"
        ]
      },
      "setSynthSkewScaleEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setMarketSkewScale",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= parseEther(settings.synthEthSkewScale) %>"
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.spotFactory",
          "setting.synthEthSkewScale"
        ]
      },
      "setSynthWrapperFeesEth": {
        "target": [
          "spotFactory.SpotMarketProxy"
        ],
        "fromCall": {
          "func": "getMarketOwner",
          "args": [
            "<%= extras.synth_eth_market_id %>"
          ]
        },
        "func": "setWrapperFees",
        "args": [
          "<%= extras.synth_eth_market_id %>",
          "<%= parseEther(settings.synthEthWrapFee) %>",
          "<%= parseEther(settings.synthEthUnwrapFee) %>"
        ],
        "depends": [
          "invoke.createEthSynth",
          "provision.spotFactory",
          "setting.synthEthUnwrapFee",
          "setting.synthEthWrapFee"
        ]
      },
      "GovernanceProxy_setRegisteredEmitters_ambassador": {
        "target": [
          "governance_satellite_ambassador.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setRegisteredEmitters",
        "args": [
          [
            "43",
            "2",
            "24"
          ],
          [
            "<%= governance_satellite_ambassador.GovernanceProxy.address %>",
            "<%= governance_satellite_ambassador.GovernanceProxy.address %>",
            "<%= governance_satellite_ambassador.GovernanceProxy.address %>"
          ]
        ]
      },
      "GovernanceProxy_setRegisteredEmitters_spartan": {
        "target": [
          "governance_satellite_spartan.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setRegisteredEmitters",
        "args": [
          [
            "43",
            "2",
            "24"
          ],
          [
            "<%= governance_satellite_spartan.GovernanceProxy.address %>",
            "<%= governance_satellite_spartan.GovernanceProxy.address %>",
            "<%= governance_satellite_spartan.GovernanceProxy.address %>"
          ]
        ]
      },
      "GovernanceProxy_setRegisteredEmitters_treasury": {
        "target": [
          "governance_satellite_treasury.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setRegisteredEmitters",
        "args": [
          [
            "43",
            "2",
            "24"
          ],
          [
            "<%= governance_satellite_treasury.GovernanceProxy.address %>",
            "<%= governance_satellite_treasury.GovernanceProxy.address %>",
            "<%= governance_satellite_treasury.GovernanceProxy.address %>"
          ]
        ]
      },
      "GovernanceProxy_setGasLimit_ambassador": {
        "target": [
          "governance_satellite_ambassador.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setGasLimit",
        "args": [
          "<%= String(1_000_000) %>"
        ]
      },
      "GovernanceProxy_setGasLimit_spartan": {
        "target": [
          "governance_satellite_spartan.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setGasLimit",
        "args": [
          "<%= String(1_000_000) %>"
        ]
      },
      "GovernanceProxy_setGasLimit_treasury": {
        "target": [
          "governance_satellite_treasury.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setGasLimit",
        "args": [
          "<%= String(1_000_000) %>"
        ]
      },
      "GovernanceProxy_setSnapshotContract_ambassador": {
        "target": [
          "governance_satellite_ambassador.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setSnapshotContract",
        "args": [
          "<%= settings.governance_snapshot_record %>",
          "<%= settings.governance_ambassador_weight %>",
          true
        ]
      },
      "GovernanceProxy_setSnapshotContract_spartan": {
        "target": [
          "governance_satellite_spartan.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setSnapshotContract",
        "args": [
          "<%= settings.governance_snapshot_record %>",
          "<%= settings.governance_spartan_weight %>",
          true
        ]
      },
      "GovernanceProxy_setSnapshotContract_treasury": {
        "target": [
          "governance_satellite_treasury.GovernanceProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setSnapshotContract",
        "args": [
          "<%= settings.governance_snapshot_record %>",
          "<%= settings.governance_treasury_weight %>",
          true
        ]
      },
      "SynthetixDebtShare_addAuthorizedToSnapshot_ambassador": {
        "target": [
          "v2x.SynthetixDebtShare"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addAuthorizedToSnapshot",
        "args": [
          "<%= governance_satellite_ambassador.GovernanceProxy.address %>"
        ]
      },
      "SynthetixDebtShare_addAuthorizedToSnapshot_spartan": {
        "target": [
          "v2x.SynthetixDebtShare"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addAuthorizedToSnapshot",
        "args": [
          "<%= governance_satellite_spartan.GovernanceProxy.address %>"
        ]
      },
      "SynthetixDebtShare_addAuthorizedToSnapshot_treasury": {
        "target": [
          "v2x.SynthetixDebtShare"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addAuthorizedToSnapshot",
        "args": [
          "<%= governance_satellite_treasury.GovernanceProxy.address %>"
        ]
      },
      "createTreasuryPool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "createPool",
        "args": [
          "<%= settings.treasury_pool_id_setting %>",
          "<%= settings.pdao %>"
        ],
        "extra": {
          "treasury_pool_id": {
            "event": "PoolCreated",
            "arg": 0
          }
        },
        "depends": [
          "invoke.permitCreatePool"
        ]
      },
      "setTreasuryPoolName": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "getPoolOwner",
          "args": [
            "<%= extras.treasury_pool_id %>"
          ]
        },
        "func": "setPoolName",
        "args": [
          "<%= extras.treasury_pool_id %>",
          "Treasury Pool"
        ]
      },
      "setTreasuryPoolCollateralDisabled": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "getPoolOwner",
          "args": [
            "<%= extras.treasury_pool_id %>"
          ]
        },
        "func": "setPoolCollateralDisabledByDefault",
        "args": [
          "<%= extras.treasury_pool_id %>",
          true
        ]
      },
      "setTreasuryPoolSnxExclusiveDeposit": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "getPoolOwner",
          "args": [
            "<%= extras.treasury_pool_id %>"
          ]
        },
        "func": "setPoolCollateralConfiguration",
        "args": [
          "<%= extras.treasury_pool_id %>",
          "<%= settings.snx_address %>",
          {
            "collateralLimitD18": "<%= MaxUint256 %>",
            "issuanceRatioD18": "<%= MaxUint256 %>"
          }
        ]
      },
      "disable_treasury_pool_liquidations": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= keccak256(defaultAbiCoder.encode(['bytes32', 'uint256'], [formatBytes32String('disablePoolLiquidation'), 8])) %>",
          "<%= keccak256('1') %>"
        ]
      },
      "set_treasury_account": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= formatBytes32String('treasuryAccountId') %>",
          "<%= defaultAbiCoder.encode(['uint256'], [settings.treasury_account_id]) %>"
        ]
      },
      "set_treasury_pool": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= formatBytes32String('treasuryPoolId') %>",
          "<%= defaultAbiCoder.encode(['uint256'], [settings.treasury_pool_id]) %>"
        ]
      },
      "allow_liquidate_to_treasury": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "addToFeatureFlagAllowlist",
        "args": [
          "<%= formatBytes32String('liquidateToTreasury') %>",
          "<%= settings.treasury_liquidator_address %>"
        ]
      },
      "pauseLMMigration": {
        "target": [
          "legacyMarket.Proxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setPauseMigration",
        "args": [
          false
        ]
      },
      "disableLiquidate": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setFeatureFlagAllowAll",
        "args": [
          "<%= formatBytes32String('liquidate') %>",
          false
        ]
      },
      "disableLiquidateVault": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setFeatureFlagAllowAll",
        "args": [
          "<%= formatBytes32String('liquidateVault') %>",
          false
        ]
      },
      "setCRatio": {
        "target": [
          "treasury_market.Proxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setTargetCRatio",
        "args": [
          "<%= settings.treasury_market_target_cratio %>"
        ]
      },
      "setDebtDecayFunction": {
        "target": [
          "treasury_market.Proxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setDebtDecayFunction",
        "args": [
          "1",
          "31536000",
          "<%= parseEther('1') %>",
          "<%= parseEther('0.5') %>"
        ]
      },
      "setPositionManagerOverrideWithdrawTimeout": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= keccak256(defaultAbiCoder.encode(['bytes32', 'address'], [formatBytes32String('senderOverrideWithdrawTimeout'), settings.position_manager_address])) %>",
          "0x0000000000000000000000000000000000000000000000000000000000000001"
        ]
      },
      "setPositionManagerOverrideMinDelegateTime": {
        "target": [
          "system.CoreProxy"
        ],
        "fromCall": {
          "func": "owner"
        },
        "func": "setConfig",
        "args": [
          "<%= keccak256(defaultAbiCoder.encode(['bytes32', 'address', 'uint256'], [formatBytes32String('senderOverrideMinDelegateTime'), settings.position_manager_address, settings.treasury_pool_id])) %>",
          "0x0000000000000000000000000000000000000000000000000000000000000001"
        ]
      }
    },
    "clone": {
      "oracle_manager": {
        "source": "<%= settings.oracle_manager_package %>",
        "target": "<%= settings.oracle_manager_package %>",
        "options": {
          "salt": "<%= settings.salt %>-oracle",
          "owner": "<%= settings.owner %>"
        }
      },
      "governance_satellite_ambassador": {
        "source": "<%= settings.governance_satellite_package %>",
        "targetPreset": "ambassador",
        "options": {
          "salt": "<%= settings.salt %>-ambassador-2",
          "owner": "<%= settings.owner %>",
          "wormhole_core": "<%= settings.governance_wormhole_core %>",
          "wormhole_relayer": "<%= settings.governance_wormhole_relayer %>",
          "initial_council_member": "<%= settings.governance_initial_council_member %>",
          "initial_epoch_index": "<%= settings.governance_initial_epoch_index %>",
          "initial_epoch_start_date": "<%= settings.governance_initial_epoch_start_date %>",
          "initial_nomination_period_start_date": "<%= settings.governance_initial_nomination_period_start_date %>",
          "initial_voting_period_start_date": "<%= settings.governance_initial_voting_period_start_date %>",
          "initial_epoch_end_date": "<%= settings.governance_initial_epoch_end_date %>"
        }
      },
      "governance_satellite_spartan": {
        "source": "<%= settings.governance_satellite_package %>",
        "targetPreset": "spartan",
        "options": {
          "salt": "<%= settings.salt %>-spartan-2",
          "owner": "<%= settings.owner %>",
          "wormhole_core": "<%= settings.governance_wormhole_core %>",
          "wormhole_relayer": "<%= settings.governance_wormhole_relayer %>",
          "initial_council_member": "<%= settings.governance_initial_council_member %>",
          "initial_epoch_index": "<%= settings.governance_initial_epoch_index %>",
          "initial_epoch_start_date": "<%= settings.governance_initial_epoch_start_date %>",
          "initial_nomination_period_start_date": "<%= settings.governance_initial_nomination_period_start_date %>",
          "initial_voting_period_start_date": "<%= settings.governance_initial_voting_period_start_date %>",
          "initial_epoch_end_date": "<%= settings.governance_initial_epoch_end_date %>"
        }
      },
      "governance_satellite_treasury": {
        "source": "<%= settings.governance_satellite_package %>",
        "targetPreset": "treasury",
        "options": {
          "salt": "<%= settings.salt %>-treasury-2",
          "owner": "<%= settings.owner %>",
          "wormhole_core": "<%= settings.governance_wormhole_core %>",
          "wormhole_relayer": "<%= settings.governance_wormhole_relayer %>",
          "initial_council_member": "<%= settings.governance_initial_council_member %>",
          "initial_epoch_index": "<%= settings.governance_initial_epoch_index %>",
          "initial_epoch_start_date": "<%= settings.governance_initial_epoch_start_date %>",
          "initial_nomination_period_start_date": "<%= settings.governance_initial_nomination_period_start_date %>",
          "initial_voting_period_start_date": "<%= settings.governance_initial_voting_period_start_date %>",
          "initial_epoch_end_date": "<%= settings.governance_initial_epoch_end_date %>"
        }
      }
    },
    "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": "",
          "synthetixPackage": "<%= settings.snx_package %>",
          "synthetixPreset": "<%= settings.target_preset %>"
        },
        "depends": [
          "provision.system"
        ]
      },
      "treasury_market": {
        "source": "<%= settings.treasury_market_package %>",
        "targetPreset": "<%= settings.target_preset %>",
        "options": {
          "v3_package": "<%= settings.snx_package %>@<%= settings.target_preset %>",
          "owner": "<%= settings.pdao %>",
          "treasury_address": "<%= settings.treasury %>",
          "pool_id": "<%= extras.treasury_pool_id %>",
          "collateral_token": "<%= settings.snx_address %>",
          "aux_token": "<%= settings.treasury_aux_token_address %>",
          "aux_recipient": "<%= settings.treasury_aux_recipient %>",
          "required_aux_token_ratio": "<%= settings.treasury_aux_ratio %>",
          "aux_reset_time": "<%= settings.treasury_aux_reset_time %>"
        }
      }
    },
    "import": {
      "v2x": {
        "source": "synthetix:2.101.3"
      }
    },
    "var": {
      "treasuryInfo": {
        "treasury_account_id": "10",
        "treasury_liquidator_address": "0x9DAffb42b60Bb14d8EE80b503AAfC312dCbAF552"
      },
      "governance": {
        "governance_package": "synthetix-governance:3.0.9",
        "governance_satellite_package": "synthetix-governance-satellite:3.0.9",
        "governance_wormhole_core": "0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722",
        "governance_wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
        "governance_snapshot_record": "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
        "governance_ambassador_weight": "0",
        "governance_spartan_weight": "1",
        "governance_treasury_weight": "1",
        "governance_initial_council_member": "<%= settings.owner %>",
        "governance_minimum_active_members": "1",
        "governance_initial_epoch_index": "0",
        "governance_initial_epoch_start_date": "1725035275",
        "governance_initial_nomination_period_start_date": "1725072898",
        "governance_initial_voting_period_start_date": "1725640075",
        "governance_initial_epoch_end_date": "1726504075"
      }
    },
    "name": "synthetix-omnibus",
    "version": "14",
    "description": "Includes the full synthetix system with configurations applied",
    "deployers": [
      "0x1C8236B406911A376369e33D39189F1b4B39F27D",
      "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
    ]
  },
  "state": {
    "provision.system": {
      "artifacts": {
        "imports": {
          "system": {
            "url": "ipfs://QmZ7WEh7D1S63ry3hfyWEZ147G5TASCgo7fGGr8WMdqiWa",
            "tags": [
              "latest"
            ],
            "target": "synthetix:3.12.0@main",
            "preset": "main",
            "contracts": {
              "AccountModule": {
                "address": "0x3B078D6C1B6D114815C495C99B177200A4872649",
                "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": "",
                "deployTxnBlockNumber": "134084191",
                "deployTimestamp": "1743767168",
                "sourceName": "contracts/modules/core/AccountModule.sol",
                "contractName": "AccountModule",
                "deployedOn": "contract.AccountModule",
                "gasUsed": 1225797,
                "gasCost": "1000283544"
              },
              "AccountTokenModule": {
                "address": "0x9977BD49DF09Ec3Fad35e15048f768d95ecb9743",
                "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": "",
                "deployTxnBlockNumber": "132268892",
                "deployTimestamp": "1740136561",
                "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                "contractName": "AccountTokenModule",
                "deployedOn": "contract.AccountTokenModule",
                "gasUsed": 1787668,
                "gasCost": "1026773"
              },
              "AssociateDebtModule": {
                "address": "0x2436703aBb814DFF0f5b394FD28eb5DD1E7dA400",
                "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": "",
                "deployTxnBlockNumber": "134084192",
                "deployTimestamp": "1743767169",
                "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                "contractName": "AssociateDebtModule",
                "deployedOn": "contract.AssociateDebtModule",
                "gasUsed": 2612609,
                "gasCost": "1000250998"
              },
              "AssociatedSystemsModule": {
                "address": "0xF297E891d7f92b842B17fcfa3e70Da29aCaEc6De",
                "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": "",
                "deployTxnBlockNumber": "124713645",
                "deployTimestamp": "1725026067",
                "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                "contractName": "AssociatedSystemsModule",
                "deployedOn": "contract.AssociatedSystemsModule",
                "gasUsed": 877153,
                "gasCost": "1392076"
              },
              "CcipReceiverModule": {
                "address": "0xD15fdC12Cc41D5083b194f6c2F6E9Be71677c099",
                "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": "",
                "deployTxnBlockNumber": "124713647",
                "deployTimestamp": "1725026071",
                "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                "contractName": "CcipReceiverModule",
                "deployedOn": "contract.CcipReceiverModule",
                "gasUsed": 469476,
                "gasCost": "1391181"
              },
              "CollateralConfigurationModule": {
                "address": "0x5d94EE64C5e698DBEeB95a3D0d5A0D4B8B8Bc647",
                "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": "",
                "deployTxnBlockNumber": "132268900",
                "deployTimestamp": "1740136577",
                "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                "contractName": "CollateralConfigurationModule",
                "deployedOn": "contract.CollateralConfigurationModule",
                "gasUsed": 872728,
                "gasCost": "1026879"
              },
              "CollateralModule": {
                "address": "0x5C4909b982a106F9f59BD8D6b44c4D38B18E064E",
                "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": "",
                "deployTxnBlockNumber": "134084193",
                "deployTimestamp": "1743767169",
                "sourceName": "contracts/modules/core/CollateralModule.sol",
                "contractName": "CollateralModule",
                "deployedOn": "contract.CollateralModule",
                "gasUsed": 1937434,
                "gasCost": "1000225088"
              },
              "CrossChainUSDModule": {
                "address": "0xD237F237356e456214Ad5b57e0A962d632F1F3C5",
                "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": "",
                "deployTxnBlockNumber": "124713653",
                "deployTimestamp": "1725026083",
                "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                "contractName": "CrossChainUSDModule",
                "deployedOn": "contract.CrossChainUSDModule",
                "gasUsed": 595289,
                "gasCost": "1391610"
              },
              "FeatureFlagModule": {
                "address": "0x5559A519FdC9F210a96075aD969F56FD2DC48a58",
                "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": "",
                "deployTxnBlockNumber": "124713655",
                "deployTimestamp": "1725026087",
                "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 777054,
                "gasCost": "1391189"
              },
              "IssueUSDModule": {
                "address": "0x058Dc95F4628DCF7CBFe702fCE0Ec433C6D094F7",
                "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": "",
                "deployTxnBlockNumber": "134084194",
                "deployTimestamp": "1743767169",
                "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                "contractName": "IssueUSDModule",
                "deployedOn": "contract.IssueUSDModule",
                "gasUsed": 3042995,
                "gasCost": "1000200587"
              },
              "LiquidationModule": {
                "address": "0x4cb44De9e943347E701E9A1D3d80004eE1e9159e",
                "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": "",
                "deployTxnBlockNumber": "134084195",
                "deployTimestamp": "1743767170",
                "sourceName": "contracts/modules/core/LiquidationModule.sol",
                "contractName": "LiquidationModule",
                "deployedOn": "contract.LiquidationModule",
                "gasUsed": 4620402,
                "gasCost": "1000180601"
              },
              "MarketCollateralModule": {
                "address": "0xbB46F9FB7BB2c73C9486148bFc70BCDF6A2bEaaF",
                "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": "",
                "deployTxnBlockNumber": "132268910",
                "deployTimestamp": "1740136597",
                "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                "contractName": "MarketCollateralModule",
                "deployedOn": "contract.MarketCollateralModule",
                "gasUsed": 1298300,
                "gasCost": "1027039"
              },
              "MarketManagerModule": {
                "address": "0x0CB4bf413d8eabe0F7892eAaE9f69F3fa31094dC",
                "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": "",
                "deployTxnBlockNumber": "132268913",
                "deployTimestamp": "1740136603",
                "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                "contractName": "MarketManagerModule",
                "deployedOn": "contract.MarketManagerModule",
                "gasUsed": 2816393,
                "gasCost": "1026999"
              },
              "PoolConfigurationModule": {
                "address": "0x3093cbba626e60E4164975f5b15dD1c0D03BF927",
                "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": "",
                "deployTxnBlockNumber": "132268915",
                "deployTimestamp": "1740136607",
                "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                "contractName": "PoolConfigurationModule",
                "deployedOn": "contract.PoolConfigurationModule",
                "gasUsed": 446271,
                "gasCost": "1026961"
              },
              "PoolModule": {
                "address": "0x600f30C285c11f1a94f282A933B24Fb5fDa13Cf3",
                "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": "",
                "deployTxnBlockNumber": "132268918",
                "deployTimestamp": "1740136613",
                "sourceName": "contracts/modules/core/PoolModule.sol",
                "contractName": "PoolModule",
                "deployedOn": "contract.PoolModule",
                "gasUsed": 4099803,
                "gasCost": "1026984"
              },
              "RewardsManagerModule": {
                "address": "0x7CeA62f6191e7990c55A218D1874e40629feEc27",
                "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": "",
                "deployTxnBlockNumber": "134084196",
                "deployTimestamp": "1743767170",
                "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                "contractName": "RewardsManagerModule",
                "deployedOn": "contract.RewardsManagerModule",
                "gasUsed": 2642251,
                "gasCost": "1000164980"
              },
              "USDTokenModule": {
                "address": "0xDaf89F5a0125E7eBA36cd01B5A3C40b76F697B91",
                "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": "",
                "deployTxnBlockNumber": "132268924",
                "deployTimestamp": "1740136625",
                "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                "contractName": "USDTokenModule",
                "deployedOn": "contract.USDTokenModule",
                "gasUsed": 1110294,
                "gasCost": "1026896"
              },
              "UtilsModule": {
                "address": "0x750714EC1357042e2102BC25E20e5359C27168d3",
                "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": "",
                "deployTxnBlockNumber": "132268926",
                "deployTimestamp": "1740136629",
                "sourceName": "contracts/modules/core/UtilsModule.sol",
                "contractName": "UtilsModule",
                "deployedOn": "contract.UtilsModule",
                "gasUsed": 770698,
                "gasCost": "1026953"
              },
              "VaultModule": {
                "address": "0x255fD9cDF297fFe30f62bcC39fD2f1Cd71414e7d",
                "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": "",
                "deployTxnBlockNumber": "134084197",
                "deployTimestamp": "1743767171",
                "sourceName": "contracts/modules/core/VaultModule.sol",
                "contractName": "VaultModule",
                "deployedOn": "contract.VaultModule",
                "gasUsed": 4732148,
                "gasCost": "1000147991"
              },
              "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"
              },
              "InitialCoreProxy": {
                "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                "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",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialCoreProxy"
              },
              "AccountRouter": {
                "address": "0x52899a903a9585329c38f6e89e1f110c2e0f6665",
                "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": "",
                "deployTxnBlockNumber": "132268933",
                "deployTimestamp": "1740136643",
                "contractName": "AccountRouter",
                "sourceName": "AccountRouter.sol",
                "gasUsed": 1963401,
                "gasCost": "1026885"
              },
              "CoreRouter": {
                "address": "0xe3b41fe8769a00c25a88f57cb23d892312c60e0e",
                "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": "",
                "deployTxnBlockNumber": "134084198",
                "deployTimestamp": "1743767182",
                "contractName": "CoreRouter",
                "sourceName": "CoreRouter.sol",
                "gasUsed": 5621066,
                "gasCost": "1000135329"
              },
              "USDRouter": {
                "address": "0x95ac74dd94013a611d4a1111fc02c04056132637",
                "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": "",
                "deployTxnBlockNumber": "132268937",
                "deployTimestamp": "1740136651",
                "contractName": "USDRouter",
                "sourceName": "USDRouter.sol",
                "gasUsed": 2087424,
                "gasCost": "1026824"
              },
              "CoreProxy": {
                "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                "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": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                "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": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                "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"
            },
            "imports": {
              "oracle_manager": {
                "url": "ipfs://QmcxXmEECH4NY6BSj7gAPEM7KX93Xu6a4NJJi1Hsbn9K5c",
                "contracts": {
                  "NodeModule": {
                    "address": "0x1fA92386075F90E7a12FB33e448494Bb1c3FE786",
                    "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": "",
                    "deployTxnBlockNumber": "132268873",
                    "deployTimestamp": "1740136523",
                    "sourceName": "contracts/modules/NodeModule.sol",
                    "contractName": "NodeModule",
                    "deployedOn": "contract.NodeModule",
                    "gasUsed": 4896112,
                    "gasCost": "1026798"
                  },
                  "CoreModule": {
                    "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                    "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": "1740136531",
                    "sourceName": "contracts/modules/CoreModule.sol",
                    "contractName": "CoreModule",
                    "deployedOn": "contract.CoreModule",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "InitialProxy": {
                    "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                    "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": [
                      "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                      "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1740136531",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialProxy",
                    "gasUsed": 0,
                    "gasCost": "0"
                  },
                  "OracleRouter": {
                    "address": "0x27d97fa42409251e3ff4bb614ca93d6a0d5562cb",
                    "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": "",
                    "deployTxnBlockNumber": "132268883",
                    "deployTimestamp": "1740136543",
                    "contractName": "OracleRouter",
                    "sourceName": "OracleRouter.sol",
                    "gasUsed": 1728151,
                    "gasCost": "1026851"
                  },
                  "Proxy": {
                    "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                    "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://QmdpEzqkBqFuyC7G25bqVE6AtyMdGRXJ2qdsAU2k2h2s4V",
                    "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": "1740136527",
                        "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": "0x6985af9dbc7fbaa1e65e88575159b486fc6686ddec0ab8b85d17493260595ae3",
                    "blockNumber": "132270280",
                    "timestamp": "1740139348",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                            "0x27d97FA42409251e3ff4bB614ca93D6A0d5562cB"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_proxy",
                    "gasUsed": 55376,
                    "gasCost": "1000007992",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  }
                },
                "extras": {
                  "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                  "salt": "oracle-manager-official"
                }
              }
            },
            "txns": {
              "register_const_one_oracle": {
                "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790",
                "events": {
                  "NodeRegistered": [
                    {
                      "name": "NodeRegistered",
                      "args": [
                        "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                        8,
                        "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                        []
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.register_const_one_oracle"
              },
              "upgrade_core_proxy": {
                "hash": "0x4864e353f599660be16bd43201619e42e4b3deb1b19bab25ef15f6fe44b871c7",
                "blockNumber": "134084199",
                "timestamp": "1743767185",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                        "0xE3B41fE8769a00C25A88f57CB23D892312c60E0E"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 51359,
                "gasCost": "1000124752",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_burnUsd": {
                "hash": "",
                "blockNumber": "124713838",
                "timestamp": "1725026487",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6275726e55736400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_burnUsd",
                "gasUsed": 37059,
                "gasCost": "1000319260",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_claimRewards": {
                "hash": "",
                "blockNumber": "124713839",
                "timestamp": "1725026489",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x636c61696d526577617264730000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_claimRewards",
                "gasUsed": 37119,
                "gasCost": "1000279452",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_createAccount": {
                "hash": "",
                "blockNumber": "124713840",
                "timestamp": "1725026492",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_createAccount",
                "gasUsed": 37131,
                "gasCost": "1000244607",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_delegateCollateral": {
                "hash": "",
                "blockNumber": "124713841",
                "timestamp": "1725026494",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_delegateCollateral",
                "gasUsed": 37191,
                "gasCost": "1000214107",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_deposit": {
                "hash": "",
                "blockNumber": "124713842",
                "timestamp": "1725026496",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f73697400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_deposit",
                "gasUsed": 37059,
                "gasCost": "1000187410",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_depositMarketCollateral": {
                "hash": "",
                "blockNumber": "124713843",
                "timestamp": "1725026498",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                "gasUsed": 37251,
                "gasCost": "1000164042",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_depositMarketUsd": {
                "hash": "",
                "blockNumber": "124713844",
                "timestamp": "1725026501",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_depositMarketUsd",
                "gasUsed": 37167,
                "gasCost": "1000143588",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_liquidate": {
                "hash": "",
                "blockNumber": "124713845",
                "timestamp": "1725026503",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c69717569646174650000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidate",
                "gasUsed": 37083,
                "gasCost": "1000125684",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_liquidateToTreasury": {
                "hash": "0xe4f4d03c4f196a866f6287fce2b7da1376312297e19ed6cd624fbe7608da614f",
                "blockNumber": "134084200",
                "timestamp": "1743767186",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                "gasUsed": 57111,
                "gasCost": "1000109212",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_liquidateVault": {
                "hash": "",
                "blockNumber": "124713846",
                "timestamp": "1725026505",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_liquidateVault",
                "gasUsed": 37143,
                "gasCost": "1000110013",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_migrateDelegation": {
                "hash": "0x099ab75b58ccb37150d87e3a66209bfbe5687013e4691dbb00ea8c658f59c2f1",
                "blockNumber": "132270285",
                "timestamp": "1740139390",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_migrateDelegation",
                "gasUsed": 57087,
                "gasCost": "1000004528",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_mintUsd": {
                "hash": "",
                "blockNumber": "124713847",
                "timestamp": "1725026507",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_mintUsd",
                "gasUsed": 37059,
                "gasCost": "1000096296",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_withdraw": {
                "hash": "",
                "blockNumber": "124713848",
                "timestamp": "1725026509",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x7769746864726177000000000000000000000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdraw",
                "gasUsed": 37071,
                "gasCost": "1000084289",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_withdrawMarketCollateral": {
                "hash": "",
                "blockNumber": "124713849",
                "timestamp": "1725026511",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                "gasUsed": 37263,
                "gasCost": "1000073779",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "enable_feature_withdrawMarketUsd": {
                "hash": "",
                "blockNumber": "124713850",
                "timestamp": "1725026513",
                "events": {
                  "FeatureFlagAllowAllSet": [
                    {
                      "name": "FeatureFlagAllowAllSet",
                      "args": [
                        "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                "gasUsed": 37179,
                "gasCost": "1000064580",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_account": {
                "hash": "0x09905fe6346878fed7607f696258473e24293900127d03f60e55fa67fbc77e25",
                "blockNumber": "132270286",
                "timestamp": "1740139395",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                        "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                        "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                        "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_account",
                "gasUsed": 80766,
                "gasCost": "1000003965",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_usd": {
                "hash": "0x9f1ea2ae2ba10c1425be07610f3baf4db22cad21e80decb2a06e37d0dfc58df2",
                "blockNumber": "132270287",
                "timestamp": "1740139402",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                        "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                      ]
                    }
                  ],
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633230000000000000000000000000000000000000000000000000000000",
                        "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                        "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                        "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_usd",
                "gasUsed": 94074,
                "gasCost": "1000003473",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "set_oracle_manager": {
                "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633",
                "events": {},
                "deployedOn": "invoke.set_oracle_manager"
              },
              "configure_usd_collateral": {
                "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e",
                "events": {
                  "CollateralConfigured": [
                    {
                      "name": "CollateralConfigured",
                      "args": [
                        "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                        [
                          true,
                          {
                            "type": "BigNumber",
                            "hex": "0x8ac7230489e80000"
                          },
                          {
                            "type": "BigNumber",
                            "hex": "0x8ac7230489e80000"
                          },
                          {
                            "type": "BigNumber",
                            "hex": "0x00"
                          },
                          "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                          "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                          {
                            "type": "BigNumber",
                            "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                          }
                        ]
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.configure_usd_collateral"
              }
            },
            "extras": {
              "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
              "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"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "provision.spotFactory": {
      "artifacts": {
        "imports": {
          "spotFactory": {
            "url": "ipfs://QmfVJ4VtMcaxmsfFDsHf5a2nKcejrhVWxayREkkZxTP9mn",
            "tags": [
              "latest"
            ],
            "target": "synthetix-spot-market:3.6.0@main",
            "preset": "main",
            "contracts": {
              "AsyncOrderConfigurationModule": {
                "address": "0xCc7988f6D1DE92Ed651618880aB429D04801B7d6",
                "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": "",
                "deployTxnBlockNumber": "124713710",
                "deployTimestamp": "1725026197",
                "sourceName": "contracts/modules/AsyncOrderConfigurationModule.sol",
                "contractName": "AsyncOrderConfigurationModule",
                "deployedOn": "contract.AsyncOrderConfigurationModule",
                "gasUsed": 896430,
                "gasCost": "1422077"
              },
              "AsyncOrderModule": {
                "address": "0x70BD88030c660b791a1Fe138d0Ec09e36c2822D5",
                "abi": [
                  "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": "",
                "deployTxnBlockNumber": "124713712",
                "deployTimestamp": "1725026201",
                "sourceName": "contracts/modules/AsyncOrderModule.sol",
                "contractName": "AsyncOrderModule",
                "deployedOn": "contract.AsyncOrderModule",
                "gasUsed": 1317254,
                "gasCost": "1422774"
              },
              "AsyncOrderSettlementModule": {
                "address": "0xc87C405720F4fa29ecFECbfA72D23642924523ce",
                "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": "",
                "deployTxnBlockNumber": "124713715",
                "deployTimestamp": "1725026207",
                "sourceName": "contracts/modules/AsyncOrderSettlementModule.sol",
                "contractName": "AsyncOrderSettlementModule",
                "deployedOn": "contract.AsyncOrderSettlementModule",
                "gasUsed": 1963714,
                "gasCost": "1421482"
              },
              "AtomicOrderModule": {
                "address": "0xfC4358c37C30c7C5A8B89DaeC8c348153C8BA815",
                "abi": [
                  "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 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": "",
                "deployTxnBlockNumber": "124713718",
                "deployTimestamp": "1725026213",
                "sourceName": "contracts/modules/AtomicOrderModule.sol",
                "contractName": "AtomicOrderModule",
                "deployedOn": "contract.AtomicOrderModule",
                "gasUsed": 2090754,
                "gasCost": "1423653"
              },
              "CoreModule": {
                "address": "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4",
                "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/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule"
              },
              "FeatureFlagModule": {
                "address": "0x0c4641567a59346835b8d1C4CcE1Db72136bff45",
                "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": "",
                "deployTxnBlockNumber": "124713720",
                "deployTimestamp": "1725026217",
                "sourceName": "contracts/modules/FeatureFlagModule.sol",
                "contractName": "FeatureFlagModule",
                "deployedOn": "contract.FeatureFlagModule",
                "gasUsed": 765178,
                "gasCost": "1424109"
              },
              "MarketConfigurationModule": {
                "address": "0xd636Fb38041e58f8F42d608c46ABa5a7ab34b88E",
                "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": "",
                "deployTxnBlockNumber": "124713722",
                "deployTimestamp": "1725026221",
                "sourceName": "contracts/modules/MarketConfigurationModule.sol",
                "contractName": "MarketConfigurationModule",
                "deployedOn": "contract.MarketConfigurationModule",
                "gasUsed": 720683,
                "gasCost": "1422365"
              },
              "SpotMarketFactoryModule": {
                "address": "0x2CB1854e77932f3A37727045a14D2099f8EeED56",
                "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": "",
                "deployTxnBlockNumber": "124713725",
                "deployTimestamp": "1725026227",
                "sourceName": "contracts/modules/SpotMarketFactoryModule.sol",
                "contractName": "SpotMarketFactoryModule",
                "deployedOn": "contract.SpotMarketFactoryModule",
                "gasUsed": 2327426,
                "gasCost": "1428726"
              },
              "SynthTokenModule": {
                "address": "0x85031938F390AD65aE6ff84C5B61DcAcFe5824BA",
                "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": "",
                "deployTxnBlockNumber": "124713728",
                "deployTimestamp": "1725026233",
                "sourceName": "contracts/modules/token/SynthTokenModule.sol",
                "contractName": "SynthTokenModule",
                "deployedOn": "contract.SynthTokenModule",
                "gasUsed": 1207435,
                "gasCost": "1426749"
              },
              "WrapperModule": {
                "address": "0x85262Df38eb6bfACB0c22A72473f927EA3070615",
                "abi": [
                  "error FailedTransfer(address from, address to, uint256 value)",
                  "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": "",
                "deployTxnBlockNumber": "124713731",
                "deployTimestamp": "1725026239",
                "sourceName": "contracts/modules/WrapperModule.sol",
                "contractName": "WrapperModule",
                "deployedOn": "contract.WrapperModule",
                "gasUsed": 1684906,
                "gasCost": "1431703"
              },
              "InitialSpotMarketProxy": {
                "address": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595",
                "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": [
                  "0x78C2A942c140fF9712cBC9723a7BcaD804a4D9d4",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialSpotMarketProxy"
              },
              "SpotMarketRouter": {
                "address": "0xe40468f8ed1e05a8a1f745a96b47edd1311e75a3",
                "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)",
                  "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": "",
                "deployTxnBlockNumber": "124713733",
                "deployTimestamp": "1725026243",
                "contractName": "SpotMarketRouter",
                "sourceName": "SpotMarketRouter.sol",
                "gasUsed": 880053,
                "gasCost": "1432839"
              },
              "SynthRouter": {
                "address": "0x54aaf4343ea541bccbb2105e446c55e680669f31",
                "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)",
                  "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": "",
                "deployTxnBlockNumber": "124713735",
                "deployTimestamp": "1725026247",
                "contractName": "SynthRouter",
                "sourceName": "SynthRouter.sol",
                "gasUsed": 381153,
                "gasCost": "1435234"
              },
              "SpotMarketProxy": {
                "address": "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595",
                "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)",
                  "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": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.upgradeSpotMarketProxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix",
              "synthetixPreset": "main"
            },
            "imports": {
              "synthetix": {
                "url": "ipfs://QmZ7WEh7D1S63ry3hfyWEZ147G5TASCgo7fGGr8WMdqiWa",
                "contracts": {
                  "AccountModule": {
                    "address": "0x3B078D6C1B6D114815C495C99B177200A4872649",
                    "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": "",
                    "deployTxnBlockNumber": "134084191",
                    "deployTimestamp": "1743767168",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "1000283544"
                  },
                  "AccountTokenModule": {
                    "address": "0x9977BD49DF09Ec3Fad35e15048f768d95ecb9743",
                    "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": "",
                    "deployTxnBlockNumber": "132268892",
                    "deployTimestamp": "1740136561",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "1026773"
                  },
                  "AssociateDebtModule": {
                    "address": "0x2436703aBb814DFF0f5b394FD28eb5DD1E7dA400",
                    "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": "",
                    "deployTxnBlockNumber": "134084192",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "1000250998"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0xF297E891d7f92b842B17fcfa3e70Da29aCaEc6De",
                    "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": "",
                    "deployTxnBlockNumber": "124713645",
                    "deployTimestamp": "1725026067",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1392076"
                  },
                  "CcipReceiverModule": {
                    "address": "0xD15fdC12Cc41D5083b194f6c2F6E9Be71677c099",
                    "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": "",
                    "deployTxnBlockNumber": "124713647",
                    "deployTimestamp": "1725026071",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "1391181"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x5d94EE64C5e698DBEeB95a3D0d5A0D4B8B8Bc647",
                    "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": "",
                    "deployTxnBlockNumber": "132268900",
                    "deployTimestamp": "1740136577",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "1026879"
                  },
                  "CollateralModule": {
                    "address": "0x5C4909b982a106F9f59BD8D6b44c4D38B18E064E",
                    "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": "",
                    "deployTxnBlockNumber": "134084193",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "1000225088"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xD237F237356e456214Ad5b57e0A962d632F1F3C5",
                    "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": "",
                    "deployTxnBlockNumber": "124713653",
                    "deployTimestamp": "1725026083",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "1391610"
                  },
                  "FeatureFlagModule": {
                    "address": "0x5559A519FdC9F210a96075aD969F56FD2DC48a58",
                    "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": "",
                    "deployTxnBlockNumber": "124713655",
                    "deployTimestamp": "1725026087",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "1391189"
                  },
                  "IssueUSDModule": {
                    "address": "0x058Dc95F4628DCF7CBFe702fCE0Ec433C6D094F7",
                    "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": "",
                    "deployTxnBlockNumber": "134084194",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "1000200587"
                  },
                  "LiquidationModule": {
                    "address": "0x4cb44De9e943347E701E9A1D3d80004eE1e9159e",
                    "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": "",
                    "deployTxnBlockNumber": "134084195",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "1000180601"
                  },
                  "MarketCollateralModule": {
                    "address": "0xbB46F9FB7BB2c73C9486148bFc70BCDF6A2bEaaF",
                    "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": "",
                    "deployTxnBlockNumber": "132268910",
                    "deployTimestamp": "1740136597",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "1027039"
                  },
                  "MarketManagerModule": {
                    "address": "0x0CB4bf413d8eabe0F7892eAaE9f69F3fa31094dC",
                    "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": "",
                    "deployTxnBlockNumber": "132268913",
                    "deployTimestamp": "1740136603",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "1026999"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x3093cbba626e60E4164975f5b15dD1c0D03BF927",
                    "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": "",
                    "deployTxnBlockNumber": "132268915",
                    "deployTimestamp": "1740136607",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "1026961"
                  },
                  "PoolModule": {
                    "address": "0x600f30C285c11f1a94f282A933B24Fb5fDa13Cf3",
                    "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": "",
                    "deployTxnBlockNumber": "132268918",
                    "deployTimestamp": "1740136613",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "1026984"
                  },
                  "RewardsManagerModule": {
                    "address": "0x7CeA62f6191e7990c55A218D1874e40629feEc27",
                    "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": "",
                    "deployTxnBlockNumber": "134084196",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "1000164980"
                  },
                  "USDTokenModule": {
                    "address": "0xDaf89F5a0125E7eBA36cd01B5A3C40b76F697B91",
                    "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": "",
                    "deployTxnBlockNumber": "132268924",
                    "deployTimestamp": "1740136625",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "1026896"
                  },
                  "UtilsModule": {
                    "address": "0x750714EC1357042e2102BC25E20e5359C27168d3",
                    "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": "",
                    "deployTxnBlockNumber": "132268926",
                    "deployTimestamp": "1740136629",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "1026953"
                  },
                  "VaultModule": {
                    "address": "0x255fD9cDF297fFe30f62bcC39fD2f1Cd71414e7d",
                    "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": "",
                    "deployTxnBlockNumber": "134084197",
                    "deployTimestamp": "1743767171",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "1000147991"
                  },
                  "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"
                  },
                  "InitialCoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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",
                      "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy"
                  },
                  "AccountRouter": {
                    "address": "0x52899a903a9585329c38f6e89e1f110c2e0f6665",
                    "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": "",
                    "deployTxnBlockNumber": "132268933",
                    "deployTimestamp": "1740136643",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "1026885"
                  },
                  "CoreRouter": {
                    "address": "0xe3b41fe8769a00c25a88f57cb23d892312c60e0e",
                    "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": "",
                    "deployTxnBlockNumber": "134084198",
                    "deployTimestamp": "1743767182",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621066,
                    "gasCost": "1000135329"
                  },
                  "USDRouter": {
                    "address": "0x95ac74dd94013a611d4a1111fc02c04056132637",
                    "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": "",
                    "deployTxnBlockNumber": "132268937",
                    "deployTimestamp": "1740136651",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087424,
                    "gasCost": "1026824"
                  },
                  "CoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                    "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": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                    "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"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmcxXmEECH4NY6BSj7gAPEM7KX93Xu6a4NJJi1Hsbn9K5c",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1fA92386075F90E7a12FB33e448494Bb1c3FE786",
                        "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": "",
                        "deployTxnBlockNumber": "132268873",
                        "deployTimestamp": "1740136523",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "1026798"
                      },
                      "CoreModule": {
                        "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                        "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": "1740136531",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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": [
                          "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1740136531",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x27d97fa42409251e3ff4bb614ca93d6a0d5562cb",
                        "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": "",
                        "deployTxnBlockNumber": "132268883",
                        "deployTimestamp": "1740136543",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "1026851"
                      },
                      "Proxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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://QmdpEzqkBqFuyC7G25bqVE6AtyMdGRXJ2qdsAU2k2h2s4V",
                        "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": "1740136527",
                            "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": "0x6985af9dbc7fbaa1e65e88575159b486fc6686ddec0ab8b85d17493260595ae3",
                        "blockNumber": "132270280",
                        "timestamp": "1740139348",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                                "0x27d97FA42409251e3ff4bB614ca93D6A0d5562cB"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55376,
                        "gasCost": "1000007992",
                        "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0x4864e353f599660be16bd43201619e42e4b3deb1b19bab25ef15f6fe44b871c7",
                    "blockNumber": "134084199",
                    "timestamp": "1743767185",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                            "0xE3B41fE8769a00C25A88f57CB23D892312c60E0E"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51359,
                    "gasCost": "1000124752",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "",
                    "blockNumber": "124713838",
                    "timestamp": "1725026487",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000319260",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "",
                    "blockNumber": "124713839",
                    "timestamp": "1725026489",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 37119,
                    "gasCost": "1000279452",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_createAccount": {
                    "hash": "",
                    "blockNumber": "124713840",
                    "timestamp": "1725026492",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 37131,
                    "gasCost": "1000244607",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "",
                    "blockNumber": "124713841",
                    "timestamp": "1725026494",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 37191,
                    "gasCost": "1000214107",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_deposit": {
                    "hash": "",
                    "blockNumber": "124713842",
                    "timestamp": "1725026496",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 37059,
                    "gasCost": "1000187410",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713843",
                    "timestamp": "1725026498",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 37251,
                    "gasCost": "1000164042",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713844",
                    "timestamp": "1725026501",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 37167,
                    "gasCost": "1000143588",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidate": {
                    "hash": "",
                    "blockNumber": "124713845",
                    "timestamp": "1725026503",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 37083,
                    "gasCost": "1000125684",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xe4f4d03c4f196a866f6287fce2b7da1376312297e19ed6cd624fbe7608da614f",
                    "blockNumber": "134084200",
                    "timestamp": "1743767186",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "1000109212",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "",
                    "blockNumber": "124713846",
                    "timestamp": "1725026505",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 37143,
                    "gasCost": "1000110013",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0x099ab75b58ccb37150d87e3a66209bfbe5687013e4691dbb00ea8c658f59c2f1",
                    "blockNumber": "132270285",
                    "timestamp": "1740139390",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "1000004528",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "",
                    "blockNumber": "124713847",
                    "timestamp": "1725026507",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000096296",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdraw": {
                    "hash": "",
                    "blockNumber": "124713848",
                    "timestamp": "1725026509",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 37071,
                    "gasCost": "1000084289",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713849",
                    "timestamp": "1725026511",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 37263,
                    "gasCost": "1000073779",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713850",
                    "timestamp": "1725026513",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 37179,
                    "gasCost": "1000064580",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_account": {
                    "hash": "0x09905fe6346878fed7607f696258473e24293900127d03f60e55fa67fbc77e25",
                    "blockNumber": "132270286",
                    "timestamp": "1740139395",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80766,
                    "gasCost": "1000003965",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_usd": {
                    "hash": "0x9f1ea2ae2ba10c1425be07610f3baf4db22cad21e80decb2a06e37d0dfc58df2",
                    "blockNumber": "132270287",
                    "timestamp": "1740139402",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94074,
                    "gasCost": "1000003473",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "set_oracle_manager": {
                    "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            [
                              true,
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x00"
                              },
                              "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                              {
                                "type": "BigNumber",
                                "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                              }
                            ]
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral"
                  }
                },
                "extras": {
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                  "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"
                }
              }
            },
            "txns": {
              "upgradeSpotMarketProxy": {
                "hash": "",
                "blockNumber": "124713863",
                "timestamp": "1725026659",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595",
                        "0xE40468F8Ed1e05a8A1F745a96b47eDd1311e75a3"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeSpotMarketProxy",
                "gasUsed": 55629,
                "gasCost": "1000011657",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "addCreateSynthToFeatureFlag": {
                "hash": "0x1a0e01ba475bedee67192a13e3098b9610df78a081022f10626bf92018e839e4",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x63726561746553796e7468000000000000000000000000000000000000000000",
                        "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addCreateSynthToFeatureFlag"
              },
              "addSpotMarketToFeatureFlag": {
                "hash": "0xc53f8c210de4158908d81634fd02b8e8ac4b83a5fca4a312a25806ada987e58f",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x38908Ee087D7db73A1Bd1ecab9AAb8E8c9C74595"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.addSpotMarketToFeatureFlag"
              },
              "setSynthImplementation": {
                "hash": "",
                "blockNumber": "124713864",
                "timestamp": "1725026662",
                "events": {
                  "SynthImplementationSet": [
                    {
                      "name": "SynthImplementationSet",
                      "args": [
                        "0x54aaf4343EA541bCcBb2105E446C55e680669F31"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setSynthImplementation",
                "gasUsed": 39108,
                "gasCost": "1000010206",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setSynthetixSystem": {
                "hash": "0xc65a1a496605eb383a62615b8f9cc73b7d05606e91b2eb2b6d2898a1a78ef096",
                "events": {},
                "deployedOn": "invoke.setSynthetixSystem"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "snax",
              "synthetixPackage": "synthetix",
              "synthetixPreset": "main"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.registerSnxOracleManager": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxOracleManager": {
            "hash": "0x1be7f97d1b0116745a18f75f909a37ec35a1fb012c51be38ea37b50d13ed026d",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4",
                    3,
                    "0x0000000000000000000000002fcf37343e916eaed1f1ddaaf84458a359b5387700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxOracleManager"
          }
        },
        "extras": {
          "snx_oracle_id": "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4"
        }
      },
      "hash": "9cc5d1fb7b4b02a447af4901286dc199",
      "version": 5
    },
    "invoke.configureSnxCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureSnxCollateral": {
            "hash": "0xbf381779a3059deb4412f41c678206f099f797efbb66db403234ceb051ce08e4",
            "blockNumber": "134084206",
            "timestamp": "1743767215",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                    {
                      "depositingEnabled": true,
                      "issuanceRatioD18": "5000000000000000000",
                      "liquidationRatioD18": "1010000000000000000",
                      "liquidationRewardD18": "0",
                      "oracleNodeId": "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609",
                      "tokenAddress": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                      "minDelegationD18": "1"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureSnxCollateral",
            "gasUsed": 59686,
            "gasCost": "1000050521",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "3878aa2924974b157220fca4fe8c4265",
      "version": 7
    },
    "invoke.setAccountTimeoutWithdraw": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setAccountTimeoutWithdraw": {
            "hash": "0xfd324e4fe5945d54737de389bdadb1ad6a0c20b04ef0b5f80ea782e7f35a41b4",
            "events": {},
            "deployedOn": "invoke.setAccountTimeoutWithdraw"
          }
        },
        "extras": {}
      },
      "hash": "0d5ee3ec4c2a887019a0fb4397e89c3f",
      "version": 5
    },
    "invoke.setMinimumLiquidityRatio": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setMinimumLiquidityRatio": {
            "hash": "0xa561d0c4d8118ae3256b7f332e05418c65722f11bb59989ee038ffa6d451d830",
            "blockNumber": "133143469",
            "timestamp": "1741885824",
            "events": {
              "SetMinLiquidityRatio": [
                {
                  "name": "SetMinLiquidityRatio",
                  "args": [
                    "1100000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setMinimumLiquidityRatio",
            "gasUsed": 38642,
            "gasCost": "1000586071",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "96cccef00f940f71718cc6dbe2d07194",
      "version": 7
    },
    "invoke.permitCreatePool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "permitCreatePool": {
            "hash": "0xd9ceb743661de69c28bc1f0d573c090cf8cbb538118bf07c6fcddf9ed684f510",
            "events": {
              "FeatureFlagAllowlistAdded": [
                {
                  "name": "FeatureFlagAllowlistAdded",
                  "args": [
                    "0x637265617465506f6f6c00000000000000000000000000000000000000000000",
                    "0x302d2451d9f47620374B54c521423Bf0403916A2"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.permitCreatePool"
          }
        },
        "extras": {}
      },
      "hash": "73611ef27a599bdf737a51228bdc31de",
      "version": 5
    },
    "invoke.createScPool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "createScPool": {
            "hash": "0x3d34e90ec7da06a3c86062bbbc13e1188e906f4a253e4021a50ba34895b2fbcd",
            "events": {
              "PoolCreated": [
                {
                  "name": "PoolCreated",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    "0x302d2451d9f47620374B54c521423Bf0403916A2",
                    "0x302d2451d9f47620374B54c521423Bf0403916A2"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.createScPool"
          }
        },
        "extras": {}
      },
      "hash": "04aa3465462c991a7592aae0d1989c20",
      "version": 5
    },
    "invoke.setPreferredPool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setPreferredPool": {
            "hash": "0xdd42617a67c26bfd1fdef4adf22c0763c46a59d12365cee5b4139650ca24383f",
            "blockNumber": "132270302",
            "timestamp": "1740139485",
            "events": {
              "PreferredPoolSet": [
                {
                  "name": "PreferredPoolSet",
                  "args": [
                    "8"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setPreferredPool",
            "gasUsed": 41259,
            "gasCost": "1000000477",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "8876aaf771e5cd6728f4323407dce846",
      "version": 7
    },
    "invoke.registerEthOracleManager": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerEthOracleManager": {
            "hash": "0xa148832faefacad04d38096a23a6a4946894c04bf7b67ea839b8e6a2383f7079",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a",
                    3,
                    "0x00000000000000000000000013e3ee699d1909e989722e753853ae30b17e08c500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerEthOracleManager"
          }
        },
        "extras": {
          "eth_oracle_id": "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a"
        }
      },
      "hash": "0ada381d975d68408abf9f869a84f363",
      "version": 5
    },
    "invoke.createEthSynth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "createEthSynth": {
            "hash": "0x63c1ea1d36960df6cdb6b339839014da2f1621a76721eb3cfbf50c2cbdf5e60b",
            "events": {
              "AssociatedSystemSet": [
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x6572633230000000000000000000000000000000000000000000000000000000",
                    "0x53f30006c39822da511b35a39972853ada7751741b0287254deb2bedfa69e6a6",
                    "0x08b2A7e830258F28c9c04501447a8bc83DCE42bE",
                    "0xd2d3AcE5C69b0460ec202f83daFcE14766f6EF74"
                  ]
                }
              ],
              "SynthRegistered": [
                {
                  "name": "SynthRegistered",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.createEthSynth"
          }
        },
        "extras": {
          "synth_eth_market_id": "1"
        }
      },
      "hash": "85a0cd5c39fd8e5b71bf2a766d1e51e0",
      "version": 5
    },
    "invoke.setSynthPriceEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthPriceEth": {
            "hash": "0x7941073f5cc6a912d94cac6fef685abeb42aa43ec147b04c155c8f86d9274bba",
            "events": {
              "SynthPriceDataUpdated": [
                {
                  "name": "SynthPriceDataUpdated",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a",
                    "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthPriceEth"
          }
        },
        "extras": {}
      },
      "hash": "9da4afbfe852250eb36f917c28eedea0",
      "version": 5
    },
    "invoke.registerEthOracleNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerEthOracleNode": {
            "hash": "0xd092d724ec3c2af4380839ce06acaeb60fdeb2aa70593051df1b167f449d1d4d",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a",
                    3,
                    "0x00000000000000000000000013e3ee699d1909e989722e753853ae30b17e08c500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerEthOracleNode"
          }
        },
        "extras": {
          "eth_oracle_id": "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a"
        }
      },
      "hash": "0ada381d975d68408abf9f869a84f363",
      "version": 5
    },
    "invoke.configureSynthWrapperEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureSynthWrapperEth": {
            "hash": "",
            "blockNumber": "124713878",
            "timestamp": "1725026724",
            "events": {
              "WrapperSet": [
                {
                  "name": "WrapperSet",
                  "args": [
                    "1",
                    "0x4200000000000000000000000000000000000006",
                    "0"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureSynthWrapperEth",
            "gasUsed": 58849,
            "gasCost": "1000001598",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "33f6b82ac3a3eab1e9c3855c1ff205ee",
      "version": 7
    },
    "invoke.configureWethCollateral": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureWethCollateral": {
            "hash": "0x3e58624b264debc415d6acad35afb1baa0bf7916a6cc36e8bbfd0f65263c7622",
            "events": {
              "CollateralConfigured": [
                {
                  "name": "CollateralConfigured",
                  "args": [
                    "0x4200000000000000000000000000000000000006",
                    [
                      false,
                      {
                        "type": "BigNumber",
                        "hex": "0x29a2241af62c0000"
                      },
                      {
                        "type": "BigNumber",
                        "hex": "0x14d1120d7b160000"
                      },
                      {
                        "type": "BigNumber",
                        "hex": "0x2386f26fc10000"
                      },
                      "0xeb4e9ce87048389ccf5abf4fed4c514e446bc6e1cc7d1a10ec973deee506485a",
                      "0x4200000000000000000000000000000000000006",
                      {
                        "type": "BigNumber",
                        "hex": "0x2386f26fc10000"
                      }
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureWethCollateral"
          }
        },
        "extras": {}
      },
      "hash": "47c3bcc0ab8f03edd28899004f9b6641",
      "version": 5
    },
    "invoke.setScPoolConfig": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setScPoolConfig": {
            "hash": "0x5e07a4ba812db53289930a2f37e0641d6f609e1ac371bef5a4408a77f6715cd0",
            "events": {
              "PoolConfigurationSet": [
                {
                  "name": "PoolConfigurationSet",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    [
                      [
                        {
                          "type": "BigNumber",
                          "hex": "0x01"
                        },
                        {
                          "type": "BigNumber",
                          "hex": "0x01"
                        },
                        {
                          "type": "BigNumber",
                          "hex": "0x0de0b6b3a7640000"
                        }
                      ]
                    ],
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setScPoolConfig"
          }
        },
        "extras": {}
      },
      "hash": "a9d028ddc3902d06058d90890d635887",
      "version": 5
    },
    "invoke.setScPoolName": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setScPoolName": {
            "hash": "0xdb3317837496566e513edfb0dd3d621bdd06d709fab5c47665a9dd0a9db78502",
            "events": {
              "PoolNameUpdated": [
                {
                  "name": "PoolNameUpdated",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    "Spartan Council Pool",
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setScPoolName"
          }
        },
        "extras": {}
      },
      "hash": "9a4cec8163fdf956f8e0efaf34851515",
      "version": 5
    },
    "invoke.setSynthAsyncFixedFeeEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthAsyncFixedFeeEth": {
            "hash": "0xde8243ef3e9b5dff8595f8e465fc836dcc664dc1bd984fde922fcc0421e8193c",
            "events": {
              "AsyncFixedFeeSet": [
                {
                  "name": "AsyncFixedFeeSet",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    {
                      "type": "BigNumber",
                      "hex": "0x038d7ea4c68000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthAsyncFixedFeeEth"
          }
        },
        "extras": {}
      },
      "hash": "79d5e209c8bd745429bace37228616f1",
      "version": 5
    },
    "invoke.setSynthAtomicFixedFeeEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthAtomicFixedFeeEth": {
            "hash": "0x88dd3baa911a2cae5a0b2ccbc6bd38e9d0e3723973d5a405a63471734fd6618a",
            "events": {
              "AtomicFixedFeeSet": [
                {
                  "name": "AtomicFixedFeeSet",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    {
                      "type": "BigNumber",
                      "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthAtomicFixedFeeEth"
          }
        },
        "extras": {}
      },
      "hash": "9f9cf0a9ab2a6d3dc14b195f45137f9f",
      "version": 5
    },
    "invoke.setSynthMaxMarketCollateralEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthMaxMarketCollateralEth": {
            "hash": "",
            "blockNumber": "124713879",
            "timestamp": "1725026726",
            "events": {
              "MaximumMarketCollateralConfigured": [
                {
                  "name": "MaximumMarketCollateralConfigured",
                  "args": [
                    "1",
                    "0x4200000000000000000000000000000000000006",
                    "0",
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthMaxMarketCollateralEth",
            "gasUsed": 35725,
            "gasCost": "1000001400",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "28c190c84a37a843099e76d5e1304689",
      "version": 7
    },
    "invoke.setSynthSettlementStrategyEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthSettlementStrategyEth": {
            "hash": "",
            "blockNumber": "124713880",
            "timestamp": "1725026734",
            "events": {
              "SettlementStrategySet": [
                {
                  "name": "SettlementStrategySet",
                  "args": [
                    "1",
                    "0",
                    {
                      "strategyType": 1,
                      "settlementDelay": "2",
                      "settlementWindowDuration": "60",
                      "priceVerificationContract": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C",
                      "feedId": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
                      "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.setSynthSettlementStrategyEth",
            "gasUsed": 84636,
            "gasCost": "1000001226",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "cd373705db241f044f0ec3d0c061788d",
      "version": 7
    },
    "invoke.setSynthSkewScaleEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthSkewScaleEth": {
            "hash": "0xd90b378b04533ceb4b13513dd71ac4c2f61ccd0b22cb70d21865a96d31ad3d58",
            "events": {
              "MarketSkewScaleSet": [
                {
                  "name": "MarketSkewScaleSet",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    {
                      "type": "BigNumber",
                      "hex": "0x152d02c7e14af6800000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthSkewScaleEth"
          }
        },
        "extras": {}
      },
      "hash": "bc57d7cf45a3c0c58485894be6ab38c8",
      "version": 5
    },
    "invoke.setSynthWrapperFeesEth": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSynthWrapperFeesEth": {
            "hash": "0x8f5d0192afecb20f3244232e427cf64bf8e8969b85eb5c24b893c95a2249972d",
            "events": {
              "WrapperFeesSet": [
                {
                  "name": "WrapperFeesSet",
                  "args": [
                    {
                      "type": "BigNumber",
                      "hex": "0x01"
                    },
                    {
                      "type": "BigNumber",
                      "hex": "0x5af3107a4000"
                    },
                    {
                      "type": "BigNumber",
                      "hex": "0x5af3107a4000"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setSynthWrapperFeesEth"
          }
        },
        "extras": {}
      },
      "hash": "55eab71e6faeb3cd9030139d806cd823",
      "version": 5
    },
    "invoke.configureChainlinkCrossChain": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "configureChainlinkCrossChain": {
            "hash": "0xbe404f4d8193ca5ca36115d8585b130963337f3d85fd44324cf9c8205ec0d25b",
            "events": {
              "AssociatedSystemSet": [
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b53656e64000000000000000000000000000000",
                    "0x261c05167db67B2b619f9d312e0753f3721ad6E8",
                    "0x261c05167db67B2b619f9d312e0753f3721ad6E8"
                  ]
                },
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b52656376000000000000000000000000000000",
                    "0x261c05167db67B2b619f9d312e0753f3721ad6E8",
                    "0x261c05167db67B2b619f9d312e0753f3721ad6E8"
                  ]
                },
                {
                  "name": "AssociatedSystemSet",
                  "args": [
                    "0x756e6d616e616765640000000000000000000000000000000000000000000000",
                    "0x63636970436861696e6c696e6b546f6b656e506f6f6c00000000000000000000",
                    "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8",
                    "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.configureChainlinkCrossChain"
          }
        },
        "extras": {}
      },
      "hash": "2ed806f268e9520ab1aeacaa302f3614",
      "version": 6
    },
    "invoke.allowAllTransferCrossChain": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "allowAllTransferCrossChain": {
            "hash": "0x73ed34655411a7bca3f0e1455e62b248ab9bbfbf1f5e4c8a19bb0039389ab0c6",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x7472616e7366657243726f7373436861696e0000000000000000000000000000",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.allowAllTransferCrossChain"
          }
        },
        "extras": {}
      },
      "hash": "00384bfcc7741fd22c57f50a98baa1d1",
      "version": 6
    },
    "invoke.setSupportedCrossChainNetworks": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setSupportedCrossChainNetworks": {
            "hash": "",
            "blockNumber": "124713862",
            "timestamp": "1725026634",
            "events": {},
            "deployedOn": "invoke.setSupportedCrossChainNetworks",
            "gasUsed": 33823,
            "gasCost": "1000013317",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "6024d6a798e7e8f8c07541bebd0aceb4",
      "version": 7
    },
    "import.v2x": {
      "artifacts": {
        "imports": {
          "v2x": {
            "url": "ipfs://QmdkDQQt2fVA5z4kLA7PJULyoRLkcArtb6g5rH8WHhWGav",
            "settings": {
              "network": "sepolia"
            },
            "contracts": {
              "SafeDecimalMath": {
                "address": "0x0142F40c25CE1F1177Ed131101FA19217396cB88",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "Math": {
                "address": "0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c",
                "sourceName": "contracts/Math.sol",
                "contractName": "Math",
                "abi": [],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "AddressResolver": {
                "address": "0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "ReadProxyAddressResolver": {
                "address": "0x1Cb059b7e74fD21665968C908806143E744D5F30",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "FlexibleStorage": {
                "address": "0x47649022380d182DA8010Ae5d257fea4227b21ff",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "SystemSettings": {
                "address": "0xE28b785ecc2Cb5FE949f5f31A5aEC3989f764838",
                "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://explorer.optimism.io/tx/0xe489e6298049c1787b4271af0fd409c655e2a735c2571aa30e694faf079f36d4",
                "deployedOn": "run.synthetix"
              },
              "SystemStatus": {
                "address": "0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD",
                "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://explorer.optimism.io/tx/0x1755e73d6d414cc63b135a0625b82c20b5d3d640a7ae3090ff14a74cf4ac127d",
                "deployedOn": "run.synthetix"
              },
              "ExchangeRates": {
                "address": "0x913bd76F7E1572CC8278CeF2D6b06e2140ca9Ce2",
                "sourceName": "contracts/ExchangeRates.sol",
                "contractName": "ExchangeRates",
                "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 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 effectiveAtomicValueAndRates(bytes32, uint256, bytes32) 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), uint256, 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), 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)) 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 synthTooVolatileForAtomicExchange(bytes32) 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)) view returns (bool)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x3bbf5797b9eb122e1f92435280f557947c130bdc38d3d547c28a25da05d55983",
                "deployedOn": "run.synthetix"
              },
              "RewardEscrowV2": {
                "address": "0x5Fc9B8d2B7766f061bD84a41255fD1A76Fd1FAa2",
                "sourceName": "contracts/ImportableRewardEscrowV2.sol",
                "contractName": "ImportableRewardEscrowV2",
                "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 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, uint256[]) returns (uint256, tuple(uint64 endTime, uint256 escrowAmount)[])",
                  "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 account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                  "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://explorer.optimism.io/tx/0x0bcc39110be7d4fe84661357fbc3a76c1907e7ba4bf06d3068f792af8d72c033",
                "deployedOn": "run.synthetix"
              },
              "SynthetixEscrow": {
                "address": "0x06C6D063896ac733673c4474E44d9268f2402A55",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "ProxyFeePool": {
                "address": "0x4a16A42407AA491564643E1dfc1fd50af29794eF",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "DelegateApprovalsEternalStorage": {
                "address": "0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "DelegateApprovals": {
                "address": "0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "FeePoolEternalStorage": {
                "address": "0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "FeePool": {
                "address": "0xf9FE3607e6d19D8dC690DD976061a91D4A0db30B",
                "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://explorer.optimism.io/tx/0xbc8e01e49d248d2a6d488dd8240b807d27f988bff5f92d643f6ccb780a530c34",
                "deployedOn": "run.synthetix"
              },
              "FeePoolState": {
                "address": "0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "RewardsDistribution": {
                "address": "0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "ProxyERC20": {
                "address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                "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"
              },
              "TokenStateSynthetix": {
                "address": "0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE",
                "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"
              },
              "Synthetix": {
                "address": "0x3f2A1F997Ef089798d19473D96be484Aeb3E4ECf",
                "sourceName": "contracts/MintableSynthetix.sol",
                "contractName": "MintableSynthetix",
                "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 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 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 account, uint256 amount)",
                  "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 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, uint256, bytes32, bytes32, uint256) returns (uint256)",
                  "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, uint256, bytes32, address, bytes32) returns (uint256)",
                  "function exchangeWithVirtual(bytes32, uint256, bytes32, bytes32) returns (uint256, address)",
                  "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 migrateEscrowContractBalance()",
                  "function mint() returns (bool)",
                  "function mintSecondary(address account, uint256 amount)",
                  "function mintSecondaryRewards(uint256 amount)",
                  "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://explorer.optimism.io/tx/0x6d7880c256a6a7a883c4ea17efadfeac1b27d1a758c345a344fba504dc17b4cc",
                "deployedOn": "run.synthetix"
              },
              "ProxySynthetix": {
                "address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                "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"
              },
              "DebtCache": {
                "address": "0x96bDD51Cd421CD84123577Fe5Ea44A45Dacf01BA",
                "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://explorer.optimism.io/tx/0x2d51c70fd3d04824d19af3db4d45e5274df04652bf230649e74affb2f900472d",
                "deployedOn": "run.synthetix"
              },
              "Exchanger": {
                "address": "0x24b4b6703a2eE7bA75a4Fc859B606F0bbaeef4EA",
                "sourceName": "contracts/Exchanger.sol",
                "contractName": "Exchanger",
                "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)",
                  "function CONTRACT_NAME() view returns (bytes32)",
                  "function acceptOwnership()",
                  "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, bytes32, uint256, bytes32, address, bytes32, uint256) returns (uint256)",
                  "function feeRateForExchange(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256)",
                  "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 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://explorer.optimism.io/tx/0xca071b47559ffd14764e7a98c2e3c26d1a300460bfc035a3dde210f0efded60c",
                "deployedOn": "run.synthetix"
              },
              "ExchangeState": {
                "address": "0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "Issuer": {
                "address": "0xb4E0FA941376e101C29A9FA5A9C6a95489aA34cD",
                "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://explorer.optimism.io/tx/0x1b1458fedca37f24b2209e4cf1a277c44fb8f40575f38377093526d16e8c1905",
                "deployedOn": "run.synthetix"
              },
              "TradingRewards": {
                "address": "0x2DcAD1A019fba8301b77810Ae14007cc88ED004B",
                "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 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 setPaused(bool _paused)",
                  "function setPeriodController(address newPeriodController)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "EscrowChecker": {
                "address": "0xcdb7D0a946223255d39A6e29B54f08f3291cc118",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "TokenStatesUSD": {
                "address": "0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2",
                "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"
              },
              "ProxysUSD": {
                "address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
                "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"
              },
              "ProxyERC20sUSD": {
                "address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
                "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": "0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB",
                "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://explorer.optimism.io/tx/0x53563b894ee7295c4db1e876e0ebf30d3743896e6054c8eb35943afd3a6c4a95",
                "deployedOn": "run.synthetix"
              },
              "SynthetixBridgeToBase": {
                "address": "0x136b1EC699c62b0606854056f02dC7Bb80482d63",
                "sourceName": "contracts/SynthetixBridgeToBase.sol",
                "contractName": "SynthetixBridgeToBase",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DepositFinalized(address indexed _to, uint256 _amount)",
                  "event FeePeriodCloseFinalized(uint256 snxBackedAmount, uint256 totalDebtShares)",
                  "event FinalizeSynthTransfer(bytes32 indexed currencyKey, address indexed destination, uint256 amount)",
                  "event ImportedVestingEntries(address indexed account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                  "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 RewardDepositFinalized(address from, uint256 amount)",
                  "event WithdrawalInitiated(address indexed _from, address _to, uint256 _amount)",
                  "function CONTRACT_NAME() pure returns (bytes32)",
                  "function acceptOwnership()",
                  "function finalizeDeposit(address to, uint256 amount)",
                  "function finalizeEscrowMigration(address account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                  "function finalizeFeePeriodClose(uint256 snxBackedAmount, uint256 totalDebtShares)",
                  "function finalizeRewardDeposit(address from, uint256 amount)",
                  "function finalizeSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                  "function initiateSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                  "function initiationActive() view returns (bool)",
                  "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 resumeInitiation()",
                  "function suspendInitiation()",
                  "function synthTransferReceived() view returns (uint256)",
                  "function synthTransferSent() view returns (uint256)",
                  "function withdraw(uint256 amount)",
                  "function withdrawTo(address to, uint256 amount)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xbf69ba068e1b977b8bcbd46a1b53b80b9db4d29335737b23ef10ee3765f14a19",
                "deployedOn": "run.synthetix"
              },
              "CollateralManager": {
                "address": "0x15E7D4972a3E477878A5867A47617122BE2d1fF0",
                "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://explorer.optimism.io/tx/0xde6a2ad50eb498c2e96e19e9d431f7eccaa2135541413d1fbf87c22cb02bce01",
                "deployedOn": "run.synthetix"
              },
              "SynthUtil": {
                "address": "0x87b1481c82913301Fc6c884Ac266a7c430F92cFA",
                "sourceName": "contracts/SynthUtil.sol",
                "contractName": "SynthUtil",
                "abi": [
                  "constructor(address resolver)",
                  "function addressResolverProxy() view returns (address)",
                  "function frozenSynths() view returns (bytes32[])",
                  "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": "",
                "deployedOn": "run.synthetix"
              },
              "DappMaintenance": {
                "address": "0x54581A23F62D147AC76d454f0b3eF77F9D766058",
                "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": "",
                "deployedOn": "run.synthetix"
              },
              "EtherWrapper": {
                "address": "0xc3Ee42caBD773A608fa9Ec951982c94BD6F33d59",
                "sourceName": "contracts/EmptyEtherWrapper.sol",
                "contractName": "EmptyEtherWrapper",
                "abi": [
                  "constructor()",
                  "function distributeFees()",
                  "function totalIssuedSynths() view returns (uint256)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "TokenStatesETH": {
                "address": "0xEc3665F7e696b0Ad0D04Ae5161b18782D48cd1fd",
                "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": "0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49",
                "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": "0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7",
                "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": "0xA9E630952522E3F110322711F424528Af894e307",
                "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": "0x298B9B95708152ff6968aafd889c6586e9169f1D",
                "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": "0x421DEF861D623F7123dfE0878D86E9576cbb3975",
                "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"
              },
              "TokenStatesLINK": {
                "address": "0x08a008eEA07d3cC7ca1913EEC3468C10F8F79e6A",
                "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"
              },
              "ProxysLINK": {
                "address": "0xc5Db22719A06418028A40A9B5E9A7c02959D0d08",
                "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"
              },
              "SynthsLINK": {
                "address": "0x0F6877e0Bb54a0739C6173A814B39D5127804123",
                "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"
              },
              "SynthRedeemer": {
                "address": "0xA997BD647AEe62Ef03b41e6fBFAdaB43d8E57535",
                "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://explorer.optimism.io/tx/0x834046a0d1c1f1554f68fbec14625d6e4fd6a780a4e29d3808ed389cfa94abbe",
                "deployedOn": "run.synthetix"
              },
              "CollateralUtil": {
                "address": "0xD21969A86Ce5c41aAb2D492a0F802AA3e015cd9A",
                "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://explorer.optimism.io/tx/0x7f9b991d0e39d9d4acb97e97dd8e030d69d0c54fc98f3eb81bd0c9c08ac20e83",
                "deployedOn": "run.synthetix"
              },
              "CollateralManagerState": {
                "address": "0xbA10526cD8742acC73AedeF5f7Dbb2477Bf86922",
                "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://explorer.optimism.io/tx/0xc961ada3875dfdcc001f990bd9589207b2fc948e24aac9523afbf2860e21f8fa",
                "deployedOn": "run.synthetix"
              },
              "CollateralShort": {
                "address": "0xeb4b5ABcE7310855319440d936cd3aDd77DFA193",
                "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://explorer.optimism.io/tx/0xaa088cb79b36320f883bd9e802737a099b33dafcf47f5ba9fbf1d5cec1eb5d40",
                "deployedOn": "run.synthetix"
              },
              "WrapperFactory": {
                "address": "0x27be2EFAd45DeBd732C1EBf5C9F7b49D498D4a93",
                "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://explorer.optimism.io/tx/0xb8b6fc36b7cb72f52654255e77079e4cde9879626145c0342c39693ec1c5e7c9",
                "deployedOn": "run.synthetix"
              },
              "OwnerRelayOnOptimism": {
                "address": "0x6d4a64C57612841c2C6745dB2a4E4db34F002D20",
                "sourceName": "contracts/OwnerRelayOnOptimism.sol",
                "contractName": "OwnerRelayOnOptimism",
                "abi": [
                  "constructor(address _resolver, address _temporaryOwner, uint256 _ownershipDuration)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DirectRelay(address target, bytes payload)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RelayBatchFinalized(address[] targets, bytes[] payloads)",
                  "event RelayFinalized(address target, bytes payload)",
                  "function acceptOwnership()",
                  "function directRelay(address target, bytes payload)",
                  "function expiryTime() view returns (uint256)",
                  "function finalizeRelay(address target, bytes payload)",
                  "function finalizeRelayBatch(address[] targets, bytes[] payloads)",
                  "function isResolverCached() view returns (bool)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function rebuildCache()",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setNewExpiryTime(uint256 _duration)",
                  "function temporaryOwner() view returns (address)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x8b3f33579f65c9d5f4a1eaf78fff47b6e42d481b9686575303be4f5bc6c30433",
                "deployedOn": "run.synthetix"
              },
              "CollateralEth": {
                "address": "0x308AD16ef90fe7caCb85B784A603CB6E71b1A41a",
                "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://explorer.optimism.io/tx/0x7849ba45a602863e4d20a0abd2d0e7d7d9ca6b5b369da56356b91f382a7e034a",
                "deployedOn": "run.synthetix"
              },
              "StakingRewardssUSDDAIUniswapV3": {
                "address": "0x7E11c004d20b502729918687E6E6777b28499085",
                "sourceName": "contracts/StakingRewards.sol",
                "contractName": "StakingRewards",
                "abi": [
                  "constructor(address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PauseChanged(bool isPaused)",
                  "event Recovered(address token, uint256 amount)",
                  "event RewardAdded(uint256 reward)",
                  "event RewardPaid(address indexed user, uint256 reward)",
                  "event RewardsDurationUpdated(uint256 newDuration)",
                  "event Staked(address indexed user, uint256 amount)",
                  "event Withdrawn(address indexed user, uint256 amount)",
                  "function acceptOwnership()",
                  "function balanceOf(address account) view returns (uint256)",
                  "function earned(address account) view returns (uint256)",
                  "function exit()",
                  "function getReward()",
                  "function getRewardForDuration() view returns (uint256)",
                  "function lastPauseTime() view returns (uint256)",
                  "function lastTimeRewardApplicable() view returns (uint256)",
                  "function lastUpdateTime() 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 periodFinish() view returns (uint256)",
                  "function recoverERC20(address tokenAddress, uint256 tokenAmount)",
                  "function rewardPerToken() view returns (uint256)",
                  "function rewardPerTokenStored() view returns (uint256)",
                  "function rewardRate() view returns (uint256)",
                  "function rewards(address) view returns (uint256)",
                  "function rewardsDistribution() view returns (address)",
                  "function rewardsDuration() view returns (uint256)",
                  "function rewardsToken() view returns (address)",
                  "function setPaused(bool _paused)",
                  "function setRewardsDistribution(address _rewardsDistribution)",
                  "function setRewardsDuration(uint256 _rewardsDuration)",
                  "function stake(uint256 amount)",
                  "function stakingToken() view returns (address)",
                  "function totalSupply() view returns (uint256)",
                  "function userRewardPerTokenPaid(address) view returns (uint256)",
                  "function withdraw(uint256 amount)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "StakingRewardsSNXWETHUniswapV3": {
                "address": "0xfD49C7EE330fE060ca66feE33d49206eB96F146D",
                "sourceName": "contracts/StakingRewards.sol",
                "contractName": "StakingRewards",
                "abi": [
                  "constructor(address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PauseChanged(bool isPaused)",
                  "event Recovered(address token, uint256 amount)",
                  "event RewardAdded(uint256 reward)",
                  "event RewardPaid(address indexed user, uint256 reward)",
                  "event RewardsDurationUpdated(uint256 newDuration)",
                  "event Staked(address indexed user, uint256 amount)",
                  "event Withdrawn(address indexed user, uint256 amount)",
                  "function acceptOwnership()",
                  "function balanceOf(address account) view returns (uint256)",
                  "function earned(address account) view returns (uint256)",
                  "function exit()",
                  "function getReward()",
                  "function getRewardForDuration() view returns (uint256)",
                  "function lastPauseTime() view returns (uint256)",
                  "function lastTimeRewardApplicable() view returns (uint256)",
                  "function lastUpdateTime() 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 periodFinish() view returns (uint256)",
                  "function recoverERC20(address tokenAddress, uint256 tokenAmount)",
                  "function rewardPerToken() view returns (uint256)",
                  "function rewardPerTokenStored() view returns (uint256)",
                  "function rewardRate() view returns (uint256)",
                  "function rewards(address) view returns (uint256)",
                  "function rewardsDistribution() view returns (address)",
                  "function rewardsDuration() view returns (uint256)",
                  "function rewardsToken() view returns (address)",
                  "function setPaused(bool _paused)",
                  "function setRewardsDistribution(address _rewardsDistribution)",
                  "function setRewardsDuration(uint256 _rewardsDuration)",
                  "function stake(uint256 amount)",
                  "function stakingToken() view returns (address)",
                  "function totalSupply() view returns (uint256)",
                  "function userRewardPerTokenPaid(address) view returns (uint256)",
                  "function withdraw(uint256 amount)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "SystemSettingsLib": {
                "address": "0x6fEd9c8de9886557AA7F4bF7784Cb579d38F833c",
                "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://explorer.optimism.io/tx/0x7d1d9f1edfef5ee399e9331662cda095d7a05635ec06b628abbc3396627de0f0",
                "deployedOn": "run.synthetix"
              },
              "SynthetixDebtShare": {
                "address": "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
                "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://explorer.optimism.io/tx/0x440843de030008aac6d5718e52c8c9928c89203293b0703faf84a41bfdbb97d4",
                "deployedOn": "run.synthetix"
              },
              "TokenStatesSOL": {
                "address": "0x6825Dd6B5b83FBbFF1049A44dc808A10fe9a6719",
                "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://explorer.optimism.io/tx/0x7b89e42a7670e68bee385cbef957ccb61d22969768c6d40251d4d28849f2c907",
                "deployedOn": "run.synthetix"
              },
              "ProxysSOL": {
                "address": "0x8b2F7Ae8cA8EE8428B6D76dE88326bB413db2766",
                "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://explorer.optimism.io/tx/0xb7b6b52eacf82c40e8fd76a4a8a413f4358d391c616b88772814f610634b747d",
                "deployedOn": "run.synthetix"
              },
              "SynthsSOL": {
                "address": "0x04B50a5992Ea2281E14d43494d656698EA9C24dD",
                "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"
              },
              "TokenStatesAVAX": {
                "address": "0x2114d1C571CB541f3416a65f8BccFf9BB9E55Dc5",
                "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"
              },
              "ProxysAVAX": {
                "address": "0xB2b42B231C68cbb0b4bF2FFEbf57782Fd97D3dA4",
                "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"
              },
              "SynthsAVAX": {
                "address": "0x368A5126fF8e659004b6f9C9F723E15632e2B428",
                "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"
              },
              "TokenStatesMATIC": {
                "address": "0x937C9E1d18bEB4F8E1BCB0Dd7a612ca6012517a3",
                "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"
              },
              "ProxysMATIC": {
                "address": "0x81DDfAc111913d3d5218DEA999216323B7CD6356",
                "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"
              },
              "SynthsMATIC": {
                "address": "0xf49C194954b6B91855aC06D6C88Be316da60eD96",
                "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"
              },
              "TokenStatesEUR": {
                "address": "0x7afF10fc89B162c7aBf77974d190E7959cb456f5",
                "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"
              },
              "ProxysEUR": {
                "address": "0xFBc4198702E81aE77c06D58f81b629BDf36f0a71",
                "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"
              },
              "SynthsEUR": {
                "address": "0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2",
                "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"
              },
              "SignedSafeDecimalMath": {
                "address": "0x253914cf059f4c3E277c28060C404acFc38FB6e2",
                "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://explorer.optimism.io/tx/0x42365b277121025488d24a669c23bd0e0ec4e984a44cd4f15e2f8be7c5f1d4e2",
                "deployedOn": "run.synthetix"
              },
              "OneNetAggregatorIssuedSynths": {
                "address": "0xe152A2DbcE62E6c0bd387fFd1bb8086F44c5Fd04",
                "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://explorer.optimism.io/tx/0x9c87a560ac15ac9720820b41ce580175303897ad1817e24e6f5b30c39cd5b33a",
                "deployedOn": "run.synthetix"
              },
              "OneNetAggregatorDebtRatio": {
                "address": "0xA408d8e01C8E084B67559226C5B55D6F0B7074e2",
                "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://explorer.optimism.io/tx/0xa74caca4a3ca2b47d00cb62124026fd1ebe110eaad3ad81365d15648d977b48b",
                "deployedOn": "run.synthetix"
              },
              "ExchangeCircuitBreaker": {
                "address": "0x7322e8F6cB6c6a7B4e6620C486777fcB9Ea052a4",
                "sourceName": "contracts/ExchangeCircuitBreaker.sol",
                "contractName": "ExchangeCircuitBreaker",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event LastRateOverriden(bytes32 currencyKey, uint256 previousRate, uint256 newRate)",
                  "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 isDeviationAboveThreshold(uint256 base, uint256 comparison) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function lastExchangeRate(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 rateWithBreakCircuit(bytes32 currencyKey) returns (uint256 lastValidRate, bool circuitBroken)",
                  "function rateWithInvalid(bytes32 currencyKey) view returns (uint256, bool)",
                  "function rebuildCache()",
                  "function resetLastExchangeRate(bytes32[] currencyKeys)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xe10a3ad5ce544d743c6cdb87619bf86413cec865ff82f188aca2d9e1d177e4cd",
                "deployedOn": "run.synthetix"
              },
              "TokenStatesAAVE": {
                "address": "0xAf918f4a72BC34E59dFaF65866feC87947F1f590",
                "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"
              },
              "ProxysAAVE": {
                "address": "0x00B8D5a5e1Ac97Cb4341c4Bc4367443c8776e8d9",
                "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"
              },
              "SynthsAAVE": {
                "address": "0x34783A738DdC355cD7c737D4101b20622681332a",
                "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"
              },
              "TokenStatesUNI": {
                "address": "0xf32b995Fe4dDf540C848236dB9638d137Aa9b6ff",
                "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"
              },
              "ProxysUNI": {
                "address": "0xf5a6115Aa582Fd1BEEa22BC93B7dC7a785F60d03",
                "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"
              },
              "SynthsUNI": {
                "address": "0xcF2E165D2359E3C4dFF1E10eC40dBB5a745223A9",
                "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"
              },
              "FuturesMarketManager": {
                "address": "0xd30bdFd7e7a65fE109D5dE1D4e95F3B800FB7463",
                "sourceName": "contracts/FuturesMarketManager.sol",
                "contractName": "FuturesMarketManager",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event EndorsedAddressAdded(address endorsedAddress)",
                  "event EndorsedAddressRemoved(address endorsedAddress)",
                  "event MarketAdded(address market, bytes32 indexed asset, bytes32 indexed marketKey)",
                  "event MarketRemoved(address market, bytes32 indexed asset, bytes32 indexed marketKey)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function CONTRACT_NAME() view returns (bytes32)",
                  "function acceptOwnership()",
                  "function addEndorsedAddresses(address[] addresses)",
                  "function addMarkets(address[] marketsToAdd)",
                  "function addProxiedMarkets(address[] marketsToAdd)",
                  "function allEndorsedAddresses() view returns (address[])",
                  "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                  "function allMarkets() view returns (address[])",
                  "function allMarkets(bool proxiedMarkets) view returns (address[])",
                  "function burnSUSD(address account, uint256 amount) returns (uint256 postReclamationAmount)",
                  "function isEndorsed(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function issueSUSD(address account, uint256 amount)",
                  "function marketForKey(bytes32) view returns (address)",
                  "function marketSummaries(address[] addresses) view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                  "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                  "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 nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function numMarkets() view returns (uint256)",
                  "function numMarkets(bool proxiedMarkets) view returns (uint256)",
                  "function owner() view returns (address)",
                  "function payFee(uint256 amount, bytes32 trackingCode)",
                  "function payFee(uint256 amount)",
                  "function rebuildCache()",
                  "function removeEndorsedAddresses(address[] addresses)",
                  "function removeMarkets(address[] marketsToRemove)",
                  "function removeMarketsByKey(bytes32[] marketKeysToRemove)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function totalDebt() view returns (uint256 debt, bool isInvalid)",
                  "function updateMarketsImplementations(address[] marketsToUpdate)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xe3fe83acbc21d7acbc70b6cc7360c63f7511dc737aa821f28aa62b592f3d58f8",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketData": {
                "address": "0xC51aeDBEC3aCD26650a7E85B6909E8AEc4d0F19e",
                "sourceName": "contracts/FuturesMarketData.sol",
                "contractName": "FuturesMarketData",
                "abi": [
                  "constructor(address _resolverProxy)",
                  "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                  "function globals() view returns (tuple(uint256 minInitialMargin, uint256 liquidationFeeRatio, uint256 liquidationBufferRatio, uint256 minKeeperFee))",
                  "function marketDetails(address market) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValueUSD) limits, tuple(uint256 maxFundingRate, uint256 skewScaleUSD) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                  "function marketDetailsForKey(bytes32 marketKey) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValueUSD) limits, tuple(uint256 maxFundingRate, uint256 skewScaleUSD) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                  "function marketSummaries(address[] markets) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                  "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                  "function parameters(bytes32 marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice, uint256 nextPriceConfirmWindow, uint256 maxLeverage, uint256 maxMarketValueUSD, uint256 maxFundingRate, uint256 skewScaleUSD))",
                  "function positionDetails(address market, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                  "function positionDetailsForMarketKey(bytes32 marketKey, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                  "function resolverProxy() view returns (address)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x804037170846adf1906b3211bdfb8c966f04c30d7edc3cd303da26909c58078f",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketSettings": {
                "address": "0xaE55F163337A2A46733AA66dA9F35299f9A46e9e",
                "sourceName": "contracts/FuturesMarketSettings.sol",
                "contractName": "FuturesMarketSettings",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event LiquidationBufferRatioUpdated(uint256 bps)",
                  "event LiquidationFeeRatioUpdated(uint256 bps)",
                  "event MinInitialMarginUpdated(uint256 minMargin)",
                  "event MinKeeperFeeUpdated(uint256 sUSD)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event ParameterUpdated(bytes32 indexed marketKey, bytes32 indexed parameter, uint256 value)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationBufferRatio() view returns (uint256)",
                  "function liquidationFeeRatio() view returns (uint256)",
                  "function makerFee(bytes32 _marketKey) view returns (uint256)",
                  "function makerFeeNextPrice(bytes32 _marketKey) view returns (uint256)",
                  "function maxFundingRate(bytes32 _marketKey) view returns (uint256)",
                  "function maxLeverage(bytes32 _marketKey) view returns (uint256)",
                  "function maxMarketValueUSD(bytes32 _marketKey) view returns (uint256)",
                  "function minInitialMargin() view returns (uint256)",
                  "function minKeeperFee() view returns (uint256)",
                  "function nextPriceConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function parameters(bytes32 _marketKey) view returns (uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice, uint256 nextPriceConfirmWindow, uint256 maxLeverage, uint256 maxMarketValueUSD, uint256 maxFundingRate, uint256 skewScaleUSD)",
                  "function rebuildCache()",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setLiquidationBufferRatio(uint256 _ratio)",
                  "function setLiquidationFeeRatio(uint256 _ratio)",
                  "function setMakerFee(bytes32 _marketKey, uint256 _makerFee)",
                  "function setMakerFeeNextPrice(bytes32 _marketKey, uint256 _makerFeeNextPrice)",
                  "function setMaxFundingRate(bytes32 _marketKey, uint256 _maxFundingRate)",
                  "function setMaxLeverage(bytes32 _marketKey, uint256 _maxLeverage)",
                  "function setMaxMarketValueUSD(bytes32 _marketKey, uint256 _maxMarketValueUSD)",
                  "function setMinInitialMargin(uint256 _minMargin)",
                  "function setMinKeeperFee(uint256 _sUSD)",
                  "function setNextPriceConfirmWindow(bytes32 _marketKey, uint256 _nextPriceConfirmWindow)",
                  "function setParameters(bytes32 _marketKey, uint256 _takerFee, uint256 _makerFee, uint256 _takerFeeNextPrice, uint256 _makerFeeNextPrice, uint256 _nextPriceConfirmWindow, uint256 _maxLeverage, uint256 _maxMarketValueUSD, uint256 _maxFundingRate, uint256 _skewScaleUSD)",
                  "function setSkewScaleUSD(bytes32 _marketKey, uint256 _skewScaleUSD)",
                  "function setTakerFee(bytes32 _marketKey, uint256 _takerFee)",
                  "function setTakerFeeNextPrice(bytes32 _marketKey, uint256 _takerFeeNextPrice)",
                  "function skewScaleUSD(bytes32 _marketKey) view returns (uint256)",
                  "function takerFee(bytes32 _marketKey) view returns (uint256)",
                  "function takerFeeNextPrice(bytes32 _marketKey) view returns (uint256)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xe1f4319cea5ee204053b01831644645c6157ab92858d23fd35e128356a0a4590",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketBTC": {
                "address": "0xEe8804d8Ad10b0C3aD1Bd57AC3737242aD24bB95",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xafb4bf1178923a3a18fb3fb1c1d588f4d2dbb1b118239f887121fd73891ccca8",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketETH": {
                "address": "0xf86048DFf23cF130107dfB4e6386f574231a5C65",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketLINK": {
                "address": "0x1228c7D8BBc5bC53DB181bD7B1fcE765aa83bF8A",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketSOL": {
                "address": "0xcF853f7f8F78B2B801095b66F8ba9c5f04dB1640",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketAVAX": {
                "address": "0x4ff54624D5FB61C34c634c3314Ed3BfE4dBB665a",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketAAVE": {
                "address": "0x001b7876F567f0b3A639332Ed1e363839c6d85e2",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketUNI": {
                "address": "0x5Af0072617F7f2AEB0e314e2faD1DE0231Ba97cD",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketMATIC": {
                "address": "0xbCB2D435045E16B059b2130b28BE70b5cA47bFE5",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketXAU": {
                "address": "0x4434f56ddBdE28fab08C4AE71970a06B300F8881",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketXAG": {
                "address": "0xb147C69BEe211F57290a6cde9d1BAbfD0DCF3Ea3",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketEUR": {
                "address": "0xad44873632840144fFC97b2D1de716f6E2cF0366",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketAPE": {
                "address": "0xFe00395ec846240dc693e92AB2Dd720F94765Aa3",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x581b35d8a283164d2ef260ce78e0ab12e9b6c986d305e1578bf60b57e533b963",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketDYDX": {
                "address": "0x10305C1854d6DB8A1060dF60bDF8A8B2981249Cf",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "Liquidator": {
                "address": "0xB589Af3f2e3377A9a57da74bE1b6598926479505",
                "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://explorer.optimism.io/tx/0x8e19a0e690e095c903e0a6146209ba792498a3dfcb9fcada97f35ea5f8439a35",
                "deployedOn": "run.synthetix"
              },
              "LiquidatorRewards": {
                "address": "0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4",
                "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://explorer.optimism.io/tx/0x83b3f428a39f34f894092cd3cdfc6a2479c9b5ccefedc5b0c735c4477632afba",
                "deployedOn": "run.synthetix"
              },
              "CircuitBreaker": {
                "address": "0x803FD1d99C3a6cbcbABAB79C44e108dC2fb67102",
                "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://explorer.optimism.io/tx/0xec5bf9f299e1c2729b61fbf5365de960f14fd40683e78e3bbe65e63f6875e44e",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketDebtRatio": {
                "address": "0xd325B17d5C9C3f2B6853A760afCF81945b0184d3",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x56b24fb2151ec4d8d197fd429d80b160b7d8b6c751b7dfe6f9bdf695f5f7baa1",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketBNB": {
                "address": "0x4Aa0dabd22BC0894975324Bec293443c8538bD08",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketOP": {
                "address": "0x9F1C2f0071Bc3b31447AEda9fA3A68d651eB4632",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketXMR": {
                "address": "0x3Ed04CEfF4c91872F19b1da35740C0Be9CA21558",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "FuturesMarketDOGE": {
                "address": "0x9f231dBE53D460f359B2B8CC47574493caA5B7Bf",
                "sourceName": "contracts/frozen/FuturesMarket.sol",
                "contractName": "FuturesMarket",
                "abi": [
                  "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                  "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function cancelNextPriceOrder(address account)",
                  "function closePosition()",
                  "function closePositionWithTracking(bytes32 trackingCode)",
                  "function currentFundingRate() view returns (int256)",
                  "function executeNextPriceOrder(address account)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingSequence(uint256) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function modifyPosition(int256 sizeDelta)",
                  "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                  "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                  "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function submitNextPriceOrder(int256 sizeDelta)",
                  "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                  "function transferMargin(int256 marginDelta)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "RewardEscrowV2Storage": {
                "address": "0x0c2ED9B23BAF9C5f486e175D406728d3bE46d2A6",
                "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://explorer.optimism.io/tx/0x98c938c24f688f84a9c958529663915c254fa0c89e61efe36b24eed32dc58f19",
                "deployedOn": "run.synthetix"
              },
              "ExchangeSettlementLib": {
                "address": "0xFfa3635f5844eA0F2FcCB03cb936828F508F558b",
                "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://explorer.optimism.io/tx/0x5b915b8b723434598e3fb9693a427078811778c7b5826402c342622ba247f934",
                "deployedOn": "run.synthetix"
              },
              "DirectIntegrationManager": {
                "address": "0x186c50515e6Ee95cEC381d7f6Fe72C67085dBCb4",
                "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://explorer.optimism.io/tx/0x4c7483866b64f9cb8fbef25cd5f1b88cbbdb107d0b28a7a1e5c9f7849630b555",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketData": {
                "address": "0x340B5d664834113735730Ad4aFb3760219Ad9112",
                "sourceName": "contracts/PerpsV2MarketData.sol",
                "contractName": "PerpsV2MarketData",
                "abi": [
                  "constructor(address _resolverProxy)",
                  "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                  "function allProxiedMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                  "function globals() view returns (tuple(uint256 minInitialMargin, uint256 liquidationFeeRatio, uint256 minKeeperFee, uint256 maxKeeperFee))",
                  "function marketDetails(address market) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValue) limits, tuple(uint256 maxFundingVelocity, uint256 skewScale) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                  "function marketDetailsForKey(bytes32 marketKey) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValue) limits, tuple(uint256 maxFundingVelocity, uint256 skewScale) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                  "function marketSummaries(address[] markets) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                  "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                  "function parameters(bytes32 marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD))",
                  "function positionDetails(address market, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                  "function positionDetailsForMarketKey(bytes32 marketKey, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                  "function resolverProxy() view returns (address)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xb65cbfcc1138a04d2df792a9a33b5a84ae205d44a375f001294d8e4b4fea7f00",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSettings": {
                "address": "0x649F44CAC3276557D03223Dbf6395Af65b11c11c",
                "sourceName": "contracts/PerpsV2MarketSettings.sol",
                "contractName": "PerpsV2MarketSettings",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event KeeperLiquidationFeeUpdated(uint256 keeperFee)",
                  "event LiquidationBufferRatioUpdated(uint256 bps)",
                  "event LiquidationFeeRatioUpdated(uint256 bps)",
                  "event MaxKeeperFeeUpdated(uint256 sUSD)",
                  "event MinInitialMarginUpdated(uint256 minMargin)",
                  "event MinKeeperFeeUpdated(uint256 sUSD)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event ParameterUpdated(bytes32 indexed marketKey, bytes32 indexed parameter, uint256 value)",
                  "event ParameterUpdatedBytes32(bytes32 indexed marketKey, bytes32 indexed parameter, bytes32 value)",
                  "function CONTRACT_NAME() view returns (bytes32)",
                  "function acceptOwnership()",
                  "function delayedOrderConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                  "function isResolverCached() view returns (bool)",
                  "function keeperLiquidationFee() view returns (uint256)",
                  "function liquidationBufferRatio(bytes32 _marketKey) view returns (uint256)",
                  "function liquidationFeeRatio() view returns (uint256)",
                  "function liquidationPremiumMultiplier(bytes32 _marketKey) view returns (uint256)",
                  "function makerFee(bytes32 _marketKey) view returns (uint256)",
                  "function makerFeeDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                  "function makerFeeOffchainDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                  "function maxDelayTimeDelta(bytes32 _marketKey) view returns (uint256)",
                  "function maxFundingVelocity(bytes32 _marketKey) view returns (uint256)",
                  "function maxKeeperFee() view returns (uint256)",
                  "function maxLeverage(bytes32 _marketKey) view returns (uint256)",
                  "function maxLiquidationDelta(bytes32 _marketKey) view returns (uint256)",
                  "function maxMarketValue(bytes32 _marketKey) view returns (uint256)",
                  "function maxPD(bytes32 _marketKey) view returns (uint256)",
                  "function minDelayTimeDelta(bytes32 _marketKey) view returns (uint256)",
                  "function minInitialMargin() view returns (uint256)",
                  "function minKeeperFee() view returns (uint256)",
                  "function nextPriceConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function offchainDelayedOrderMaxAge(bytes32 _marketKey) view returns (uint256)",
                  "function offchainDelayedOrderMinAge(bytes32 _marketKey) view returns (uint256)",
                  "function offchainMarketKey(bytes32 _marketKey) view returns (bytes32)",
                  "function offchainPriceDivergence(bytes32 _marketKey) view returns (uint256)",
                  "function owner() view returns (address)",
                  "function parameters(bytes32 _marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD))",
                  "function rebuildCache()",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setDelayedOrderConfirmWindow(bytes32 _marketKey, uint256 _delayedOrderConfirmWindow)",
                  "function setKeeperLiquidationFee(uint256 _keeperFee)",
                  "function setLiquidationBufferRatio(bytes32 _marketKey, uint256 _ratio)",
                  "function setLiquidationFeeRatio(uint256 _ratio)",
                  "function setLiquidationPremiumMultiplier(bytes32 _marketKey, uint256 _liquidationPremiumMultiplier)",
                  "function setMakerFee(bytes32 _marketKey, uint256 _makerFee)",
                  "function setMakerFeeDelayedOrder(bytes32 _marketKey, uint256 _makerFeeDelayedOrder)",
                  "function setMakerFeeOffchainDelayedOrder(bytes32 _marketKey, uint256 _makerFeeOffchainDelayedOrder)",
                  "function setMaxDelayTimeDelta(bytes32 _marketKey, uint256 _maxDelayTimeDelta)",
                  "function setMaxFundingVelocity(bytes32 _marketKey, uint256 _maxFundingVelocity)",
                  "function setMaxKeeperFee(uint256 _sUSD)",
                  "function setMaxLeverage(bytes32 _marketKey, uint256 _maxLeverage)",
                  "function setMaxLiquidationDelta(bytes32 _marketKey, uint256 _maxLiquidationDelta)",
                  "function setMaxMarketValue(bytes32 _marketKey, uint256 _maxMarketValue)",
                  "function setMaxPD(bytes32 _marketKey, uint256 _maxPD)",
                  "function setMinDelayTimeDelta(bytes32 _marketKey, uint256 _minDelayTimeDelta)",
                  "function setMinInitialMargin(uint256 _minMargin)",
                  "function setMinKeeperFee(uint256 _sUSD)",
                  "function setNextPriceConfirmWindow(bytes32 _marketKey, uint256 _nextPriceConfirmWindow)",
                  "function setOffchainDelayedOrderMaxAge(bytes32 _marketKey, uint256 _offchainDelayedOrderMaxAge)",
                  "function setOffchainDelayedOrderMinAge(bytes32 _marketKey, uint256 _offchainDelayedOrderMinAge)",
                  "function setOffchainMarketKey(bytes32 _marketKey, bytes32 _offchainMarketKey)",
                  "function setOffchainPriceDivergence(bytes32 _marketKey, uint256 _offchainPriceDivergence)",
                  "function setParameters(bytes32 _marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD) _parameters)",
                  "function setSkewScale(bytes32 _marketKey, uint256 _skewScale)",
                  "function setTakerFee(bytes32 _marketKey, uint256 _takerFee)",
                  "function setTakerFeeDelayedOrder(bytes32 _marketKey, uint256 _takerFeeDelayedOrder)",
                  "function setTakerFeeOffchainDelayedOrder(bytes32 _marketKey, uint256 _takerFeeOffchainDelayedOrder)",
                  "function skewScale(bytes32 _marketKey) view returns (uint256)",
                  "function takerFee(bytes32 _marketKey) view returns (uint256)",
                  "function takerFeeDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                  "function takerFeeOffchainDelayedOrder(bytes32 _marketKey) view returns (uint256)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xf1c38f2d2225dc9cec58904405ae326dd79f6e4df816faefbb2a87d9203de8d3",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ExchangeRate": {
                "address": "0x2C15259D4886e2C0946f9aB7a5E389c86b3c3b04",
                "sourceName": "contracts/PerpsV2ExchangeRate.sol",
                "contractName": "PerpsV2ExchangeRate",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OffchainOracleUpdated(address offchainOracle)",
                  "event OffchainPriceFeedIdUpdated(bytes32 assetId, bytes32 priceFeedId)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function CONTRACT_NAME() view returns (bytes32)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function isResolverCached() view returns (bool)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function offchainOracle() view returns (address)",
                  "function offchainPriceFeedId(bytes32 assetId) view returns (bytes32)",
                  "function owner() view returns (address)",
                  "function rebuildCache()",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function resolveAndGetLatestPrice(bytes32 assetId) view returns (uint256 price, uint256 publishTime)",
                  "function resolveAndGetPrice(bytes32 assetId, uint256 maxAge) view returns (uint256 price, uint256 publishTime)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setOffchainOracle(address offchainOracle)",
                  "function setOffchainPriceFeedId(bytes32 assetId, bytes32 priceFeedId)",
                  "function updatePythPrice(address sender, bytes[] priceUpdateData) payable"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x4e20eb2e9e5681d54deb826cf24db047bed05af65c67a25ad36101e2256a407d",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyETHPERP": {
                "address": "0x2B3bb4c683BFc5239B029131EEf3B1d214478d93",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateETHPERP": {
                "address": "0x6aBC19F21D5Ce23abf392329Ef7B118c7b5F2AA8",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketETHPERP": {
                "address": "0x7c1560f20907Ed41aC740873FACF9E3Dce4f18DD",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x3078de6b4f306d2d01831bc8da2990ce4c9c9221f47b56e78fc9e4eb0126576f",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsETHPERP": {
                "address": "0x989D359dBF9C531aE6C305c37AC37220b8Dd99Eb",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBTCPERP": {
                "address": "0x59b007E9ea8F89b069c43F8f45834d30853e3699",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBTCPERP": {
                "address": "0x68287419FcFA1c186515E99a35FF3c970B3B3C66",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBTCPERP": {
                "address": "0x352B138d7F6500fC71A014F3C7eD48B6d99fbe4d",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBTCPERP": {
                "address": "0xE662e0aF5fCaBe78aaaF4cFF0a13ca69512Fc481",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyLINKPERP": {
                "address": "0x31A1659Ca00F617E86Dc765B6494Afe70a5A9c1A",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateLINKPERP": {
                "address": "0xEed3618dd59163CC6849758F07fA9369823aa710",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLINKPERP": {
                "address": "0x885B3fF84a0Fe82eb97A23093421504e42cc8f74",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsLINKPERP": {
                "address": "0x2903C913BBbac9fBb6c4A080210cEd9EeC1f66a6",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySOLPERP": {
                "address": "0x0EA09D97b4084d859328ec4bF8eBCF9ecCA26F1D",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSOLPERP": {
                "address": "0x435e6e499610B6De3510F0Cb047D3575C7bca6E1",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSOLPERP": {
                "address": "0x00FC152C7Dc2dF709161dcc8bA541eB77E612D4E",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSOLPERP": {
                "address": "0xFaf84737Dae0DA0c093BC172e32FB845016Df642",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAVAXPERP": {
                "address": "0xc203A12F298CE73E44F7d45A4f59a43DBfFe204D",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAVAXPERP": {
                "address": "0xC02AF29944301c8FbA606a7dF8ef446dc103238C",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAVAXPERP": {
                "address": "0xE4bC6Fce51de6198Ac13eDB55E60B5ca67A4d7C9",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAVAXPERP": {
                "address": "0xBb1250d0D96a22CF62ee12AEcC2FA684F3Ca04E8",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAAVEPERP": {
                "address": "0x5374761526175B59f1E583246E20639909E189cE",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAAVEPERP": {
                "address": "0x3773dfbbc894bfa9DF22855FCec1D1572eFC5e0a",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAAVEPERP": {
                "address": "0x42AAa33a13bDac31D8B9e04D9d5Db7F9FC8C0119",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAAVEPERP": {
                "address": "0x619676Df5C402D0eb008104e9a658C1F65DBF702",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyUNIPERP": {
                "address": "0x4308427C463CAEAaB50FFf98a9deC569C31E4E87",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateUNIPERP": {
                "address": "0x0db1B224C5203fA22CFdFA3F92519D150ad86612",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketUNIPERP": {
                "address": "0xd5ea02e6324693BaCbDE3E63a3C72E5a227a4dDb",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsUNIPERP": {
                "address": "0x90efaafEc5B183D09bc5b2cE81E8A12e4c2A6002",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyMATICPERP": {
                "address": "0x074B8F19fc91d6B2eb51143E1f186Ca0DDB88042",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateMATICPERP": {
                "address": "0x82f962aF60e6627d3ea5Db5Fd7e1a57f7E1Ef2B8",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketMATICPERP": {
                "address": "0x496B1C5EEf77E6Ea7Ff98bB22b5ec01Dd4CFdeDA",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsMATICPERP": {
                "address": "0x2F94942764C997e777F7Ded68679a5eCC6B7514c",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAPEPERP": {
                "address": "0x5B6BeB79E959Aac2659bEE60fE0D0885468BF886",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAPEPERP": {
                "address": "0x089af032687993426A628184cb3D0610d2cda6F2",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAPEPERP": {
                "address": "0x74Eb1E2EfaDDde923f92F31c209a788475A20A1C",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAPEPERP": {
                "address": "0x2891452e2068Ac9471E3610e956510C46B4EffE5",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyDYDXPERP": {
                "address": "0x139F94E4f0e1101c1464a321CBA815c34d58B5D9",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateDYDXPERP": {
                "address": "0xac3F9a2753f185731324907E6802395d59Bb62a2",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketDYDXPERP": {
                "address": "0x65Df3Ec0d5fd06a2f29C68e7894804b496945ef2",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsDYDXPERP": {
                "address": "0x2e26D4beC1464409c154f653A238cE5BAAA00198",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBNBPERP": {
                "address": "0x0940B0A96C5e1ba33AEE331a9f950Bb2a6F2Fb25",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBNBPERP": {
                "address": "0x3DfBB7D0770e6Eb77fBEc89C0840E9A0f29C76Ff",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x1e385563c25c2f2e6ef1f6891f811c70bb63a7a17753f5bfdd0ddee45c8ef62f",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBNBPERP": {
                "address": "0xf4Aa6bF149873Cb965061f845407091eF9f50722",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBNBPERP": {
                "address": "0xA227c833786E46d53cf9E9a14cFF906477335D91",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xc0cbd887f01108c7042440ad19cccafb7128520e2e57426e8bf901eddfba4da8",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyOPPERP": {
                "address": "0x442b69937a0daf9D46439a71567fABE6Cb69FBaf",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateOPPERP": {
                "address": "0xBdD0D09f73AC6f8Ef59A71baab283C12dcab06fA",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketOPPERP": {
                "address": "0x102AFf35C746B44a639A1cE344A1461306835e86",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsOPPERP": {
                "address": "0x2fffEBeD35931abD9014A39AE41fa26D511E31F4",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyDOGEPERP": {
                "address": "0x98cCbC721cc05E28a125943D69039B39BE6A21e9",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateDOGEPERP": {
                "address": "0x0A0A22189c8732cA089D6fB6709e65140a446a41",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketDOGEPERP": {
                "address": "0xdcf2D2C4949D6358bF05cfd88dAE83276cf7552b",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsDOGEPERP": {
                "address": "0x9c79C19FF4d1a6531D9a4F91e96534F5D002dF8B",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXAUPERP": {
                "address": "0x549dbDFfbd47bD5639f9348eBE82E63e2f9F777A",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXAUPERP": {
                "address": "0xc564040630d6929070D85DF237FDf60F6bfE4b5F",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXAUPERP": {
                "address": "0xd6A06A8c73265e471639bd953D24832bBcd548fd",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXAUPERP": {
                "address": "0x9A3Ecffd8Cb317685EF0Df7B4aF5C4c9d1aF53eC",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXAGPERP": {
                "address": "0xdcB8438c979fA030581314e5A5Df42bbFEd744a0",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXAGPERP": {
                "address": "0x28E1CE29aCdFe1E74e6fA18591E1D5481D2085a1",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXAGPERP": {
                "address": "0xe0D10647D92749Da9bd5c250dF2EEF2e4110a8c3",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXAGPERP": {
                "address": "0x9BdC86302479112e61f3BA7761dC704f7044D304",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyEURPERP": {
                "address": "0x87AE62c5720DAB812BDacba66cc24839440048d1",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateEURPERP": {
                "address": "0x4eD08210706F5b74584cC7F03b38d800DC27936B",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketEURPERP": {
                "address": "0xcE8Bcb110101D6cDe21d6c76bD799261385AA950",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsEURPERP": {
                "address": "0x5Ade35CEdDEd082BDB27A94e2A20aC327a67172e",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyATOMPERP": {
                "address": "0xbB16C7B3244DFA1a6BF83Fcce3EE4560837763CD",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateATOMPERP": {
                "address": "0xe46Ef097d2CF6FF95Ad172d5da0E65A0dE9e2468",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketATOMPERP": {
                "address": "0x9597494F1675F1D62Edb03dee40D84828EF5B295",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsATOMPERP": {
                "address": "0xA92C0142c3239e8e07cbb9f33e4C0dD4Fc19089b",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAXSPERP": {
                "address": "0x3a52b21816168dfe35bE99b7C5fc209f17a0aDb1",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAXSPERP": {
                "address": "0xcfdC039BDB8E4b578857b759f27D6BAa2617EDD3",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAXSPERP": {
                "address": "0x4eB7Ce307DE597F854124D018ec9edE0A8D57931",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAXSPERP": {
                "address": "0xcaDD53c5fAAe5111c7a0429Ee1f99A695433Fb17",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFLOWPERP": {
                "address": "0x27665271210aCff4Fab08AD9Bb657E91866471F0",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFLOWPERP": {
                "address": "0xECc8A6Af92d825ACC5B871993FC83d86CCEd5a19",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFLOWPERP": {
                "address": "0x661c2479BffE01eB99EeC9169149BaA5DAbeB883",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFLOWPERP": {
                "address": "0x73d8fD1dC5E38cEF6754Fc5009015CaaEE218461",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFTMPERP": {
                "address": "0xC18f85A6DD3Bcd0516a1CA08d3B1f0A4E191A2C4",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFTMPERP": {
                "address": "0x1951c6b2D9DD9A3CF10aaC5e79A7EcA0a5300BB5",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFTMPERP": {
                "address": "0x1454ba0f1c5Fcb401cfe72E028114FEE022990EE",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFTMPERP": {
                "address": "0xab0d9E3FF817faa88F4bBC783CFA6D55E5f10F3E",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyNEARPERP": {
                "address": "0xC8fCd6fB4D15dD7C455373297dEF375a08942eCe",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateNEARPERP": {
                "address": "0x779f424d3B3A617beB4a0DB1C21D5505De297a8A",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketNEARPERP": {
                "address": "0x4df6E29C07c51e5e7F7a98aB90547861Aba42B56",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsNEARPERP": {
                "address": "0xC314CFB9C5706f316F3916543aD2F3e4c3aa2d02",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAUDPERP": {
                "address": "0x9De146b5663b82F44E5052dEDe2aA3Fd4CBcDC99",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAUDPERP": {
                "address": "0x6d62aA1535C7C33D7f6592562f091D193E180c57",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAUDPERP": {
                "address": "0xAF89069dC03d65C1b3091D770a8D3b4D02126849",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAUDPERP": {
                "address": "0x7D0256E0936103b32AAD59E80257B59E988E75e2",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyGBPPERP": {
                "address": "0x1dAd8808D8aC58a0df912aDC4b215ca3B93D6C49",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateGBPPERP": {
                "address": "0x733a69D080B10Bc897452eF783020cdFe012974A",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketGBPPERP": {
                "address": "0x7690Af487c06674785daEF91EF6576464B46D249",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsGBPPERP": {
                "address": "0x3f30190416EBdE7F50749cf3579Af1beeF2E7Fa8",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "DebtMigratorOnOptimism": {
                "address": "0xA6bc30d854c2647574921c4AF442008DB7d32ad5",
                "sourceName": "contracts/DebtMigratorOnOptimism.sol",
                "contractName": "DebtMigratorOnOptimism",
                "abi": [
                  "constructor(address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event MigrationFinalized(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 finalizeDebtMigration(address account, uint256 debtSharesMigrated, uint256 escrowMigrated, uint256 liquidSnxMigrated, bytes debtPayload)",
                  "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://explorer.optimism.io/tx/0xe4cfe3ad66ba30f949a2ad09486b5c707b8fea11f7c9e955de8d948a2e404c96",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyARBPERP": {
                "address": "0x509072A5aE4a87AC89Fc8D64D94aDCb44Bd4b88e",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateARBPERP": {
                "address": "0x6393113A43A4A88b9F3D53b4b21e7feEb5d3D821",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketARBPERP": {
                "address": "0x5b37D50F3b7F03884d7cD005CDc7120F5060808c",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsARBPERP": {
                "address": "0x23b2558318E4955DfC3402567E22B1FF102DB3DD",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBNBPERP": {
                "address": "0xE7C25f3E803C7eb5a08d0332D0c28417241d5462",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x408cc78fbbc59617799307c0fd32aece777efe9f31c6792c50aeca0794dc457e",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBNBPERP": {
                "address": "0x2ae5608AB3fb3863a713715f3F59216bCAbc5150",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xc14f7c454c9182af6139df41589b3fbbd15be98f0920850becb5ff229058bff2",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBNBPERP": {
                "address": "0x210BA565130f2aF399fD8435a279b22894e8D096",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x9f0c9cfe9d602339d845f2cb4e4b6be96065e545a39f00782106a6505b003ee5",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAXSPERP": {
                "address": "0x73d3c278BE973624AEA70ef89C61113E55317AB6",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAXSPERP": {
                "address": "0x6FBcabaa42cE1818f23a0b909dbD9BC7691FC1E6",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAXSPERP": {
                "address": "0x2b8cE8a8ABF039DB01B2ad7F512b9157467eb264",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAAVEPERP": {
                "address": "0xFCce7f97100C0Bdd63c3d53ce0Ac35bE1F900a5e",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAAVEPERP": {
                "address": "0xc4786C4484C06bD463f124EBeF2175f67759EA1A",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAAVEPERP": {
                "address": "0xf73fA296DF4C46b7182B14AC7862f6E08Da84150",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFLOWPERP": {
                "address": "0xdACBFD99Bb915739B58ac9312c78A23ACbACB6Db",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFLOWPERP": {
                "address": "0x81b5c28e3905233bc4B96B182160593779d2CB83",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFLOWPERP": {
                "address": "0x19BA5013824a45Ee0F9E4738c8618d40bA11234a",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateNEARPERP": {
                "address": "0x767F446FbD3F2e5c91292D9FA51a44102a89117d",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentNEARPERP": {
                "address": "0x699c039c9E21d49B8c38768619942dfaB6E8E38d",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionNEARPERP": {
                "address": "0x3403A3430e4a62577e70fB48e070268D84a8F910",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAUDPERP": {
                "address": "0xd1b73C8251acf068ea03A42177bD1E3F610F9fB4",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAUDPERP": {
                "address": "0x010a2f40B3b09FdBc60cb06f1b7F1a2A757d0eF2",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAUDPERP": {
                "address": "0x0D8121E17b74e537286304c7804a5bC592A7964f",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateDYDXPERP": {
                "address": "0x1f6B92EB7aA3dacA3DcCBaD74928827CF003f9A4",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentDYDXPERP": {
                "address": "0xdFaEBe6A2B2BDAc52aC2E172e0175988d7472c60",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionDYDXPERP": {
                "address": "0xE6aC817Cfdd83073aec079cD9EBb9c35479b7665",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateGBPPERP": {
                "address": "0x6cb4EEcE70eF0eB8E7f81f4A0dE0FB1521E77F74",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentGBPPERP": {
                "address": "0xc8590aEb1484e642f7321bd0586B6DB3165a862C",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionGBPPERP": {
                "address": "0xD3d59d4b8B504Ea6e49c5788Fe1BC7505c6f61EA",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAPEPERP": {
                "address": "0x0b1E9543c3Cda15d431DCdc94724F3FF3caDAc1F",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAPEPERP": {
                "address": "0x3Cf1BE829C5eE73630482D2E92bF9461Adf1b213",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAPEPERP": {
                "address": "0xdDeB6cb0D6050C9221D037Aa099a2D11C443548a",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFTMPERP": {
                "address": "0x6680180094DF2421A9c5140b207f95759C9080Dc",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFTMPERP": {
                "address": "0x88b7BD7A245F2fB597de88a6EDA0CAEe047f607a",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFTMPERP": {
                "address": "0x50197701bd09f8DBDd6716b1b9080574819a3776",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateUNIPERP": {
                "address": "0xB63bEF5ccC5e9316961CDCD54129743AE8455Bc4",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentUNIPERP": {
                "address": "0xB0b6b79Fbb09290b0663D6D767FFCEE7EA742428",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionUNIPERP": {
                "address": "0x418d195155058ABC4A26D59c8A6CE83A7d52288A",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateATOMPERP": {
                "address": "0xCc60342649c58A9D5a5293030CCBc230b1231127",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentATOMPERP": {
                "address": "0x2c5fc227AF9100F8d6FC963549De3e3BadA8c3A9",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionATOMPERP": {
                "address": "0x76FB9F147d40480b6e030c09CD53fDF912C6178f",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXAGPERP": {
                "address": "0x35B9D048d4CB99bB34d59fBF962E86B8Ee44760F",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXAGPERP": {
                "address": "0xF40E46c74CA3E72d8dC490493FA9499999C6256E",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXAGPERP": {
                "address": "0x546Ee4A4299dC3d3b64D6a889759E04aCef6B92D",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateEURPERP": {
                "address": "0x2A77E3382e205D586CA6E4C9F8D7dc6E6bB2054d",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentEURPERP": {
                "address": "0x4BA1bdbc15281775a8437EAcdbAF8fbfD3A6a224",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionEURPERP": {
                "address": "0xEAacaDa91015c11D43bD788F09B2d54decfdc2e8",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateMATICPERP": {
                "address": "0xe37858391bC66B1B8838a7459e59A802642284Fa",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentMATICPERP": {
                "address": "0x7F059E5FAA4972B098C7539A6721c596BDc942de",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionMATICPERP": {
                "address": "0x8e1B638EF5E796504BE87fB81943e613875EcabE",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateDOGEPERP": {
                "address": "0x277EFAFCCB3683Fd0DD5facCa8f37E3130D359Fb",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentDOGEPERP": {
                "address": "0x128d0Eb5E26Cf95128AA9aC395f88dcE705AedAc",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionDOGEPERP": {
                "address": "0x374f2D3353bd664a2B25508df4a3b58939999E1B",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateLINKPERP": {
                "address": "0x7D5bf858398DEa0186988A2BfDCF86aE22dd8612",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentLINKPERP": {
                "address": "0x560F562be696BaEfA0029c954cC69352bfb33e41",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionLINKPERP": {
                "address": "0xd3f1BDdC7F25eAfDB939d6B4f62Cb9d5b19d346F",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateOPPERP": {
                "address": "0xE9Dc2C1008b1322c21c1Fb45CD101f1b7A0C9f73",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentOPPERP": {
                "address": "0xF9F70F783BE3ee6ebde9504BA0AC0730151b0a22",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionOPPERP": {
                "address": "0xbF1E06FaCb51B8A9223F266F303a88d3Dfc46226",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSOLPERP": {
                "address": "0x80cbc948c5dba55dc829472373e9F20203E13EB2",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSOLPERP": {
                "address": "0xA5BAff7D9928AE32C5e1ff441e4575951CB01111",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSOLPERP": {
                "address": "0x9A90C6FA8828baCD5B9eDD513F77bA7e4528C7E8",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXAUPERP": {
                "address": "0x2493291196F02794465b89Ef50F80C60fa8d0E89",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXAUPERP": {
                "address": "0x76c6C768ac45F0a3d266FF3e73257937Fc962FE6",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXAUPERP": {
                "address": "0x1a83bBccFaB68A8bF901c298c5dB5ACb8a2C7b05",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAVAXPERP": {
                "address": "0xB1ad6dD82d086F31d2143080b0064aBc44cf2b5B",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAVAXPERP": {
                "address": "0x9D6Db4d562D670a987b5D9e07Db71bab33Eb1428",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAVAXPERP": {
                "address": "0xC56a0198c08c3610980340660C39f6D6C7Ea765a",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateARBPERP": {
                "address": "0xeF7F0BC2D93caEaA824EE56592e3C2E9d5Bf0C34",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentARBPERP": {
                "address": "0x99ae21FeB485A89252B9bFB394E6Eb8c736436Bd",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionARBPERP": {
                "address": "0x31Ec26dE77aA4c859b7a15A37D2Fc9EB61289C14",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateETHPERP": {
                "address": "0xb474425297945dA2F38423cDAb98f63860412F14",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentETHPERP": {
                "address": "0x3ADA6D040314676B1e8A4BC1a0a16060b42A00eF",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionETHPERP": {
                "address": "0x2227af48ec971E3C786f3E06064CbA455724d6ba",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBTCPERP": {
                "address": "0x0679e0fa9ecD77e2Bd900555CbE10a5Dd519A5fd",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBTCPERP": {
                "address": "0x527b99E3d31F71D2414CC2dbAbE0d527f9160926",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBTCPERP": {
                "address": "0x33C8daF48c691C54897070C3621fdecC249C7202",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyLDOPERP": {
                "address": "0xaa94C874b91ef16C8B56A1c5B2F34E39366bD484",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateLDOPERP": {
                "address": "0x1d46c117E7e9A5dd242724a1952911ECe78e0831",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLDOPERP": {
                "address": "0xdCB4ec61fee47955462FD1F3fa89A6F32cc6A800",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateLDOPERP": {
                "address": "0x7784B850922d995965846d8a89b0C90bEf470F15",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentLDOPERP": {
                "address": "0x6BAD3Be3A7B3853739729833425a8b22737D0dAC",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionLDOPERP": {
                "address": "0x8D08A8A066E9606F854a3C68FcC730e406319996",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsLDOPERP": {
                "address": "0xEbf81425e81e2A879C139DB3B3891B0A635dCF7F",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyLTCPERP": {
                "address": "0xB25529266D9677E9171BEaf333a0deA506c5F99A",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateLTCPERP": {
                "address": "0xf5826f24805c162c696b79ba31ebC6FB8003d475",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLTCPERP": {
                "address": "0x61a7AE08B9061F96934a2093cbe59F839355FFF5",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateLTCPERP": {
                "address": "0x556F920a83FaBa9BE8019a33CbA4898fDB38d130",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentLTCPERP": {
                "address": "0x7733b88Bf971b9c77cC3C1B64a2Ef4fC06b08017",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionLTCPERP": {
                "address": "0x869d17fd46F76f0e439bec2992f2D45B40253f88",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsLTCPERP": {
                "address": "0x184D5A9f37D0ca2151102958D174E21Db6605069",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyADAPERP": {
                "address": "0xF9DD29D2Fd9B38Cd90E390C797F1B7E0523f43A9",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateADAPERP": {
                "address": "0xAe3D1b55CBFFc11693257FB5Dc41DE32F1E9EC7A",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketADAPERP": {
                "address": "0x6A071D06b9e317A5Bc0780dD5E7eE8C41c5C3cB8",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateADAPERP": {
                "address": "0x4a74Fc79618B018B0Db1dfeea225B38666D32871",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentADAPERP": {
                "address": "0x59798C3ec713213C274Bd8827642DAF2A798181e",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionADAPERP": {
                "address": "0x18970122d688B97023Edc44DA27A51230dC6799c",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsADAPERP": {
                "address": "0x703f070BC98f835EDc5DE183A537d837a7c65C9F",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFILPERP": {
                "address": "0x2C5E2148bF3409659967FE3684fd999A76171235",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFILPERP": {
                "address": "0x71FD2f49f289d75D0C1E108c97Fcb2a4c54Ab424",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFILPERP": {
                "address": "0x2dc99068ad1D5b437B63c2aFA5c3D30a23084764",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFILPERP": {
                "address": "0xCEEC52eae64958A7F469d2Cf919102bD198092dc",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFILPERP": {
                "address": "0x6F910A87565c581e101FBba25fE5B2570181794C",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFILPERP": {
                "address": "0x530F4A84e99eF78A5C2A4E64Cd5d126b40c99242",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFILPERP": {
                "address": "0x836804b2C489704068185D190C1763b9a5adDa93",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyGMXPERP": {
                "address": "0x33d4613639603c845e61A02cd3D2A78BE7d513dc",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateGMXPERP": {
                "address": "0x9f564ffB60945DEc03fB8DdEF491465Dd9b4C9Fb",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketGMXPERP": {
                "address": "0x222eb6ce2461798382D044ABE53edcf8752B47f7",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateGMXPERP": {
                "address": "0xfAFe2eC4999AeFD162aA3c0abA16D08235662606",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentGMXPERP": {
                "address": "0x9053e51047BA7f0141f3d1F23AC7Ec6861bf9Fba",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionGMXPERP": {
                "address": "0x3382A15bd1956e908a1EF2D027F92b2Bfc84558c",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsGMXPERP": {
                "address": "0x9a05f2F00Ca385ba7d4368737ec1485384Ca8874",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyAPTPERP": {
                "address": "0x9615B6BfFf240c44D3E33d0cd9A11f563a2e8D8B",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateAPTPERP": {
                "address": "0x91a4F7125A6F7ec14c41d39F0AC681e8e387DA1C",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketAPTPERP": {
                "address": "0x9B1c2055465e1F1AaEa14d68fC688175cf46cdfe",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateAPTPERP": {
                "address": "0xF6Af0F6E69A24Bc753382a9C53d568D83515f167",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentAPTPERP": {
                "address": "0xD681CF2419bb3F85732412164b6542843E9A64A5",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionAPTPERP": {
                "address": "0xfD9E252Cd1Fa456AaD9fC592608e86FaBcF40F77",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsAPTPERP": {
                "address": "0xE44179Cb9623C3bB7a9BCF54b4B1DD5ad8c672e3",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySHIBPERP": {
                "address": "0x69F5F465a46f324Fb7bf3fD7c0D5c00f7165C7Ea",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSHIBPERP": {
                "address": "0xc2c71156d9DDe42F412e83a3E169283Cd70F3E9D",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSHIBPERP": {
                "address": "0xA198D00DC35f8367BEB48f27DE9032C8209dC22C",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSHIBPERP": {
                "address": "0x640cca1164154b7F5e7b5c2eeF6D757246Cd3e2B",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSHIBPERP": {
                "address": "0xf037641c69c1156530c182B970045EBA6289553b",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSHIBPERP": {
                "address": "0x62137897f2b09c588327D80CBbFB9C6018c352Ef",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSHIBPERP": {
                "address": "0xe4D25C54759ecd13c10e6c64aB9127c6408F9CfF",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBCHPERP": {
                "address": "0x96690aAe7CB7c4A9b5Be5695E94d72827DeCC33f",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBCHPERP": {
                "address": "0xa664fCA1879C9cA2E6CFeD49C3C855352016E4C5",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBCHPERP": {
                "address": "0xcB9208c6091dF778BF405f3938B6A6beF427e37E",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBCHPERP": {
                "address": "0xe0c39E7b896E7fd1F9fd221079502BDa23e81115",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBCHPERP": {
                "address": "0x9F77aF45F13738Be8D3bb772A86310f4e452aFd4",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBCHPERP": {
                "address": "0xA14849ad93999d8B184A1d61FbA7B4fFbD24f96C",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBCHPERP": {
                "address": "0x0bB16a341EdA6b5e0768b55eb091Cd914bE96bc1",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyCRVPERP": {
                "address": "0xD5fBf7136B86021eF9d0BE5d798f948DcE9C0deA",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateCRVPERP": {
                "address": "0x5A155c378d66d8EBa2262e744738a76d913E5945",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketCRVPERP": {
                "address": "0xcA3AF1757f1ce97956c289ccc6B171A14acD85Ca",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateCRVPERP": {
                "address": "0xB2E26D988A5557b571bF9833a8a60d25799293E1",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentCRVPERP": {
                "address": "0x9E3c1F1f5868701A4D8CaA58D61dF2F74aeFe926",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionCRVPERP": {
                "address": "0x53bD23EEd35C00EF09D4Ebd8F71005b0DCC97E1a",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsCRVPERP": {
                "address": "0x94cF2BB95BdC525f90311dDb2eDCd1C481e81A9D",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyPEPEPERP": {
                "address": "0x3D3f34416f60f77A0a6cC8e32abe45D32A7497cb",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStatePEPEPERP": {
                "address": "0x2365D3e91E585c974c28a5B82d6AA266F68a44Ad",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketPEPEPERP": {
                "address": "0x5Be1C70475422255684E4f312E57Fe782a5102F4",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidatePEPEPERP": {
                "address": "0x4dFB42753f735fBbbb2b1312F72eB05D905365AD",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentPEPEPERP": {
                "address": "0x41aE759b8e75f4EE544cD08B4369e5F4719561FE",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionPEPEPERP": {
                "address": "0xe9e46a7323d54af1550B931c8bD6F8615f079379",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsPEPEPERP": {
                "address": "0x17ccEfad2AE2784Af7012af04c76bdafAa4E7b37",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySUIPERP": {
                "address": "0x09F9d7aaa6Bef9598c3b676c0E19C9786Aa566a8",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSUIPERP": {
                "address": "0x2cCaf0500142F8E563fF361C3b34AbEe16B6205d",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSUIPERP": {
                "address": "0xB7c04aa1E49BBEF0A5D7A0E7885b54c9E9309704",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSUIPERP": {
                "address": "0xcfe154521ab1fc995a6bc68880Af9888221FD27C",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSUIPERP": {
                "address": "0x700EDD66fB75516427C793f5Fe376f6fe1aCc932",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSUIPERP": {
                "address": "0xA2C0843c8cb9f29Fa40fc0ffd2B4995A0f05C15c",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSUIPERP": {
                "address": "0x748f78A5dC4a4325BcdF251DeE85E481a2dC6929",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBLURPERP": {
                "address": "0xa1Ace9ce6862e865937939005b1a6c5aC938A11F",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBLURPERP": {
                "address": "0x6aCC3519d10E46E5a228615c9d4B57CC0113A212",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBLURPERP": {
                "address": "0x4Fc5beD961d41ba5F198DE7484637800Dac78eb1",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBLURPERP": {
                "address": "0x325a0fA8e3A0A40Fa82bc6D222B1af765Ab77B36",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBLURPERP": {
                "address": "0xFf82e4012816CC01093565C6d2EE2Af83f3cb3Ae",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBLURPERP": {
                "address": "0x2214cD24c13D7B36432C66e73984Bc44D479CD51",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBLURPERP": {
                "address": "0xeD20040b21FDf6d68336F6E61AD05F235e3eA9f3",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXRPPERP": {
                "address": "0x6110DF298B411a46d6edce72f5CAca9Ad826C1De",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXRPPERP": {
                "address": "0x0Ea666319f4f0eAa7f16711f2fe7F4B159957f48",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXRPPERP": {
                "address": "0x995f710838a070D43D94d4420194Bb09cFC332E6",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXRPPERP": {
                "address": "0x95366aC32995d4C31f72C2D0029211E19bF6eB7d",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXRPPERP": {
                "address": "0x7F4B56A8Fe268666d95e64F16A96bBDCfB89DF54",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXRPPERP": {
                "address": "0x28bDE5C67624B2eF7Fa27C9C9B0678fE3009913e",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXRPPERP": {
                "address": "0x047B3714f3B3adFC1aa1F31c710ca3cA967Aeaa3",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyDOTPERP": {
                "address": "0x8B9B5f94aac2316f048025B3cBe442386E85984b",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateDOTPERP": {
                "address": "0xCF33a35F0f2095ABdD0C81dbde3A1cD37bE0c5cC",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketDOTPERP": {
                "address": "0x9Cd7ccac32231ccb842f14368B3DA3B33f20d3BE",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateDOTPERP": {
                "address": "0x4C2A2390c2908E0e489F8a487CE332f7CD6c1357",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentDOTPERP": {
                "address": "0x4d178B91a3B16a124d2A90d944dB8C70A334FBdA",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionDOTPERP": {
                "address": "0x5C4fD006f3dC9C6a2259B2fb82CfD500056978ec",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsDOTPERP": {
                "address": "0x29533e33226E5383A36eb4BF515Ff067379eD841",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyTRXPERP": {
                "address": "0x031A448F59111000b96F016c37e9c71e57845096",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateTRXPERP": {
                "address": "0x52cCa59bFa0228F41Ab69558F5f2EE3739323c02",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketTRXPERP": {
                "address": "0x093583D2135aF25ab49a4E148698ee0125bCF2F8",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateTRXPERP": {
                "address": "0x5076C4fa56fb78b28eF4a542c7ef2B0F95186e58",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentTRXPERP": {
                "address": "0xc254F4A4Bc16218eD30A3D674d8fae3f25B6Af5d",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionTRXPERP": {
                "address": "0xC20e63aB2F1303079a6cC31013534e3989CFC8dc",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsTRXPERP": {
                "address": "0xD1c8E9B404053560bc6A0302c4395FfB0FfD1C79",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFLOKIPERP": {
                "address": "0x5ed8D0946b59d015f5A60039922b870537d43689",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFLOKIPERP": {
                "address": "0x94a1D572baE06A31C029D4C26e1fA705f54286ef",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFLOKIPERP": {
                "address": "0x47F99a380cc020b5DB4B000aF445a232081ceEe7",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFLOKIPERP": {
                "address": "0xfc328bb84082AAe68cC47d7f032b177b8da348bc",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFLOKIPERP": {
                "address": "0x3FCC706dd9ab9Ac3DAF6f205AbE26712ddcBbd3E",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFLOKIPERP": {
                "address": "0xF52Df12Dd62731a11180403212EE67cb5F4d6345",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFLOKIPERP": {
                "address": "0xab5745E6cD602742636491409E18a73E223C8aff",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyINJPERP": {
                "address": "0x852210F0616aC226A486ad3387DBF990e690116A",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateINJPERP": {
                "address": "0x4C35c27fF8F0dD039B4C4F0D670f2D58f6215c9C",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketINJPERP": {
                "address": "0x84e12CCEa1311DA4090002279C2f46EC828199f3",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateINJPERP": {
                "address": "0xc2aA78B6d0D2A72557EdD79845b43BEE4eA4DD10",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentINJPERP": {
                "address": "0x0cDFdbF84Ac56D54657d3895602BB2982fD1EFE4",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionINJPERP": {
                "address": "0x53bAd7c8cE47Fa070e5BB25adea796409E0e8058",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsINJPERP": {
                "address": "0x3713BC72567A6C797AC69678f72a5A0d80c56dC9",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySTETHPERP": {
                "address": "0xD91Db82733987513286B81e7115091d96730b62A",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSTETHPERP": {
                "address": "0x777A913412D576532120ac1d266d4C908e584DB2",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSTETHPERP": {
                "address": "0x69125856Cfbadba925CE8345D0A5dE98F375920E",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSTETHPERP": {
                "address": "0xFD306A2B2e78E35F573f8593aeeD50d07ceAB6BD",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSTETHPERP": {
                "address": "0x9B0071d4Ee4a078dbdD5100799D8eA700A6dA709",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSTETHPERP": {
                "address": "0x02e85b8dD638a5FabD9D67802A92721D2e18fc6d",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSTETHPERP": {
                "address": "0x0060b9F4eaA97b310Bf74947EdCdFE2967e54D7d",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyETHBTCPERP": {
                "address": "0xD5FcCd43205CEF11FbaF9b38dF15ADbe1B186869",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateETHBTCPERP": {
                "address": "0xd10cd91683301c8C15eDA40F59e73d1b0BcfECDD",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketETHBTCPERP": {
                "address": "0x3091AcaEAF27985F33a8a4b0EefEa49dc60c8506",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateETHBTCPERP": {
                "address": "0x0DAeA0367d7b82644C4db4D992cF4ba39c8A359C",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentETHBTCPERP": {
                "address": "0x978D4b5438D3E4EDf4f03682e5A53b48E56604c5",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionETHBTCPERP": {
                "address": "0xb16a8B06318C78c274f3BBc5CC5C9191B0d0c1A3",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsETHBTCPERP": {
                "address": "0xe082Bd0Ac75c78196F312150A298ade27aebecB0",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyETCPERP": {
                "address": "0x4bF3C1Af0FaA689e3A808e6Ad7a8d89d07BB9EC7",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateETCPERP": {
                "address": "0x04412b2aE241C602Be87Bc1114238d50d08398Fb",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketETCPERP": {
                "address": "0x79AE4AAC073c6f153644647Af14F202ca8cc39C5",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateETCPERP": {
                "address": "0x86770a2940efF6a778768592B42A6668FfB162a4",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentETCPERP": {
                "address": "0xAD35498D97f3b1a0B99de42da7Ad81c91156BA77",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionETCPERP": {
                "address": "0x98d601E04527a0acBB603BaD845D9b7B8840de1c",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsETCPERP": {
                "address": "0x4e8f55f1948D3E61A1FD3Cd38Ce05EFC77bffEb5",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyCOMPPERP": {
                "address": "0xb7059Ed9950f2D9fDc0155fC0D79e63d4441e806",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateCOMPPERP": {
                "address": "0xF8dBEf33111A37879f35EE15507769CA927cf9C0",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketCOMPPERP": {
                "address": "0xA154EcFFfb46380991751DE890956b245142e10C",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateCOMPPERP": {
                "address": "0x6e7209c0dB7110fc5606BAAC492Ce4dEA2EFEd8e",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentCOMPPERP": {
                "address": "0x6172289961007908442a0437891DcD966F368563",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionCOMPPERP": {
                "address": "0x9f3be6Be18E8D0613f87c86A0b1875B74f404A11",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsCOMPPERP": {
                "address": "0xbaAcf0F9dEA6b17D8667a34b7f69f60591c8D68D",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXMRPERP": {
                "address": "0x2ea06E73083f1b3314Fa090eaE4a5F70eb058F2e",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXMRPERP": {
                "address": "0x3d869950817920Eda9fC9A633ab7F06B97444dd7",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXMRPERP": {
                "address": "0x51a8e343841eEd0439De080cDc5d96c4A8568860",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXMRPERP": {
                "address": "0x5d79EeB57A35EC8b6b9Ef55052C5C9F919C3c3Ee",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXMRPERP": {
                "address": "0x239847700D9134cEEAEC306DAA40b569CEe1D5a0",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXMRPERP": {
                "address": "0x926b1148DaFe298ff7Fdc2d01Ae1bC3Fa3b4FAE4",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXMRPERP": {
                "address": "0x90241392dbA7FAa1d1d96C6927f0FBfe93FdF226",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyMKRPERP": {
                "address": "0xf7d9Bd13F877171f6C7f93F71bdf8e380335dc12",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateMKRPERP": {
                "address": "0xf963a0fc0BFc38FEfE08C6062f2AD9A11AfFDEeb",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketMKRPERP": {
                "address": "0x0B08D567D1893D9e0B48E61d1f9Ecd9D7C6B11EE",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateMKRPERP": {
                "address": "0x740444afa4F5a7CD569A7714D5252A35DC1fE299",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentMKRPERP": {
                "address": "0xDEbC936c5aDfd1331E5fa4AE76DB7197283342d0",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionMKRPERP": {
                "address": "0xE0d1A14EBC3bc4460fEeB67A45C8198063cCC7c7",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsMKRPERP": {
                "address": "0xb1204d3fFfeaEa354f2f04779BEdcd0d8f3598fa",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyYFIPERP": {
                "address": "0x6940e7C6125a177b052C662189bb27692E88E9Cb",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateYFIPERP": {
                "address": "0x2107A107D1043b2c442b8de40d6696C29bD2c5b8",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketYFIPERP": {
                "address": "0x555a66ae81b447f3e4533A8159e2462D17A7e7c3",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateYFIPERP": {
                "address": "0x579e622B355Ac69A3a772d29A98379044CBF7722",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentYFIPERP": {
                "address": "0xf7AF14838789093ccD01c67cF9Bc5f602501cEd0",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionYFIPERP": {
                "address": "0x7aF6Be46f83d25902cfa49c9e16BEc54893f25cB",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsYFIPERP": {
                "address": "0x2a1Fa1Fbf771c353eBFe63472EBbB16444A9b0ef",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyMAVPERP": {
                "address": "0x572F816F21F56D47e4c4fA577837bd3f58088676",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateMAVPERP": {
                "address": "0xB241aF12256998A0051b93e02027e73CA7E5388d",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketMAVPERP": {
                "address": "0xeef768Df33e01bcd395612601569f4Ac5daf2363",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateMAVPERP": {
                "address": "0x7E62C949f55305C0679b4E883198f93Ac4D8e2e9",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentMAVPERP": {
                "address": "0x6A5A1E32216377FC03bFFdC9B33fe29c2f14Ec84",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionMAVPERP": {
                "address": "0xFc6895ff4756985BCa9df2AABB5f31651C591Bef",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsMAVPERP": {
                "address": "0x04915C122ebA1cd7629a2a00D9aE2a4C145aB21b",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyRPLPERP": {
                "address": "0xfAD0835dAD2985b25ddab17eace356237589E5C7",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateRPLPERP": {
                "address": "0xf606E99D6F6a003623eA5764dA119BAEcB2e8C99",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketRPLPERP": {
                "address": "0x89fE4828Bf24caFbE96F804885506A7111065541",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateRPLPERP": {
                "address": "0x15df53AEcF14f4525BE5F7Ac8240968CBF5bcAAf",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentRPLPERP": {
                "address": "0xc9c64cF6D1CE4b41D087F08EdAa9De23262f1EdA",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionRPLPERP": {
                "address": "0xF0671cF8a1a0b3308e84852308F9624B9eC2e28f",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsRPLPERP": {
                "address": "0x882e4a84Cbd9b55052c85e1FF05289aa577659B9",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyWLDPERP": {
                "address": "0x77DA808032dCdd48077FA7c57afbF088713E09aD",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateWLDPERP": {
                "address": "0xd4b10C896D82B3158A9a9fcb8F6fBC5A8D833C04",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketWLDPERP": {
                "address": "0xF2bb38E5FE4e244EF3ab82F218383Ba4D358f895",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateWLDPERP": {
                "address": "0xD8aD261b4deA3Ce25642d909D2F3Cbf9D4632caf",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentWLDPERP": {
                "address": "0x81891EBC7cF265B87D8658EC2E703fB703392845",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionWLDPERP": {
                "address": "0x695Fdda0E1546cA369Df3CabE8ED33407Cf62341",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsWLDPERP": {
                "address": "0x33c3C4D49dEe4232498B3eFA5336C627801E998d",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyUSDTPERP": {
                "address": "0x1681212A0Edaf314496B489AB57cB3a5aD7a833f",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateUSDTPERP": {
                "address": "0xC2231D2cAdDBee015AeDddd3F0EE3874E3bd1d59",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketUSDTPERP": {
                "address": "0xB7d7605f814Da681cC299A9Ac9ABBfc1ea65E40A",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateUSDTPERP": {
                "address": "0xA552049A9f320B6a8622A003FE1108595061e223",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentUSDTPERP": {
                "address": "0xD53C50B644aa4E29fe2B633E97187e2Aa3cBd6fc",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionUSDTPERP": {
                "address": "0x244c689BFa19F046124e75339887f9918317b919",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsUSDTPERP": {
                "address": "0xCee08cC3BB744dEC69f6eECf5B7B62CCD9143E99",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBALPERP": {
                "address": "0x71f42cA320b3e9A8e4816e26De70c9b69eAf9d24",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBALPERP": {
                "address": "0x982bb9880295EcBc34a56772fEF81E964Aee4A9f",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBALPERP": {
                "address": "0x27B9C4af1BACd39Fb216A3a27c9F1E3cd8570b19",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBALPERP": {
                "address": "0x797c42Ff20162B806b813B78E5ceD6d69E06a09a",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBALPERP": {
                "address": "0xBc5B0A6dCaDD4Fc27665601401D6f03D97375B24",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBALPERP": {
                "address": "0x8d51BF0759e1a01c15F91940BaaaD08B6B45a637",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBALPERP": {
                "address": "0x3FFbC2f1029ccb193d011757E2bbd57538711D86",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFXSPERP": {
                "address": "0x2fD9a39ACF071Aa61f92F3D7A98332c68d6B6602",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFXSPERP": {
                "address": "0xd9AC5ECbB704f0bdb0a96bEBfA3B79bE829d2bC1",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFXSPERP": {
                "address": "0x29601BAfeE838F75679e0024E9b8E44D6f1b6f2c",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFXSPERP": {
                "address": "0xEbBeb518d4b4e488f45913A9Ef72Ea57Be676F1a",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFXSPERP": {
                "address": "0x4022AB250B5c32c286A3953bc740368D6b68b067",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFXSPERP": {
                "address": "0xcCe2c84C91e6c4de7e87704b3D5C4fba10626234",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFXSPERP": {
                "address": "0x6a15EE080c2FdE246b674918bff3B52d414525cb",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyKNCPERP": {
                "address": "0x152Da6a8F32F25B56A32ef5559d4A2A96D09148b",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateKNCPERP": {
                "address": "0x325AF017A497953734CB7B1F51580ff9aD1122B1",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketKNCPERP": {
                "address": "0xf9C0122A38c6B85FDAfF3065f3d0822D9802E03e",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateKNCPERP": {
                "address": "0x959A4309f7d82e3D34C353a405200D8277032115",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentKNCPERP": {
                "address": "0xE6bf793B3ED4b42f8c3FB883a60e49f976a1791e",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionKNCPERP": {
                "address": "0xE1264B2B97be89755FBCE7A280FD276C55F661D1",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsKNCPERP": {
                "address": "0xCcff378F3aA9E4ABB36fdCb03371a59008C28708",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyRNDRPERP": {
                "address": "0x91cc4a83d026e5171525aFCAEd020123A653c2C9",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateRNDRPERP": {
                "address": "0x82DCd3e7224DDA8dF6A746d70F1Cce80df4384c2",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketRNDRPERP": {
                "address": "0x3942722D61d784347F38CaA493B1E073aB321B22",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateRNDRPERP": {
                "address": "0x70eE22558a577C9c3C7BE0A5F9Fb494c20e0545b",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentRNDRPERP": {
                "address": "0xC81e43B6FB257760cb655C5B3Ea0b87d93cf01B5",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionRNDRPERP": {
                "address": "0x097b1ec678F135fa31C7D4c0D92b34940dB06251",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsRNDRPERP": {
                "address": "0xaEB7205C613c1e1aD34E077EbE86fDB9Da16cEcf",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyONEPERP": {
                "address": "0x86BbB4E38Ffa64F263E84A0820138c5d938BA86E",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateONEPERP": {
                "address": "0xEdB8F5e51e5B11E73beA72600aa2De7a4A2eAFa4",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketONEPERP": {
                "address": "0x66F541d5F16f2451dE9DE5098d241774a33093f4",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateONEPERP": {
                "address": "0x9c3A582Cb712C8CDb067456b993F0234EDB185bD",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentONEPERP": {
                "address": "0x66f916cc0B0b26C1783974A60Cef9B0AfC382825",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionONEPERP": {
                "address": "0xBe0f35e3d0ffe514969333B4d07A279D3d66A494",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsONEPERP": {
                "address": "0xA4d53f6CBCF314f318f316ae61cDd400c974085d",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyPERPPERP": {
                "address": "0xaF2E4c337B038eaFA1dE23b44C163D0008e49EaD",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStatePERPPERP": {
                "address": "0x6941ad5Ac604d2329f96bEA75C7b25D19Cc06701",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketPERPPERP": {
                "address": "0x6d9bDe78D5562b6BE4B6A70f4f2511fb1A8f9E10",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidatePERPPERP": {
                "address": "0xc765DcA9D0e77B01b2Bb74fEBae2cF89E038092B",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentPERPPERP": {
                "address": "0x5E51817910c53A01e7Ee90B8640a66768075bf2E",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionPERPPERP": {
                "address": "0x692c746f443031559E9816b50c99165fd452982d",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsPERPPERP": {
                "address": "0x24D29234e34793476000FA068E858dE4380646E6",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyZILPERP": {
                "address": "0x01a43786C2279dC417e7901d45B917afa51ceb9a",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateZILPERP": {
                "address": "0x5aCd4ABF5DDfb7F27B5940D1Aef640d6b67a2Cba",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketZILPERP": {
                "address": "0x7EA760077b84f5e9A5D8a51Bf2A49B91D7cd5aa9",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateZILPERP": {
                "address": "0x0194e4BbD724633546D543A28125c579dfEc057c",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentZILPERP": {
                "address": "0x0e1A5c48f3Ae7c629155aFAbbBcd5442627c7EF6",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionZILPERP": {
                "address": "0x89698dc9ECD95337AD64FDa7dF773dA5007926A8",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsZILPERP": {
                "address": "0xd21F7CC02f3a9B6d059cdAd6e0C0f4db18420189",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyRUNEPERP": {
                "address": "0xEAf0191bCa9DD417202cEf2B18B7515ABff1E196",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateRUNEPERP": {
                "address": "0x2CC4707f6aeF86cDBA05F45Da98D365a66DFD5d7",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketRUNEPERP": {
                "address": "0x18f763fd61Efd3D9884981CC2CBd6845351e4b70",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateRUNEPERP": {
                "address": "0xa26677434188Db65e42dd5606EE297366361cc2D",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentRUNEPERP": {
                "address": "0xDaf440cDeA843762c6D4ECFA7C2f64AED832319e",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionRUNEPERP": {
                "address": "0xB4D55aE3a6B3B73633F622Ef89e94E4bAD05c08F",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsRUNEPERP": {
                "address": "0xa9BB96d03A6ED56C14cd47a2CE75Fa6a7633aeC2",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySUSHIPERP": {
                "address": "0xdcCDa0cFBEE25B33Ff4Ccca64467E89512511bf6",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSUSHIPERP": {
                "address": "0x854A3500F1443ba99F746CA605d8FC25F0d06f32",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSUSHIPERP": {
                "address": "0x070E7B0447e096704C54923826ac0Cb6C6472400",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSUSHIPERP": {
                "address": "0x21F660512a18dEad0664F189aF73D74373dDC45f",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSUSHIPERP": {
                "address": "0xd01a18C2eDB9f411A8329eF9B2905F3Cf7D35408",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSUSHIPERP": {
                "address": "0xdB87f699ae4045c290033240f22C0CBe80d95724",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSUSHIPERP": {
                "address": "0xc7a869dEEEE1aCaB2B30B6022C246194c83ed49C",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyZECPERP": {
                "address": "0xf8aB6B9008f2290965426d3076bC9d2EA835575e",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateZECPERP": {
                "address": "0xe94afDEd9CB9AB143E8cCc8C7439794E8C41F1A6",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketZECPERP": {
                "address": "0x8CC84E2c8BE0B7999B65A6b2bceF4dfF1f433Ce1",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateZECPERP": {
                "address": "0x8649Fdb91a47281Ea1eE67b83967b0D00F79a560",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentZECPERP": {
                "address": "0xD21257d00E06621b1946532a2410dB1aBa75C638",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionZECPERP": {
                "address": "0x3f9917995e1a55060B984dbeE9d7358D9eB7AC8c",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsZECPERP": {
                "address": "0x77fB9D52099d4207108C26AB22f9D8BBF691A37A",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXTZPERP": {
                "address": "0xC645A757DD81C69641e010aDD2Da894b4b7Bc921",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXTZPERP": {
                "address": "0xaf621161755C601C1469e3487ce971f39Ae507BC",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXTZPERP": {
                "address": "0x577B7dAdF6052d8DFA3C394143a4021b433A809c",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXTZPERP": {
                "address": "0xe96097De5D8d168FC46B52874dF0A474E4A293D6",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXTZPERP": {
                "address": "0xa7912822C220cda3596CAbFe9077769576E2b46E",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXTZPERP": {
                "address": "0x4Fb59e8dAfcd398b2ca7Fe2Af5a7405Cd0d22278",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXTZPERP": {
                "address": "0x95CaB224896972e69Ad626bC75D29116CE7d4521",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyUMAPERP": {
                "address": "0xb815Eb8D3a9dA3EdDD926225c0FBD3A566e8C749",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateUMAPERP": {
                "address": "0x595f37E1b21870571eE99fbe815D6790D817C0Ba",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketUMAPERP": {
                "address": "0xecAfBAc3221160337a3a8dcB25A955f50618feeB",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateUMAPERP": {
                "address": "0x14A3F810db4E4EC74906D2538DE00a4c995f229E",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentUMAPERP": {
                "address": "0xD60E490fBF42a43E67F1e8d74debd7bCB5240F80",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionUMAPERP": {
                "address": "0x581Fa71eB5b5D704d0c268EEd58e48f801338f7B",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsUMAPERP": {
                "address": "0x99B2b4F1C6222d97e70Cf7D0C7Cc314465Ca9dC0",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyENJPERP": {
                "address": "0x88C8316E5CCCCE2E27e5BFcDAC99f1251246196a",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateENJPERP": {
                "address": "0x8327AA139bd7eEE62730a2cB9B9A86821810d4DB",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketENJPERP": {
                "address": "0x9651De67fD8c3003a56b25dc24C73C317f00251d",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateENJPERP": {
                "address": "0x03c0544195A86028abdD8E69239A03b7ca0bC283",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentENJPERP": {
                "address": "0xf23DF6328A8EDCFb34B9905715a32181e72964c3",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionENJPERP": {
                "address": "0xE7b44E0411307B637A1B3B75AF8c37d752857Ae1",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsENJPERP": {
                "address": "0x04631B9297919E98334C5AbAa762C48af071b4ef",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyICPPERP": {
                "address": "0x105f7F2986A2414B4007958b836904100a53d1AD",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateICPPERP": {
                "address": "0x4bD5674a720c212FF515Dd51d4E5d304FF16B3d0",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketICPPERP": {
                "address": "0x7221d65B8e46a380102EBE986C01A9481e75Bd9E",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateICPPERP": {
                "address": "0x4F7d521a7CF8FA3b6EbF5d960907aE83E2888fC7",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentICPPERP": {
                "address": "0xcAd243fA79De8Acb3B0336Dd9793A16D8e6A3aA5",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionICPPERP": {
                "address": "0xE72f5C2B7C8E8697aFFe886497d22ad47D832085",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsICPPERP": {
                "address": "0xdd1122620688C25DF27DD405cf467cC9e5C0CC82",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyXLMPERP": {
                "address": "0xfbbBFA96Af2980aE4014d5D5A2eF14bD79B2a299",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateXLMPERP": {
                "address": "0xEaFa65b829b37277a14fE43de9fAda0d9e897E4d",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketXLMPERP": {
                "address": "0xff8Bf0f6f9494b44AeD91BB7868Ab94b76dCeAAD",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateXLMPERP": {
                "address": "0xECE9613025F970f1d56b2Ba749e1170976465088",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentXLMPERP": {
                "address": "0x9576B1104c0fa29F76B3559B77e0fD0A6b450213",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionXLMPERP": {
                "address": "0x2aEF3F9E57E2695C32bEaC56d79BFe4efb55bF63",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsXLMPERP": {
                "address": "0x0C35263A2c4ed7BB812D3B4f4A5Da1A623fB2b7B",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2Proxy1INCHPERP": {
                "address": "0xd5fAaa459e5B3c118fD85Fc0fD67f56310b1618D",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketState1INCHPERP": {
                "address": "0x26A035D9A2eD696EacC3816674C66A7eB73aAb70",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2Market1INCHPERP": {
                "address": "0x06bA4E6246A0C4BcBB53Ec860bE5372Fc40629ab",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidate1INCHPERP": {
                "address": "0x08e52251d4434eadF1f2Ce01D419B6249694d9e5",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntent1INCHPERP": {
                "address": "0x6d5403B5b195F0F26aaF5e2a7FD58aB1D0Fb2F3e",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecution1INCHPERP": {
                "address": "0xDC7a51F5c32909AcD5D03d11944c4480bee1Cd47",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViews1INCHPERP": {
                "address": "0x23D5291fEa095D8851cE3bB711a10b4982923d9a",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyEOSPERP": {
                "address": "0x50a40d947726ac1373DC438e7aaDEde9b237564d",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateEOSPERP": {
                "address": "0x1f53699b435326B6e264727b5504Cc28006Bed8B",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketEOSPERP": {
                "address": "0x4F9c7cE72255CC04ca2159793a59EFE3E6F40aA5",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateEOSPERP": {
                "address": "0xb997eDbe18f7e8a9904EC7E6A945f2940De5193D",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentEOSPERP": {
                "address": "0x02A26Df328E08c12ce3A5ed428b83Dc5e4c2ee67",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionEOSPERP": {
                "address": "0x15F71Cb39F39A3b30ef610a15Ce1CBE766CB069C",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsEOSPERP": {
                "address": "0x86508410Fd82c863920f194DA49a0835717c3673",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyCELOPERP": {
                "address": "0x2292865b2b6C837B7406E819200CE61c1c4F8d43",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateCELOPERP": {
                "address": "0xb8BC48ed3D08A3ac02D62174652369d3279705dE",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketCELOPERP": {
                "address": "0x4334DfcB85EaB5dA80b162F930B56F47Ebb156f1",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateCELOPERP": {
                "address": "0xf4EDc15CCf3bE5833dB3753AA91782a601F9aeda",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentCELOPERP": {
                "address": "0x32a357AdE8497EA57446b4BF5099FA9F0918592f",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionCELOPERP": {
                "address": "0x5dCA1c6c75f6410CB4020A4aB5657FEF716fCfc3",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsCELOPERP": {
                "address": "0x19bd719105008C82dA4b4FD8112c9D2A97C0930c",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyALGOPERP": {
                "address": "0x96f2842007021a4C5f06Bcc72961701D66Ff8465",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateALGOPERP": {
                "address": "0xd856b45d4D9671482e53E705058aF3fF09000A28",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketALGOPERP": {
                "address": "0x949404d0AC66430842145204fB83c1aB9C21F35B",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateALGOPERP": {
                "address": "0xc0929A879906AF158B63230BC7a60144F2E26839",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentALGOPERP": {
                "address": "0x9bAEDd40FaE33Ce9022D39a9bd71F325E626a06e",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionALGOPERP": {
                "address": "0x799654ecaF87E769C56f722C82Fbc7BBCC4f621C",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsALGOPERP": {
                "address": "0xfd9f2393634fAe33099503b45719d8EBf1dA7744",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyZRXPERP": {
                "address": "0x76BB1Edf0C55eC68f4C8C7fb3C076b811b1a9b9f",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateZRXPERP": {
                "address": "0x0e4695edb83FB23E6b12AFa3660beF09610791de",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketZRXPERP": {
                "address": "0x4DdD30Fff71Bd03AfFd9A6E27c7C8C0CC9731b22",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateZRXPERP": {
                "address": "0x67e010545133038292D124E49D1dB6459fff82AF",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentZRXPERP": {
                "address": "0x58e178B0CacD1bc56a2cC408030A1f69eDc315f7",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionZRXPERP": {
                "address": "0x08BCea94194A1D63379123073Cb254b77f7721A5",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsZRXPERP": {
                "address": "0x0ED899BDe78B8f647D8bB1A44cD2DeDFC087188C",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySEIPERP": {
                "address": "0x66fc48720f09Ac386608FB65ede53Bb220D0D5Bc",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSEIPERP": {
                "address": "0x9F6AA1c141838DF56eF82Be286cAbd2616c8B309",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSEIPERP": {
                "address": "0xd0De1Cc5849E07C03D1d7a2589a8D56D092DfEaf",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSEIPERP": {
                "address": "0x73575B75c222bb2d6c2240E725CAa654B8ec6BAd",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSEIPERP": {
                "address": "0x9D81F2898127f812751dc09C210D839a7DB651aa",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSEIPERP": {
                "address": "0xb2E9642F96A1b576ab0232ec35Cb0d7d07D1172F",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSEIPERP": {
                "address": "0x8A6EF192d45e8ea930bC7f4F0eD457f213731BBb",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySTETHETHPERP": {
                "address": "0x08388dC122A956887c2F736Aaec4A0Ce6f0536Ce",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSTETHETHPERP": {
                "address": "0x2EC454957C0e66266398076f066fAaC77c48d88d",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSTETHETHPERP": {
                "address": "0xEa0324cc8D9FD70b8000bafbac7E3FF7C15275eD",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSTETHETHPERP": {
                "address": "0x89f16bfFd72166807A18fAba307cD21eC6143563",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSTETHETHPERP": {
                "address": "0xFF5CfDB5b9640EaEA8D23C1d72014346aE8174FD",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSTETHETHPERP": {
                "address": "0x4c0f7b167e7D280D97471f5A17F4Eb214E15A440",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSTETHETHPERP": {
                "address": "0x875bBc7285d52Ca957024999315717D45ba99276",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyTRBPERP": {
                "address": "0xbdb26bfb6A229d7f254FAf1B2c744887ec5F1f31",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateTRBPERP": {
                "address": "0x4B786a8b4b7ca90f9857776b0B888cED53CFeeF0",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketTRBPERP": {
                "address": "0x2C993C071e15513419a2563766d2E7Db6A55F3C4",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateTRBPERP": {
                "address": "0xEF9cC2223931e876dfcf0642b3f2EFb6Ccef7746",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentTRBPERP": {
                "address": "0x5e24c013e8d8b60D53D77cce019263e1964ed8D1",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionTRBPERP": {
                "address": "0x30BB2B3A49ca31e0DD9D1C330E3e9bC8d4390B33",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsTRBPERP": {
                "address": "0x7bfa1D23Ec09cCCEF678c0175794Ef9e9dc11d18",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyTIAPERP": {
                "address": "0x35B0ed8473e7943d31Ee1eeeAd06C8767034Ce39",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateTIAPERP": {
                "address": "0x75D9ABD9B5e9724345570cFa587BA791c6B012a3",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketTIAPERP": {
                "address": "0xECF9f79602bC7F8751166254639aA6605Bc5f2E8",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateTIAPERP": {
                "address": "0x0c705619Bbc28809419Aae00306f726A410f99fF",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentTIAPERP": {
                "address": "0x2774b19d141019B296E880aBd5f7E39A81D3164C",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionTIAPERP": {
                "address": "0x89EF1ccB62eE764Be2f817f3fDf20598EC90fBCa",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsTIAPERP": {
                "address": "0x2BB9c128C397f50AFdB82d99096EE9E5acFF166a",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyIMXPERP": {
                "address": "0xBBd74c2c8c89D45B822e08fCe400F4DDE99e600b",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateIMXPERP": {
                "address": "0x4AfD66f7379449a73C4848B30DBeb93016346FBE",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketIMXPERP": {
                "address": "0x17711043B91ac78d4a9D9D4Eff4982Ae34718596",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateIMXPERP": {
                "address": "0x10584F7232e992CbffFbBD981AbB37841796e5ca",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentIMXPERP": {
                "address": "0xbBF6444e3Ba09ae34288EFc9139A669A3359Dc95",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionIMXPERP": {
                "address": "0x6DAa4Eb27a25C3727e9857FD6b0B736Ff397542e",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsIMXPERP": {
                "address": "0xF647dA1E37ab60A418cbd68f864b96eCAa545118",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyMEMEPERP": {
                "address": "0x48BeadAB5781aF9C4Fec27AC6c8E0F402F2Cc3D6",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateMEMEPERP": {
                "address": "0xeF35211B545B8f7EAF77F0d144A2e023d21Cb453",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketMEMEPERP": {
                "address": "0x5Ee88eFE11a05afCE278df521A5086B998Cd8127",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateMEMEPERP": {
                "address": "0x9C8ab9A60467ccE650b4E59E5072d37CC51C5C0B",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentMEMEPERP": {
                "address": "0xE0d47B8F4c0fa9BEef45544b2507c4832d0aDB06",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionMEMEPERP": {
                "address": "0x2cFD760B02CC196E611CE867862C0654B1527c2C",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsMEMEPERP": {
                "address": "0x65AC63AaF11dF18d392469eD2D8CaF8E2E40E788",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyFETPERP": {
                "address": "0x4272b356e7E406Eeef15E47692f7f4dE86370634",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateFETPERP": {
                "address": "0x6CA6Ae2fFE05b78545482111Ad74B6676F79C4e1",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketFETPERP": {
                "address": "0x8cfdfAf68efC96293A395B5Ef94e5736EC71020C",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateFETPERP": {
                "address": "0xd9fd12815Ef126094E73E6741309C304d1c24580",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentFETPERP": {
                "address": "0xc3A4c26DFF46Da40C508BAa09C94f222fF5452eb",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionFETPERP": {
                "address": "0x0f98F15020CBeaa572E86E05e4717E504b6A4fA5",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsFETPERP": {
                "address": "0xDB3de223c0cF8D76A4Ae3a09308Fc605c6dF8802",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyGRTPERP": {
                "address": "0x3f957DF3AB99ff502eE09071dd353bf4352BBEfE",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateGRTPERP": {
                "address": "0x70C512B97b06985f522F9C602CB14246ACfe2F5A",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketGRTPERP": {
                "address": "0xFd7B1A558e97b7C42ab0B66699774daC1E6C91bb",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateGRTPERP": {
                "address": "0x3804e72Fda96F6BC5ABF32EEc37BC35e56E56001",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentGRTPERP": {
                "address": "0xB9020cE5086feC8e9cEfe86b23C2d31Ee5f6f678",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionGRTPERP": {
                "address": "0x6cE41F0c16BD789CD4b97ff75fBFB510a6c211e5",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsGRTPERP": {
                "address": "0x68f05ef597BED7bE78A2ffF6E78206c99f79AbFD",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyPYTHPERP": {
                "address": "0x296286ae0b5c066CBcFe46cc4Ffb375bCCAFE640",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStatePYTHPERP": {
                "address": "0xD326CFAb7af228aE6e97d879E9E6A3E7faA8D328",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketPYTHPERP": {
                "address": "0xC3351Ec585e2D9d08aff1DF0FaA4e491cAe8c953",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidatePYTHPERP": {
                "address": "0xd882a4e1a17e0DD0b90Bb22B7dDB6712271Da77B",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentPYTHPERP": {
                "address": "0xF854e2472E56fe064f726baE7352F1Ed486c6684",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionPYTHPERP": {
                "address": "0x41c49bBc181211b289D2a29318f485fAc2692489",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsPYTHPERP": {
                "address": "0x9EE6dF39fe29EAb8116DB947CC642794400b70DF",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyANKRPERP": {
                "address": "0x90c9B9D7399323FfFe63819788EeD7Cde1e6A78C",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateANKRPERP": {
                "address": "0xF5b5176933e18C4e3F603F2646f07BB262245Be8",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketANKRPERP": {
                "address": "0x250AD7A503132Bf851743cef092b56CB1C33a3bC",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateANKRPERP": {
                "address": "0x35A713bbb5a205c4dF96A8391E26Fb6228248f2f",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentANKRPERP": {
                "address": "0x977264557C22491947c88c72eb91Bf297d1bB44f",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionANKRPERP": {
                "address": "0x93465C5a94361A8bc7313e9a443bf76d54e09Ce9",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsANKRPERP": {
                "address": "0xeb4F86ADD4313d281cDfe1B566b3D94D0e6E05A4",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyBONKPERP": {
                "address": "0xB3422e49dB926f7C5F5d7DaF5F1069Abf1b7E894",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateBONKPERP": {
                "address": "0xc27e06964A83eBb5917EAB0e8607f0B1492e755C",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketBONKPERP": {
                "address": "0x731FB37F96Be476792dbfdF2a642a6257768c498",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateBONKPERP": {
                "address": "0x60b7278c91c31d668fBB961B702C3CB3aD59DbA5",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentBONKPERP": {
                "address": "0x31d83b7A96B298111352A5a8D9cD396ED9eCC4c9",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionBONKPERP": {
                "address": "0x1496d992e66a1843fE91659689C697844aC8712d",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsBONKPERP": {
                "address": "0xE0a9be89b352014028dA9837233168DD5CCEC9B1",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyJTOPERP": {
                "address": "0xae90E9BB73b32505FB56a0F4Fd4eC8cf94BaB730",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0xa73f0d92018af27709b5bfff434859f0db873438fc6d45be8b3be26c65ae9f2d",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateJTOPERP": {
                "address": "0xbC2FDA8D78A9a7F0AFEfD45EE5c4A78f02088C10",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x6377325dddb6719257d767fc842ab0015634e496757a751611755903c612ec30",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketJTOPERP": {
                "address": "0xFA2fAB480bbdE7C34286616132a0e84AbC8720E6",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x9b62fc2d07cfe9d04133a7f8a62ca4e06a451389449333c4b130cc2fcd56586b",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateJTOPERP": {
                "address": "0x5C91D11A7a2Db54daF61e3b8cef326D930E8039A",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x13ee5dce04192f0ce1bdc3c61dbfd94ae4dcd866d6054ad5d179f2ec04ac8846",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentJTOPERP": {
                "address": "0x064F65c29d29386b37d7D78804fd4246AC7edA0B",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x9ba408f6c497b0160eb8e4a4b9783ec63da3c94483f345d3ccc589a442fbb5a2",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionJTOPERP": {
                "address": "0x05718A8adFaF321b0e21DaaE77A44a2De71F6d9f",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x9777b65f6315a4ae415a920d8c48e745ad641dbf1372794403a5edea8443fc6b",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsJTOPERP": {
                "address": "0x92E1D720a055604C72Ffe14c4e51A1c5d67D5D3A",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "https://explorer.optimism.io/tx/0x6b2f5bd36f5758906f7ae19115c151050d309ce7c37347d6efca0b31fd76f1f3",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyORDIPERP": {
                "address": "0xE698CcC3cD4f2172a848094eA6D28D89d750C16f",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateORDIPERP": {
                "address": "0xDe344136FB507e96Df8694615f6AF1739A2a9AaD",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketORDIPERP": {
                "address": "0x3D9EF40135Ce9705F0a1eFcEb9E4Dc311C0f2F26",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateORDIPERP": {
                "address": "0x842D77B29F344cD11B93fb9eE463a3479b098aDb",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentORDIPERP": {
                "address": "0x709F4EF76E243B365f0172f6C4CFA825af7Ae468",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionORDIPERP": {
                "address": "0xf595193ba60485855d3F6bD2e60c487cC6A99B9D",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsORDIPERP": {
                "address": "0x6aEa7024E001560Ebf4F634d3EBfC8403FE0c7BF",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyJUPPERP": {
                "address": "0xf9AE92bc49A5DD96AE5840eaAE75218016811c99",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateJUPPERP": {
                "address": "0x5060490e390dc3D4590BD732550B3cf042d41334",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketJUPPERP": {
                "address": "0xA2fd4da04a2Dd32860Cd9e12FD4d9d17c3211949",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateJUPPERP": {
                "address": "0xdf2713E82212eA2096bb14ce5f47c4A1319b3C7A",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentJUPPERP": {
                "address": "0x3756909c4240aD5b442eC3d138e2cE42F27eC605",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionJUPPERP": {
                "address": "0xa3D7AeCf60B33eB7582E6cC38bFb60926E7D2131",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsJUPPERP": {
                "address": "0xD50e7390dad2DE90313C1ACD00c51212Ffa9BE5D",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyCVXPERP": {
                "address": "0x2F0Fe4B621E7e54110446cE2df699004c6194636",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateCVXPERP": {
                "address": "0xb76ab289C1C81498A17382CA40E799DA494f7EB7",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketCVXPERP": {
                "address": "0x9Cc5C4af60485a582b86E29AC8681D113fD2a197",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateCVXPERP": {
                "address": "0x0134c2E630cB2E5385261C4CA9308e87Ba70B432",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentCVXPERP": {
                "address": "0xc23BAbF6Ff26b9EBD36Bb28da9eeA3F42534Aa79",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionCVXPERP": {
                "address": "0x400813263d6300347423E02fc8402735340aaE72",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsCVXPERP": {
                "address": "0xE854473Fc57DB647f957d813044649200C6E1c4e",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxySTRKPERP": {
                "address": "0x2F0F0865dFDD52AdefB583Ae824dDE7D60b76a3B",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStateSTRKPERP": {
                "address": "0x73f056Ca71F4f4f5eA6375dD710D62247873001b",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketSTRKPERP": {
                "address": "0x2292de8313E1C41935dD24dc66529b4B6cdf7424",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidateSTRKPERP": {
                "address": "0x803b5E2B4b376a747d0E95c74Cee3B9dc9B25e79",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentSTRKPERP": {
                "address": "0x3b17232cBcEcb5DE01bb92Aee2fC35e507F0aBbb",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionSTRKPERP": {
                "address": "0xdA9303CE53a1800b0F077C1A9a1A253Ee8A64457",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsSTRKPERP": {
                "address": "0xE50DBa755fd9e9Aad8198193FF9C7e4aE1F3443a",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2ProxyPENDLEPERP": {
                "address": "0xd4e9e0784C3cE4796f54F2EA0D337c7CFcCFD645",
                "sourceName": "contracts/ProxyPerpsV2.sol",
                "contractName": "ProxyPerpsV2",
                "abi": [
                  "constructor(address _owner)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event RouteRemoved(bytes4 route)",
                  "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                  "event TargetedRouteAdded(address targetedRoute)",
                  "event TargetedRouteRemoved(address targetedRoute)",
                  "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                  "function acceptOwnership()",
                  "function addRoute(bytes4 selector, address implementation, bool isView)",
                  "function getAllTargets() view returns (address[])",
                  "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                  "function getRoutesLength() view returns (uint256)",
                  "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function removeRoute(bytes4 selector)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketStatePENDLEPERP": {
                "address": "0xe9Eb0074F3c7e4Fc5c8F717fB565649749EeFc4a",
                "sourceName": "contracts/PerpsV2MarketState.sol",
                "contractName": "PerpsV2MarketState",
                "abi": [
                  "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                  "event AssociatedContractAdded(address associatedContract)",
                  "event AssociatedContractRemoved(address associatedContract)",
                  "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function addAssociatedContracts(address[] associatedContracts)",
                  "function associatedContracts() view returns (address[])",
                  "function baseAsset() view returns (bytes32)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function deleteDelayedOrder(address account)",
                  "function deletePosition(address account)",
                  "function entryDebtCorrection() view returns (int128)",
                  "function flag(address account, address flagger)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function getDelayedOrderAddressesLength() view returns (uint256)",
                  "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getFlaggedAddressesLength() view returns (uint256)",
                  "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function getPositionAddressesLength() view returns (uint256)",
                  "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                  "function initialized() view returns (bool)",
                  "function isFlagged(address account) view returns (bool)",
                  "function legacyFundinSequenceOffset() view returns (uint256)",
                  "function legacyState() view returns (address)",
                  "function linkOrInitializeState()",
                  "function marketKey() view returns (bytes32)",
                  "function marketSize() view returns (uint128)",
                  "function marketSkew() view returns (int128)",
                  "function nextPositionId() view returns (uint64)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function positionFlagger(address) view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function pushFundingSequence(int128 fundingSequence)",
                  "function removeAssociatedContracts(address[] associatedContracts)",
                  "function setBaseAsset(bytes32 _baseAsset)",
                  "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                  "function setFundingLastRecomputed(uint32 lastRecomputed)",
                  "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                  "function setMarketKey(bytes32 _marketKey)",
                  "function setMarketSize(uint128 _marketSize)",
                  "function setMarketSkew(int128 _marketSkew)",
                  "function setNextPositionId(uint64 nextPositionId)",
                  "function unflag(address account)",
                  "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                  "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketPENDLEPERP": {
                "address": "0x671a70eDa2639972cBb503fBDa0f2EbE0949ff29",
                "sourceName": "contracts/PerpsV2Market.sol",
                "contractName": "PerpsV2Market",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event MarginTransferred(address indexed account, int256 marginDelta)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function closePosition(uint256 desiredFillPrice)",
                  "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "function messageSender() view returns (address)",
                  "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function proxy() view returns (address)",
                  "function rebuildCache()",
                  "function recomputeFunding() returns (uint256 lastIndex)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function transferMargin(int256 marginDelta)",
                  "function withdrawAllMargin()"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketLiquidatePENDLEPERP": {
                "address": "0xfe964748D65187bc6441bB12058E2dF3e3240d04",
                "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                "contractName": "PerpsV2MarketLiquidate",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                  "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function flagPosition(address account)",
                  "function forceLiquidatePosition(address account)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidatePosition(address account)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedIntentPENDLEPERP": {
                "address": "0xaEE950b1704c3eeeF954FA326AF42A4A9d083Cc2",
                "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                "contractName": "PerpsV2MarketDelayedIntent",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)",
                  "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                  "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                  "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                  "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2DelayedExecutionPENDLEPERP": {
                "address": "0x83C71b63c14900026f30af0a39C0e1CaB30f4A2f",
                "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                "contractName": "PerpsV2MarketDelayedExecution",
                "abi": [
                  "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                  "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                  "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                  "event ProxyUpdated(address proxyAddress)",
                  "function acceptOwnership()",
                  "function cancelDelayedOrder(address account)",
                  "function cancelOffchainDelayedOrder(address account)",
                  "function executeDelayedOrder(address account)",
                  "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                  "function isResolverCached() view returns (bool)",
                  "function marketState() view returns (address)",
                  "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 resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function setMessageSender(address sender)",
                  "function setProxy(address _proxy)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "PerpsV2MarketViewsPENDLEPERP": {
                "address": "0x4c5F5843131718D76f8Ee6595F7F33D2D3329B34",
                "sourceName": "contracts/PerpsV2MarketViews.sol",
                "contractName": "PerpsV2MarketViews",
                "abi": [
                  "constructor(address _marketState, address _owner, address _resolver)",
                  "event CacheUpdated(bytes32 name, address destination)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "function acceptOwnership()",
                  "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                  "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                  "function assetPrice() view returns (uint256 price, bool invalid)",
                  "function baseAsset() view returns (bytes32 key)",
                  "function canLiquidate(address account) view returns (bool)",
                  "function currentFundingRate() view returns (int256)",
                  "function currentFundingVelocity() view returns (int256)",
                  "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                  "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                  "function fundingLastRecomputed() view returns (uint32)",
                  "function fundingRateLastRecomputed() view returns (int128)",
                  "function fundingSequence(uint256 index) view returns (int128)",
                  "function fundingSequenceLength() view returns (uint256)",
                  "function isFlagged(address account) view returns (bool)",
                  "function isResolverCached() view returns (bool)",
                  "function liquidationFee(address account) view returns (uint256)",
                  "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                  "function marketDebt() view returns (uint256 debt, bool invalid)",
                  "function marketKey() view returns (bytes32 key)",
                  "function marketSize() view returns (uint128)",
                  "function marketSizes() view returns (uint256 long, uint256 short)",
                  "function marketSkew() view returns (int128)",
                  "function marketState() view returns (address)",
                  "function nominateNewOwner(address _owner)",
                  "function nominatedOwner() view returns (address)",
                  "function notionalValue(address account) view returns (int256 value, bool invalid)",
                  "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                  "function owner() view returns (address)",
                  "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                  "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                  "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                  "function rebuildCache()",
                  "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                  "function resolver() view returns (address)",
                  "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                  "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                ],
                "deployTxn": "",
                "deployedOn": "run.synthetix"
              },
              "DynamicSynthRedeemer": {
                "address": "0x64EA298C622c628C8b4C596c1e4403eb5AFcFff7",
                "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://explorer.optimism.io/tx/0x1c26a29256621e98c38c74b87f9b46ea42f05f0e26abb105995a7739acffea16",
                "deployedOn": "run.synthetix"
              }
            },
            "txns": {},
            "extras": {
              "network": "sepolia"
            }
          }
        }
      },
      "hash": "aefb43f76d50f64aa3b7a311a730316a",
      "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.btc_aggregator_address": {
      "artifacts": {
        "settings": {
          "btc_aggregator_address": "0xD702DD976Fb76Fffc2D3963D037dfDae5b04E593"
        }
      },
      "hash": "ee44b4406f9082b89b503d86c01be32b",
      "version": 7
    },
    "setting.bundleSalt": {
      "artifacts": {
        "settings": {
          "bundleSalt": "snax"
        }
      },
      "hash": "1ce8073982f8b8f0b4fa5c488c1fac79",
      "version": 7
    },
    "setting.ccip_router": {
      "artifacts": {
        "settings": {
          "ccip_router": "0x261c05167db67B2b619f9d312e0753f3721ad6E8"
        }
      },
      "hash": "43fad7858b1b30816b70c83e61bcd816",
      "version": 7
    },
    "setting.ccip_token_pool": {
      "artifacts": {
        "settings": {
          "ccip_token_pool": "0xe470A3068302CF045Eec3B800dDBFf42B42e18D8"
        }
      },
      "hash": "a70aa120a395b264d50a34ac83e14321",
      "version": 7
    },
    "setting.commitmentPriceDelay": {
      "artifacts": {
        "settings": {
          "commitmentPriceDelay": "2"
        }
      },
      "hash": "dc88d99e217842b1532ccb97f443b6c1",
      "version": 7
    },
    "setting.deployer": {
      "artifacts": {
        "settings": {
          "deployer": "0x302d2451d9f47620374B54c521423Bf0403916A2"
        }
      },
      "hash": "4630746efcedb01c961b1f4f73d37d5f",
      "version": 7
    },
    "setting.ethSettlementDelay": {
      "artifacts": {
        "settings": {
          "ethSettlementDelay": "15"
        }
      },
      "hash": "35909b272b3c2789933ec068a47eeba0",
      "version": 7
    },
    "setting.ethSettlementWindowDuration": {
      "artifacts": {
        "settings": {
          "ethSettlementWindowDuration": "60"
        }
      },
      "hash": "c85e06d9961059219500923347f33fea",
      "version": 7
    },
    "setting.eth_aggregator_address": {
      "artifacts": {
        "settings": {
          "eth_aggregator_address": "0x13e3Ee699D1909E989722E753853AE30b17e08c5"
        }
      },
      "hash": "0bc000bc634f5a3524a42fe56a61819b",
      "version": 7
    },
    "setting.minimum_liquidity_ratio": {
      "artifacts": {
        "settings": {
          "minimum_liquidity_ratio": "1100000000000000000"
        }
      },
      "hash": "109f80ca4fb572bb6f910537ee0e25cf",
      "version": 7
    },
    "setting.owner": {
      "artifacts": {
        "settings": {
          "owner": "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
        }
      },
      "hash": "e8513cbf1e14110b279ab5f88cd7b3b5",
      "version": 7
    },
    "setting.perps_market_package": {
      "artifacts": {
        "settings": {
          "perps_market_package": "synthetix-perps-market:3.6.0"
        }
      },
      "hash": "6f7c9e29ed21593246ffb426feeb964d",
      "version": 7
    },
    "setting.pool_owner": {
      "artifacts": {
        "settings": {
          "pool_owner": "0x302d2451d9f47620374B54c521423Bf0403916A2"
        }
      },
      "hash": "4630746efcedb01c961b1f4f73d37d5f",
      "version": 7
    },
    "setting.pythEthFeedId": {
      "artifacts": {
        "settings": {
          "pythEthFeedId": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace"
        }
      },
      "hash": "76b70cf1081f908461371df70e34da16",
      "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": "0xff1a0f4744e8582DF1aE09D5611b887B6a12925C"
        }
      },
      "hash": "8d3cfa71d0d3f87a34fc3bbfecb3022f",
      "version": 7
    },
    "setting.salt": {
      "artifacts": {
        "settings": {
          "salt": "0x3330363734343032330000000000000000000000000000000000000000000000"
        }
      },
      "hash": "cb980c05eddeb10b16ccc9930e5eac83",
      "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_address": {
      "artifacts": {
        "settings": {
          "snx_address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4"
        }
      },
      "hash": "627c2392cda1ad050b01e8cd6d2d6cc0",
      "version": 7
    },
    "setting.snx_aggregator_address": {
      "artifacts": {
        "settings": {
          "snx_aggregator_address": "0x2FCF37343e916eAEd1f1DdaaF84458a359b53877"
        }
      },
      "hash": "e02bf9b165da87bc66f595760ce68cba",
      "version": 7
    },
    "setting.snx_chainlink_staleness_tolerance": {
      "artifacts": {
        "settings": {
          "snx_chainlink_staleness_tolerance": "3600"
        }
      },
      "hash": "cbe1a4d89aef65379151a3c5b905bd85",
      "version": 7
    },
    "setting.snx_liquidation_reward": {
      "artifacts": {
        "settings": {
          "snx_liquidation_reward": "10000000000000000000"
        }
      },
      "hash": "a2f32c5aee3e6b3d3f034554cca7a559",
      "version": 7
    },
    "setting.snx_package": {
      "artifacts": {
        "settings": {
          "snx_package": "synthetix:3.12.0"
        }
      },
      "hash": "c9b4bfe64c294091192dd7a3b5e993ff",
      "version": 7
    },
    "setting.spot_market_package": {
      "artifacts": {
        "settings": {
          "spot_market_package": "synthetix-spot-market:3.6.0"
        }
      },
      "hash": "c1261f27dd7ac61c4e8658570266e282",
      "version": 7
    },
    "setting.synthEthAsyncFixedFee": {
      "artifacts": {
        "settings": {
          "synthEthAsyncFixedFee": "0.001"
        }
      },
      "hash": "4aae8f97ee533d17f9d3f82e235d161c",
      "version": 7
    },
    "setting.synthEthMaxMarketCollateral": {
      "artifacts": {
        "settings": {
          "synthEthMaxMarketCollateral": "0"
        }
      },
      "hash": "4dcc24a97eaa6583aab6a5b0cb07d27e",
      "version": 7
    },
    "setting.synthEthSkewScale": {
      "artifacts": {
        "settings": {
          "synthEthSkewScale": "100000"
        }
      },
      "hash": "03ecac3251dd9772a2b1d1f2a18fc1aa",
      "version": 7
    },
    "setting.synthEthUnwrapFee": {
      "artifacts": {
        "settings": {
          "synthEthUnwrapFee": "0.0001"
        }
      },
      "hash": "5342b92accf7ea1b046893ca8606f72d",
      "version": 7
    },
    "setting.synthEthWrapFee": {
      "artifacts": {
        "settings": {
          "synthEthWrapFee": "0.0001"
        }
      },
      "hash": "5342b92accf7ea1b046893ca8606f72d",
      "version": 7
    },
    "setting.target_preset": {
      "artifacts": {
        "settings": {
          "target_preset": "main"
        }
      },
      "hash": "79d2862416f9389ec7270a618c6ce1b3",
      "version": 7
    },
    "setting.weth_address": {
      "artifacts": {
        "settings": {
          "weth_address": "0x4200000000000000000000000000000000000006"
        }
      },
      "hash": "f3f7cdc8a2c69884a29067e9bbe7b0cf",
      "version": 7
    },
    "var.governance": {
      "artifacts": {
        "settings": {
          "governance_package": "synthetix-governance:3.0.9",
          "governance_satellite_package": "synthetix-governance-satellite:3.0.9",
          "governance_wormhole_core": "0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722",
          "governance_wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911",
          "governance_snapshot_record": "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
          "governance_ambassador_weight": "0",
          "governance_spartan_weight": "1",
          "governance_treasury_weight": "1",
          "governance_initial_council_member": "0x6E1613B5c68B4Cf2A58400D8019a97849A678139",
          "governance_minimum_active_members": "1",
          "governance_initial_epoch_index": "0",
          "governance_initial_epoch_start_date": "1725035275",
          "governance_initial_nomination_period_start_date": "1725072898",
          "governance_initial_voting_period_start_date": "1725640075",
          "governance_initial_epoch_end_date": "1726504075"
        }
      },
      "hash": "6bc27a93c80c2c5d6b85e6692fc0f270",
      "version": 7
    },
    "clone.governance_satellite_ambassador": {
      "artifacts": {
        "imports": {
          "governance_satellite_ambassador": {
            "url": "ipfs://QmNpGQrbgEYZhKQdxW3bSFMEpF7qEfBrn9vL1SHvq7MxdE",
            "tags": [
              "latest"
            ],
            "target": "synthetix-governance-satellite:3.0.9@ambassador",
            "preset": "ambassador",
            "contracts": {
              "AssociatedSystemsModule": {
                "address": "0x1e7255397FFecc760d4431b7A03D151197962A04",
                "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": "",
                "deployTxnBlockNumber": "124699160",
                "deployTimestamp": "1724997097",
                "sourceName": "contracts/modules/core/AssociatedSystemsModule.sol",
                "contractName": "AssociatedSystemsModule",
                "deployedOn": "contract.AssociatedSystemsModule",
                "gasUsed": 877177,
                "gasCost": "1097272"
              },
              "CouncilTokenModule": {
                "address": "0xe20955a9C3A79968309864C42BfEBaBf945D534D",
                "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 NotImplemented()",
                  "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": "",
                "deployTxnBlockNumber": "124699163",
                "deployTimestamp": "1724997103",
                "sourceName": "contracts/modules/council-nft/CouncilTokenModule.sol",
                "contractName": "CouncilTokenModule",
                "deployedOn": "contract.CouncilTokenModule",
                "gasUsed": 1669243,
                "gasCost": "1096824"
              },
              "ElectionModuleSatellite": {
                "address": "0x628c608D5f0f610718e59DCdc859d812724Ea5Bc",
                "abi": [
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error Unauthorized(address addr)",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896058",
                "deployTimestamp": "1725390893",
                "sourceName": "contracts/modules/core/ElectionModuleSatellite.sol",
                "contractName": "ElectionModuleSatellite",
                "deployedOn": "contract.ElectionModuleSatellite",
                "gasUsed": 2535574,
                "gasCost": "1431760"
              },
              "InitialModuleBundle": {
                "address": "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                "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": "1724997109",
                "sourceName": "contracts/modules/core/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "SnapshotVotePowerModule": {
                "address": "0x4908BcaE75012b36dc284ae03fdc738b9aef6dE6",
                "abi": [
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "error Unauthorized(address addr)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896059",
                "deployTimestamp": "1725390895",
                "sourceName": "contracts/modules/core/SnapshotVotePowerModule.sol",
                "contractName": "SnapshotVotePowerModule",
                "deployedOn": "contract.SnapshotVotePowerModule",
                "gasUsed": 909455,
                "gasCost": "1431436"
              },
              "InitialProxy": {
                "address": "0x93D3A11B8403C2140D0d1f1c0460601e4FBB52DE",
                "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": [
                  "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124718812",
                "deployTimestamp": "1725036401",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 185346,
                "gasCost": "4992028"
              },
              "CoreRouter": {
                "address": "0x90b60f7166511aad740be0d1e58abc2dc04a23c6",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployedOn": "router.CoreRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896061",
                "deployTimestamp": "1725390899",
                "contractName": "CoreRouter",
                "sourceName": "CoreRouter.sol",
                "gasUsed": 516318,
                "gasCost": "1430522"
              },
              "CouncilTokenRouter": {
                "address": "0xb270dccad2217d67289e93e31610bb5b02a3d8b8",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployedOn": "router.CouncilTokenRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124699174",
                "deployTimestamp": "1724997125",
                "contractName": "CouncilTokenRouter",
                "sourceName": "CouncilTokenRouter.sol",
                "gasUsed": 406482,
                "gasCost": "1095696"
              },
              "GovernanceProxy": {
                "address": "0x93D3A11B8403C2140D0d1f1c0460601e4FBB52DE",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod()",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getGasLimit() view returns (uint256)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "CouncilToken": {
                "address": "0x8776A1C7f986e86A58F1459F76d7f2b1435Ccb76",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "imports": {
              "trusted_multicall_forwarder": {
                "url": "ipfs://QmNfWHmhebfwJsRp8qjrZoL8PRQ7zChGFpbTz7VvqGiK91",
                "settings": {
                  "salt": "salt"
                },
                "contracts": {
                  "TrustedMulticallForwarder": {
                    "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                    "abi": [
                      "constructor()",
                      "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)",
                      "event EIP712DomainChanged()",
                      "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                      "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)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1724997057",
                    "sourceName": "src/TrustedMulticallForwarder.sol",
                    "contractName": "TrustedMulticallForwarder",
                    "deployedOn": "contract.TrustedMulticallForwarder",
                    "gasUsed": 0,
                    "gasCost": "0"
                  }
                },
                "extras": {
                  "salt": "salt"
                }
              }
            },
            "settings": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            },
            "txns": {
              "upgrade_core_proxy": {
                "hash": "",
                "blockNumber": "124753606",
                "timestamp": "1725106021",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x93D3A11B8403C2140D0d1f1c0460601e4FBB52DE",
                        "0xa04ea198a4A65e0B08b19f2760ba329142b56946"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 47574,
                "gasCost": "1000067394",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_council_token": {
                "hash": "",
                "blockNumber": "124753607",
                "timestamp": "1725106026",
                "events": {
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x636f756e63696c546f6b656e0000000000000000000000000000000000000000",
                        "0x8776A1C7f986e86A58F1459F76d7f2b1435Ccb76",
                        "0xB270DCCAD2217d67289E93E31610BB5b02a3d8b8"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 355077,
                "gasCost": "1000058997",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_election_module": {
                "hash": "",
                "blockNumber": "124753608",
                "timestamp": "1725106032",
                "events": {
                  "CouncilMemberAdded": [
                    {
                      "name": "CouncilMemberAdded",
                      "args": [
                        "0x6E1613B5c68B4Cf2A58400D8019a97849A678139",
                        "0"
                      ]
                    }
                  ],
                  "EpochSetup": [
                    {
                      "name": "EpochSetup",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075"
                      ]
                    }
                  ],
                  "InitializedSatellite": [
                    {
                      "name": "InitializedSatellite",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075",
                        [
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ]
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_election_module",
                "gasUsed": 342218,
                "gasCost": "1000051797",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "clone.governance_satellite_spartan": {
      "artifacts": {
        "imports": {
          "governance_satellite_spartan": {
            "url": "ipfs://QmVY1JiMCB9a7EPG5Qjpm51mEyVcG8zsd8c6o833yNqkKx",
            "tags": [
              "latest"
            ],
            "target": "synthetix-governance-satellite:3.0.9@spartan",
            "preset": "spartan",
            "contracts": {
              "AssociatedSystemsModule": {
                "address": "0x0E9eeeeF24Ac3567928fea06Ce87B04a135AF6D0",
                "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": "",
                "deployTxnBlockNumber": "124699179",
                "deployTimestamp": "1724997135",
                "sourceName": "contracts/modules/core/AssociatedSystemsModule.sol",
                "contractName": "AssociatedSystemsModule",
                "deployedOn": "contract.AssociatedSystemsModule",
                "gasUsed": 877177,
                "gasCost": "1097524"
              },
              "CouncilTokenModule": {
                "address": "0x76d70ea8cd6AF0353F351697B093659cA10edce4",
                "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 NotImplemented()",
                  "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": "",
                "deployTxnBlockNumber": "124699181",
                "deployTimestamp": "1724997139",
                "sourceName": "contracts/modules/council-nft/CouncilTokenModule.sol",
                "contractName": "CouncilTokenModule",
                "deployedOn": "contract.CouncilTokenModule",
                "gasUsed": 1669243,
                "gasCost": "1097410"
              },
              "ElectionModuleSatellite": {
                "address": "0x900A693b953322b780C2b59b1F06eFd0eDEa96c2",
                "abi": [
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error Unauthorized(address addr)",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896063",
                "deployTimestamp": "1725390903",
                "sourceName": "contracts/modules/core/ElectionModuleSatellite.sol",
                "contractName": "ElectionModuleSatellite",
                "deployedOn": "contract.ElectionModuleSatellite",
                "gasUsed": 2535574,
                "gasCost": "1433880"
              },
              "InitialModuleBundle": {
                "address": "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                "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": "1724997143",
                "sourceName": "contracts/modules/core/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "SnapshotVotePowerModule": {
                "address": "0x4323AA584b7B9937909425c7aF0B32d206b9EF66",
                "abi": [
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "error Unauthorized(address addr)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896064",
                "deployTimestamp": "1725390905",
                "sourceName": "contracts/modules/core/SnapshotVotePowerModule.sol",
                "contractName": "SnapshotVotePowerModule",
                "deployedOn": "contract.SnapshotVotePowerModule",
                "gasUsed": 909455,
                "gasCost": "1435047"
              },
              "InitialProxy": {
                "address": "0x2082d5A6f6F17F5e421FD6508b867D794472A42a",
                "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": [
                  "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124718817",
                "deployTimestamp": "1725036411",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 185346,
                "gasCost": "4993940"
              },
              "CoreRouter": {
                "address": "0x9fb3aad37533e0cdfe9978011fb579a91090eda1",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployedOn": "router.CoreRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896065",
                "deployTimestamp": "1725390907",
                "contractName": "CoreRouter",
                "sourceName": "CoreRouter.sol",
                "gasUsed": 516330,
                "gasCost": "1434581"
              },
              "CouncilTokenRouter": {
                "address": "0xb9cf0d7210be1a0e0537707a647de33d38661e6f",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployedOn": "router.CouncilTokenRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124699191",
                "deployTimestamp": "1724997159",
                "contractName": "CouncilTokenRouter",
                "sourceName": "CouncilTokenRouter.sol",
                "gasUsed": 406482,
                "gasCost": "1097173"
              },
              "GovernanceProxy": {
                "address": "0x2082d5A6f6F17F5e421FD6508b867D794472A42a",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod()",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getGasLimit() view returns (uint256)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "CouncilToken": {
                "address": "0x32cB924fF3555fAd5f310B2E5Aa8385434022Be8",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "imports": {
              "trusted_multicall_forwarder": {
                "url": "ipfs://QmNfWHmhebfwJsRp8qjrZoL8PRQ7zChGFpbTz7VvqGiK91",
                "settings": {
                  "salt": "salt"
                },
                "contracts": {
                  "TrustedMulticallForwarder": {
                    "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                    "abi": [
                      "constructor()",
                      "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)",
                      "event EIP712DomainChanged()",
                      "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                      "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)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1724997057",
                    "sourceName": "src/TrustedMulticallForwarder.sol",
                    "contractName": "TrustedMulticallForwarder",
                    "deployedOn": "contract.TrustedMulticallForwarder",
                    "gasUsed": 0,
                    "gasCost": "0"
                  }
                },
                "extras": {
                  "salt": "salt"
                }
              }
            },
            "settings": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            },
            "txns": {
              "upgrade_core_proxy": {
                "hash": "",
                "blockNumber": "124753609",
                "timestamp": "1725106040",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x2082d5A6f6F17F5e421FD6508b867D794472A42a",
                        "0x3bF6b8b4236d393d62cC209F3d934721b98517fe"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 47574,
                "gasCost": "1000045471",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_council_token": {
                "hash": "",
                "blockNumber": "124753610",
                "timestamp": "1725106045",
                "events": {
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x636f756e63696c546f6b656e0000000000000000000000000000000000000000",
                        "0x32cB924fF3555fAd5f310B2E5Aa8385434022Be8",
                        "0xb9Cf0D7210Be1A0e0537707A647De33D38661E6f"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 355077,
                "gasCost": "1000039806",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_election_module": {
                "hash": "",
                "blockNumber": "124753611",
                "timestamp": "1725106052",
                "events": {
                  "CouncilMemberAdded": [
                    {
                      "name": "CouncilMemberAdded",
                      "args": [
                        "0x6E1613B5c68B4Cf2A58400D8019a97849A678139",
                        "0"
                      ]
                    }
                  ],
                  "EpochSetup": [
                    {
                      "name": "EpochSetup",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075"
                      ]
                    }
                  ],
                  "InitializedSatellite": [
                    {
                      "name": "InitializedSatellite",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075",
                        [
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ]
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_election_module",
                "gasUsed": 342218,
                "gasCost": "1000034949",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "clone.governance_satellite_treasury": {
      "artifacts": {
        "imports": {
          "governance_satellite_treasury": {
            "url": "ipfs://QmaKiaHLyGkjGP1w6x9NrD95bqnBWMhVJtRjBBCqekpBFJ",
            "tags": [
              "latest"
            ],
            "target": "synthetix-governance-satellite:3.0.9@treasury",
            "preset": "treasury",
            "contracts": {
              "AssociatedSystemsModule": {
                "address": "0xeEaa43b0b99fB26ab68FD3D0a997EfE80c86d0Db",
                "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": "",
                "deployTxnBlockNumber": "124699196",
                "deployTimestamp": "1724997169",
                "sourceName": "contracts/modules/core/AssociatedSystemsModule.sol",
                "contractName": "AssociatedSystemsModule",
                "deployedOn": "contract.AssociatedSystemsModule",
                "gasUsed": 877177,
                "gasCost": "1097017"
              },
              "CouncilTokenModule": {
                "address": "0x8116eA7B1F43867d47fBe3eED33AB1C9027b994F",
                "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 NotImplemented()",
                  "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": "",
                "deployTxnBlockNumber": "124699198",
                "deployTimestamp": "1724997173",
                "sourceName": "contracts/modules/council-nft/CouncilTokenModule.sol",
                "contractName": "CouncilTokenModule",
                "deployedOn": "contract.CouncilTokenModule",
                "gasUsed": 1669243,
                "gasCost": "1097121"
              },
              "ElectionModuleSatellite": {
                "address": "0x6337b5d1650CC509bA9e1D5c71E06A01eE825265",
                "abi": [
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error MismatchAssociatedSystemKind(bytes32 expected, bytes32 actual)",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error Unauthorized(address addr)",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896067",
                "deployTimestamp": "1725390911",
                "sourceName": "contracts/modules/core/ElectionModuleSatellite.sol",
                "contractName": "ElectionModuleSatellite",
                "deployedOn": "contract.ElectionModuleSatellite",
                "gasUsed": 2535574,
                "gasCost": "1433571"
              },
              "InitialModuleBundle": {
                "address": "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                "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": "1724997177",
                "sourceName": "contracts/modules/core/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "SnapshotVotePowerModule": {
                "address": "0x87AF5b5339E7451Dc31AEeeA5ef231a018ef5591",
                "abi": [
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint64()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "error Unauthorized(address addr)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)"
                ],
                "constructorArgs": [],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896068",
                "deployTimestamp": "1725390913",
                "sourceName": "contracts/modules/core/SnapshotVotePowerModule.sol",
                "contractName": "SnapshotVotePowerModule",
                "deployedOn": "contract.SnapshotVotePowerModule",
                "gasUsed": 909455,
                "gasCost": "1433634"
              },
              "InitialProxy": {
                "address": "0xECfA1d4B17AaCD691173b6194C3ade361ef38367",
                "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": [
                  "0x8a0221CabE12b3C8BA33ab13397dDC575DA1CcC1",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124718821",
                "deployTimestamp": "1725036419",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 185346,
                "gasCost": "4967293"
              },
              "CoreRouter": {
                "address": "0x912fc722932a22b536610a9952911bbf4b67ae57",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod(uint8 currentPeriod)",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getCurrentPeriod() view returns (uint256)",
                  "function getElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getEpochIndex() view returns (uint256)",
                  "function getEpochSchedule() view returns (tuple(uint64 startDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 endDate) epoch)",
                  "function getGasLimit() view returns (uint256)",
                  "function getNextElectionSettings() view returns (tuple(uint8 epochSeatCount, uint8 minimumActiveMembers, uint64 epochDuration, uint64 nominationPeriodDuration, uint64 votingPeriodDuration, uint64 maxDateAdjustmentTolerance) settings)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function getVotingPowerForUser(address snapshotContract, address voter, uint256 periodId) view returns (uint256)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployedOn": "router.CoreRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124896069",
                "deployTimestamp": "1725390915",
                "contractName": "CoreRouter",
                "sourceName": "CoreRouter.sol",
                "gasUsed": 516330,
                "gasCost": "1434884"
              },
              "CouncilTokenRouter": {
                "address": "0x23cd3326b669f3bca252ec2760f2c9ae7a084286",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployedOn": "router.CouncilTokenRouter",
                "deployTxnHash": "",
                "deployTxnBlockNumber": "124699208",
                "deployTimestamp": "1724997193",
                "contractName": "CouncilTokenRouter",
                "sourceName": "CouncilTokenRouter.sol",
                "gasUsed": 406482,
                "gasCost": "1096371"
              },
              "GovernanceProxy": {
                "address": "0xECfA1d4B17AaCD691173b6194C3ade361ef38367",
                "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)",
                  "error AlreadyACouncilMember()",
                  "error EmptyArray()",
                  "error InsufficientValue()",
                  "error InvalidParameter(string parameter, string reason)",
                  "error InvalidVM(string reason)",
                  "error MessageAlreadyProcessed()",
                  "error NoVotingPower(address sender, uint256 currentEpoch)",
                  "error NotACouncilMember()",
                  "error NotCallableInCurrentPeriod()",
                  "error OnlyRelayer()",
                  "error OverflowUint256ToUint16()",
                  "error OverflowUint256ToUint64()",
                  "error PositionOutOfBounds()",
                  "error UnregisteredEmitter()",
                  "error UnsupportedNetwork(uint64)",
                  "error ValueAlreadyInSet()",
                  "error ValueNotInSet()",
                  "event CouncilMemberAdded(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMemberRemoved(address indexed member, uint256 indexed epochIndex)",
                  "event CouncilMembersDismissed(address[] dismissedMembers, uint256 epochId)",
                  "event EpochScheduleTweaked(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event EpochSetup(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "event GasLimitSet(uint256 gasLimit)",
                  "event InitializedSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "event VoteCastSent(address sender, address[] candidates, uint256[] amounts)",
                  "event VoteWithdrawnSent(address sender)",
                  "function _recvDismissMembers(address[] membersToDismiss, uint256 epochIndex)",
                  "function _recvResolve(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address[] councilMembers)",
                  "function _recvTweakEpochSchedule(uint256 epochIndex, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate)",
                  "function cast(address[] candidates, uint256[] amounts) payable",
                  "function getGasLimit() view returns (uint256)",
                  "function getRegisteredEmitters() view returns (bytes32[])",
                  "function getSupportedNetworks() view returns (uint16[])",
                  "function getWormholeCore() view returns (address)",
                  "function getWormholeRelayer() view returns (address)",
                  "function hasProcessedMsg(bytes32 deliveryHash) view returns (bool)",
                  "function initElectionModuleSatellite(uint256 epochIndex, uint64 epochStartDate, uint64 nominationPeriodStartDate, uint64 votingPeriodStartDate, uint64 epochEndDate, address wormholeCore, address wormholeRelayer, address[] councilMembers)",
                  "function isElectionModuleInitialized() view returns (bool)",
                  "function quoteCrossChainDeliveryPrice(uint16 targetChain, uint256 receiverValue, uint256 gasLimit) view returns (uint256 cost)",
                  "function receiveWormholeMessages(bytes payload, bytes[], bytes32 sourceAddress, uint16 sourceChain, bytes32 deliveryHash) payable",
                  "function removeRegisteredEmitters(uint16[] chainIds)",
                  "function setGasLimit(uint256 gasLimit)",
                  "function setRegisteredEmitters(uint16[] chainIds, address[] emitters)",
                  "function withdrawVote() payable",
                  "error BallotAlreadyPrepared(address voter, uint256 electionId)",
                  "error InvalidSnapshotContract()",
                  "error InvalidWeightType()",
                  "error NoPower(uint256, address)",
                  "error OverflowUint256ToUint128()",
                  "error SnapshotAlreadyTaken(uint128 snapshotId)",
                  "error SnapshotNotTaken(address snapshotContract, uint128 electionId)",
                  "event ScaleSet(address indexed snapshotContract, uint256 scale)",
                  "event SnapshotContractSet(address indexed snapshotContract, bool indexed enabled, uint8 weight)",
                  "function getPreparedBallot(address voter) view returns (uint256 power)",
                  "function getVotePowerSnapshotId(address snapshotContract, uint128 electionId) view returns (uint128)",
                  "function prepareBallotWithSnapshot(address snapshotContract, address voter) returns (uint256 votingPower)",
                  "function setScale(address snapshotContract, uint256 scale)",
                  "function setSnapshotContract(address snapshotContract, uint8 weight, bool enabled)",
                  "function takeVotePowerSnapshot(address snapshotContract) returns (uint128 snapshotId)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "CouncilToken": {
                "address": "0xB15d5609565AC796E9bc6dEedB31767F9d2f66A2",
                "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 NotImplemented()",
                  "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)",
                  "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)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "sourceName": "",
                "contractName": "",
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 0,
                "gasCost": "0"
              }
            },
            "imports": {
              "trusted_multicall_forwarder": {
                "url": "ipfs://QmNfWHmhebfwJsRp8qjrZoL8PRQ7zChGFpbTz7VvqGiK91",
                "settings": {
                  "salt": "salt"
                },
                "contracts": {
                  "TrustedMulticallForwarder": {
                    "address": "0xE2C5658cC5C448B48141168f3e475dF8f65A1e3e",
                    "abi": [
                      "constructor()",
                      "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)",
                      "event EIP712DomainChanged()",
                      "event ExecutedForwardRequest(address indexed signer, uint256 nonce, bool success)",
                      "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)"
                    ],
                    "constructorArgs": [],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "deployTxnBlockNumber": "",
                    "deployTimestamp": "1724997057",
                    "sourceName": "src/TrustedMulticallForwarder.sol",
                    "contractName": "TrustedMulticallForwarder",
                    "deployedOn": "contract.TrustedMulticallForwarder",
                    "gasUsed": 0,
                    "gasCost": "0"
                  }
                },
                "extras": {
                  "salt": "salt"
                }
              }
            },
            "settings": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            },
            "txns": {
              "upgrade_core_proxy": {
                "hash": "",
                "blockNumber": "124753612",
                "timestamp": "1725106059",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xECfA1d4B17AaCD691173b6194C3ade361ef38367",
                        "0x03e847c56F0cF6e30b3b8cCD2F00fE2eAb01Ad60"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_core_proxy",
                "gasUsed": 47562,
                "gasCost": "1000030681",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_council_token": {
                "hash": "",
                "blockNumber": "124753613",
                "timestamp": "1725106064",
                "events": {
                  "AssociatedSystemSet": [
                    {
                      "name": "AssociatedSystemSet",
                      "args": [
                        "0x6572633732310000000000000000000000000000000000000000000000000000",
                        "0x636f756e63696c546f6b656e0000000000000000000000000000000000000000",
                        "0xB15d5609565AC796E9bc6dEedB31767F9d2f66A2",
                        "0x23Cd3326b669F3bCa252ec2760F2C9ae7a084286"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_council_token",
                "gasUsed": 355077,
                "gasCost": "1000026859",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "init_election_module": {
                "hash": "",
                "blockNumber": "124753614",
                "timestamp": "1725106072",
                "events": {
                  "CouncilMemberAdded": [
                    {
                      "name": "CouncilMemberAdded",
                      "args": [
                        "0x6E1613B5c68B4Cf2A58400D8019a97849A678139",
                        "0"
                      ]
                    }
                  ],
                  "EpochSetup": [
                    {
                      "name": "EpochSetup",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075"
                      ]
                    }
                  ],
                  "InitializedSatellite": [
                    {
                      "name": "InitializedSatellite",
                      "args": [
                        "0",
                        "1725035275",
                        "1725072898",
                        "1725640075",
                        "1726504075",
                        [
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ]
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.init_election_module",
                "gasUsed": 342218,
                "gasCost": "1000023582",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "council_token_name": "Synthetix Governance Module",
              "council_token_symbol": "SNXGOV",
              "council_token_uri": "https://synthetix.io",
              "initial_council_member": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "initial_epoch_end_date": "0",
              "initial_epoch_index": "0",
              "initial_epoch_start_date": "0",
              "initial_nomination_period_start_date": "0",
              "initial_voting_period_start_date": "0",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "governance",
              "wormhole_core": "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
              "wormhole_relayer": "0x27428DD2d3DD32A4D7f7C497eAaa23130d894911"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.registerSnxOracleManagerNode": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxOracleManagerNode": {
            "hash": "0x050b661212af0ea1cac07830f7f7239d7113498f9c447559fd968579c8c5e435",
            "blockNumber": "124699211",
            "timestamp": "1724997199",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4",
                    3,
                    "0x0000000000000000000000002fcf37343e916eaed1f1ddaaf84458a359b5387700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008",
                    []
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxOracleManagerNode",
            "gasUsed": 53112,
            "gasCost": "1096022",
            "signer": "0xe2163dd599067919d1e9108929b568Bf41D3A420"
          }
        },
        "settings": {
          "snx_oracle_id_raw": "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4"
        }
      },
      "hash": "041c840602f8bdcc44910c577916f0c6",
      "version": 7
    },
    "invoke.registerSnxWithStaleness": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "registerSnxWithStaleness": {
            "hash": "0x2f97ac4359c8d7c272d2d62f41b86800f99e5de08393c185e571d6b7a0ae0a9d",
            "blockNumber": "124699237",
            "timestamp": "1724997251",
            "events": {
              "NodeRegistered": [
                {
                  "name": "NodeRegistered",
                  "args": [
                    "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609",
                    7,
                    "0x0000000000000000000000000000000000000000000000000000000000000e10",
                    [
                      "0x3d59ebf7a9cd7026092f678fe481d6b8f1de017487a645c18217ee3ea3df03e4"
                    ]
                  ]
                }
              ]
            },
            "deployedOn": "invoke.registerSnxWithStaleness",
            "gasUsed": 51236,
            "gasCost": "1097017",
            "signer": "0xe2163dd599067919d1e9108929b568Bf41D3A420"
          }
        },
        "settings": {
          "snx_oracle_id": "0x3e81d8c3caef426ef71cff427e79242336819a23e1e844262071b30b0ed5a609"
        }
      },
      "hash": "7d07013bb3c2f7927a1ec75fd977607a",
      "version": 7
    },
    "invoke.GovernanceProxy_setGasLimit_ambassador": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setGasLimit_ambassador": {
            "hash": "",
            "blockNumber": "124753615",
            "timestamp": "1725106086",
            "events": {
              "GasLimitSet": [
                {
                  "name": "GasLimitSet",
                  "args": [
                    "1000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setGasLimit_ambassador",
            "gasUsed": 55702,
            "gasCost": "1000020702",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "c590275ad621b0e9aa27dfebbf052b56",
      "version": 7
    },
    "invoke.GovernanceProxy_setGasLimit_spartan": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setGasLimit_spartan": {
            "hash": "",
            "blockNumber": "124753616",
            "timestamp": "1725106087",
            "events": {
              "GasLimitSet": [
                {
                  "name": "GasLimitSet",
                  "args": [
                    "1000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setGasLimit_spartan",
            "gasUsed": 55702,
            "gasCost": "1000018124",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "719117f650f3a6f0e1182fca2e4d2347",
      "version": 7
    },
    "invoke.GovernanceProxy_setGasLimit_treasury": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setGasLimit_treasury": {
            "hash": "",
            "blockNumber": "124753617",
            "timestamp": "1725106088",
            "events": {
              "GasLimitSet": [
                {
                  "name": "GasLimitSet",
                  "args": [
                    "1000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setGasLimit_treasury",
            "gasUsed": 55702,
            "gasCost": "1000015867",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "933533e73db8fcee19d04048a4eec70a",
      "version": 7
    },
    "invoke.GovernanceProxy_setRegisteredEmitters_ambassador": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setRegisteredEmitters_ambassador": {
            "hash": "",
            "blockNumber": "124753618",
            "timestamp": "1725106093",
            "events": {},
            "deployedOn": "invoke.GovernanceProxy_setRegisteredEmitters_ambassador",
            "gasUsed": 268296,
            "gasCost": "1000013891",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "bf1a9f27078fb875a5a5bb76d3e83384",
      "version": 7
    },
    "invoke.GovernanceProxy_setRegisteredEmitters_spartan": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setRegisteredEmitters_spartan": {
            "hash": "",
            "blockNumber": "124753619",
            "timestamp": "1725106098",
            "events": {},
            "deployedOn": "invoke.GovernanceProxy_setRegisteredEmitters_spartan",
            "gasUsed": 268296,
            "gasCost": "1000012186",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "d43d5e1d2843f6f0df3aad8399328120",
      "version": 7
    },
    "invoke.GovernanceProxy_setRegisteredEmitters_treasury": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setRegisteredEmitters_treasury": {
            "hash": "",
            "blockNumber": "124753620",
            "timestamp": "1725106102",
            "events": {},
            "deployedOn": "invoke.GovernanceProxy_setRegisteredEmitters_treasury",
            "gasUsed": 268296,
            "gasCost": "1000010690",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "009b9dad5936b78567b629d6d5607a8d",
      "version": 7
    },
    "invoke.GovernanceProxy_setSnapshotContract_ambassador": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setSnapshotContract_ambassador": {
            "hash": "",
            "blockNumber": "124753621",
            "timestamp": "1725106104",
            "events": {
              "SnapshotContractSet": [
                {
                  "name": "SnapshotContractSet",
                  "args": [
                    "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
                    true,
                    0
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setSnapshotContract_ambassador",
            "gasUsed": 62866,
            "gasCost": "1000009378",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "40a5bf6ba5a4cee27ca1bd49b018c8a7",
      "version": 7
    },
    "invoke.GovernanceProxy_setSnapshotContract_spartan": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setSnapshotContract_spartan": {
            "hash": "",
            "blockNumber": "124978833",
            "timestamp": "1725556515",
            "events": {
              "SnapshotContractSet": [
                {
                  "name": "SnapshotContractSet",
                  "args": [
                    "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
                    true,
                    1
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setSnapshotContract_spartan",
            "gasUsed": 45684,
            "gasCost": "1016553665",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "ad9b06f1ab97eca3a224b7f45a0753a8",
      "version": 7
    },
    "invoke.GovernanceProxy_setSnapshotContract_treasury": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "GovernanceProxy_setSnapshotContract_treasury": {
            "hash": "",
            "blockNumber": "124753623",
            "timestamp": "1725106107",
            "events": {
              "SnapshotContractSet": [
                {
                  "name": "SnapshotContractSet",
                  "args": [
                    "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
                    true,
                    1
                  ]
                }
              ]
            },
            "deployedOn": "invoke.GovernanceProxy_setSnapshotContract_treasury",
            "gasUsed": 62878,
            "gasCost": "1000007189",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "b3f414117e3db2dbc849b888af6313c4",
      "version": 7
    },
    "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_ambassador": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "SynthetixDebtShare_addAuthorizedToSnapshot_ambassador": {
            "hash": "",
            "blockNumber": "124753624",
            "timestamp": "1725106109",
            "events": {
              "ChangeAuthorizedToSnapshot": [
                {
                  "name": "ChangeAuthorizedToSnapshot",
                  "args": [
                    "0x93D3A11B8403C2140D0d1f1c0460601e4FBB52DE",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_ambassador",
            "gasUsed": 47581,
            "gasCost": "1000006295",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "bf60af0d2334b2db4f8d8dbf1f32db4b",
      "version": 7
    },
    "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_spartan": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "SynthetixDebtShare_addAuthorizedToSnapshot_spartan": {
            "hash": "",
            "blockNumber": "124753625",
            "timestamp": "1725106109",
            "events": {
              "ChangeAuthorizedToSnapshot": [
                {
                  "name": "ChangeAuthorizedToSnapshot",
                  "args": [
                    "0x2082d5A6f6F17F5e421FD6508b867D794472A42a",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_spartan",
            "gasUsed": 47581,
            "gasCost": "1000005511",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "6e57dba617d5c2b9e71e858907869dca",
      "version": 7
    },
    "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_treasury": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "SynthetixDebtShare_addAuthorizedToSnapshot_treasury": {
            "hash": "",
            "blockNumber": "124753626",
            "timestamp": "1725106110",
            "events": {
              "ChangeAuthorizedToSnapshot": [
                {
                  "name": "ChangeAuthorizedToSnapshot",
                  "args": [
                    "0xECfA1d4B17AaCD691173b6194C3ade361ef38367",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.SynthetixDebtShare_addAuthorizedToSnapshot_treasury",
            "gasUsed": 47581,
            "gasCost": "1000004825",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "c70d6f8bb1af8c02f8ac194b26ed344d",
      "version": 7
    },
    "setting.legacy_market_package": {
      "artifacts": {
        "settings": {
          "legacy_market_package": "synthetix-legacy-market:3.12.1"
        }
      },
      "hash": "f29a71212d44f5622127da262a5855e3",
      "version": 7
    },
    "setting.oracle_manager_package": {
      "artifacts": {
        "settings": {
          "oracle_manager_package": "oracle-manager:3.10.1"
        }
      },
      "hash": "92fdcb64b3c75d08a007bdd55d9cbe33",
      "version": 7
    },
    "setting.pdao": {
      "artifacts": {
        "settings": {
          "pdao": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
        }
      },
      "hash": "d4f6a4633b8bbd214d31c4f249c3eb7a",
      "version": 7
    },
    "setting.position_manager_address": {
      "artifacts": {
        "settings": {
          "position_manager_address": "0x693cd986b8b840607d3c7952f038bc22da636f48"
        }
      },
      "hash": "7e389ccd2b47be15db6118f2041a4a30",
      "version": 7
    },
    "setting.treasury": {
      "artifacts": {
        "settings": {
          "treasury": "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99"
        }
      },
      "hash": "8dedfd588960a0be9cd113c417789f10",
      "version": 7
    },
    "setting.treasury_market_package": {
      "artifacts": {
        "settings": {
          "treasury_market_package": "synthetix-treasury-market:3.12.3"
        }
      },
      "hash": "b27f59c31f7d61e25658e0d062039c9a",
      "version": 7
    },
    "setting.treasury_market_target_cratio": {
      "artifacts": {
        "settings": {
          "treasury_market_target_cratio": "1100000000000000000"
        }
      },
      "hash": "109f80ca4fb572bb6f910537ee0e25cf",
      "version": 7
    },
    "setting.treasury_pool_id_setting": {
      "artifacts": {
        "settings": {
          "treasury_pool_id_setting": "8"
        }
      },
      "hash": "839c1e8e302a9d76c52b0df39b2fb653",
      "version": 7
    },
    "clone.oracle_manager": {
      "artifacts": {
        "imports": {
          "oracle_manager": {
            "url": "ipfs://QmcxXmEECH4NY6BSj7gAPEM7KX93Xu6a4NJJi1Hsbn9K5c",
            "tags": [
              "latest"
            ],
            "target": "oracle-manager:3.10.1@main",
            "preset": "main",
            "contracts": {
              "NodeModule": {
                "address": "0x1fA92386075F90E7a12FB33e448494Bb1c3FE786",
                "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": "",
                "deployTxnBlockNumber": "132268873",
                "deployTimestamp": "1740136523",
                "sourceName": "contracts/modules/NodeModule.sol",
                "contractName": "NodeModule",
                "deployedOn": "contract.NodeModule",
                "gasUsed": 4896112,
                "gasCost": "1026798"
              },
              "CoreModule": {
                "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                "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": "1740136531",
                "sourceName": "contracts/modules/CoreModule.sol",
                "contractName": "CoreModule",
                "deployedOn": "contract.CoreModule",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "InitialProxy": {
                "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                "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": [
                  "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                  "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "1740136531",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 0,
                "gasCost": "0"
              },
              "OracleRouter": {
                "address": "0x27d97fa42409251e3ff4bb614ca93d6a0d5562cb",
                "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": "",
                "deployTxnBlockNumber": "132268883",
                "deployTimestamp": "1740136543",
                "contractName": "OracleRouter",
                "sourceName": "OracleRouter.sol",
                "gasUsed": 1728151,
                "gasCost": "1026851"
              },
              "Proxy": {
                "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                "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://QmdpEzqkBqFuyC7G25bqVE6AtyMdGRXJ2qdsAU2k2h2s4V",
                "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": "1740136527",
                    "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": "0x6985af9dbc7fbaa1e65e88575159b486fc6686ddec0ab8b85d17493260595ae3",
                "blockNumber": "132270280",
                "timestamp": "1740139348",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "0x27d97FA42409251e3ff4bB614ca93D6A0d5562cB"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgrade_proxy",
                "gasUsed": 55376,
                "gasCost": "1000007992",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "salt": "oracle-manager-official"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "provision.legacyMarket": {
      "artifacts": {
        "imports": {
          "legacyMarket": {
            "url": "ipfs://QmSm83Yip4fLH59cvwQ1bssRP4eTg5BRwbuaGrUjuDeLby",
            "tags": [
              "latest"
            ],
            "target": "synthetix-legacy-market:3.12.1@main",
            "preset": "main",
            "contracts": {
              "InitialModuleBundle": {
                "address": "0x6dFF970F25f7dcb049A9f9688eD8B537A528BC34",
                "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": "132268946",
                "deployTimestamp": "1740136669",
                "sourceName": "contracts/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "contract.InitialModuleBundle",
                "gasUsed": 496162,
                "gasCost": "1026720"
              },
              "Market": {
                "address": "0x24A3074e41B534480B210E6198F40D9d98F23DBa",
                "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": "",
                "deployTxnBlockNumber": "134084204",
                "deployTimestamp": "1743767200",
                "sourceName": "contracts/LegacyMarket.sol",
                "contractName": "LegacyMarket",
                "deployedOn": "contract.Market",
                "gasUsed": 2895219,
                "gasCost": "1000064186"
              },
              "InitialProxy": {
                "address": "0x19F03FCf06204DF85b2593145b87134D3366170c",
                "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": [
                  "0x6dFF970F25f7dcb049A9f9688eD8B537A528BC34",
                  "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "132268951",
                "deployTimestamp": "1740136679",
                "sourceName": "contracts/Proxy.sol",
                "contractName": "Proxy",
                "deployedOn": "contract.InitialProxy",
                "gasUsed": 248149,
                "gasCost": "1026656"
              },
              "Proxy": {
                "address": "0x19F03FCf06204DF85b2593145b87134D3366170c",
                "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",
              "market_id": "2"
            },
            "imports": {
              "v2x": {
                "url": "ipfs://QmWFTvtdgswof1SzqLJExWf3mestaUZvq7RDXU7m3Pt1L8",
                "settings": {
                  "network": "sepolia"
                },
                "contracts": {
                  "SafeDecimalMath": {
                    "address": "0x0142F40c25CE1F1177Ed131101FA19217396cB88",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "Math": {
                    "address": "0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c",
                    "sourceName": "contracts/Math.sol",
                    "contractName": "Math",
                    "abi": [],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "AddressResolver": {
                    "address": "0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "ReadProxyAddressResolver": {
                    "address": "0x1Cb059b7e74fD21665968C908806143E744D5F30",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FlexibleStorage": {
                    "address": "0x47649022380d182DA8010Ae5d257fea4227b21ff",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemSettings": {
                    "address": "0xE28b785ecc2Cb5FE949f5f31A5aEC3989f764838",
                    "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://explorer.optimism.io/tx/0xe489e6298049c1787b4271af0fd409c655e2a735c2571aa30e694faf079f36d4",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemStatus": {
                    "address": "0xE8c41bE1A167314ABAF2423b72Bf8da826943FFD",
                    "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://explorer.optimism.io/tx/0x1755e73d6d414cc63b135a0625b82c20b5d3d640a7ae3090ff14a74cf4ac127d",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeRates": {
                    "address": "0x913bd76F7E1572CC8278CeF2D6b06e2140ca9Ce2",
                    "sourceName": "contracts/ExchangeRates.sol",
                    "contractName": "ExchangeRates",
                    "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 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 effectiveAtomicValueAndRates(bytes32, uint256, bytes32) 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), uint256, 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), 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)) 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 synthTooVolatileForAtomicExchange(bytes32) 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)) view returns (bool)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x3bbf5797b9eb122e1f92435280f557947c130bdc38d3d547c28a25da05d55983",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardEscrowV2": {
                    "address": "0x5Fc9B8d2B7766f061bD84a41255fD1A76Fd1FAa2",
                    "sourceName": "contracts/ImportableRewardEscrowV2.sol",
                    "contractName": "ImportableRewardEscrowV2",
                    "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 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, uint256[]) returns (uint256, tuple(uint64 endTime, uint256 escrowAmount)[])",
                      "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 account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                      "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://explorer.optimism.io/tx/0x0bcc39110be7d4fe84661357fbc3a76c1907e7ba4bf06d3068f792af8d72c033",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixEscrow": {
                    "address": "0x06C6D063896ac733673c4474E44d9268f2402A55",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxyFeePool": {
                    "address": "0x4a16A42407AA491564643E1dfc1fd50af29794eF",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "DelegateApprovalsEternalStorage": {
                    "address": "0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "DelegateApprovals": {
                    "address": "0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePoolEternalStorage": {
                    "address": "0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePool": {
                    "address": "0xf9FE3607e6d19D8dC690DD976061a91D4A0db30B",
                    "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://explorer.optimism.io/tx/0xbc8e01e49d248d2a6d488dd8240b807d27f988bff5f92d643f6ccb780a530c34",
                    "deployedOn": "run.synthetix"
                  },
                  "FeePoolState": {
                    "address": "0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardsDistribution": {
                    "address": "0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxyERC20": {
                    "address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                    "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"
                  },
                  "TokenStateSynthetix": {
                    "address": "0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE",
                    "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"
                  },
                  "Synthetix": {
                    "address": "0x5A41F634958dB9183e9d0d1Cd8Dee439B6ABb3BF",
                    "sourceName": "contracts/MintableSynthetix.sol",
                    "contractName": "MintableSynthetix",
                    "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 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 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 account, uint256 amount)",
                      "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 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, uint256, bytes32, bytes32, uint256) returns (uint256)",
                      "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, uint256, bytes32, address, bytes32) returns (uint256)",
                      "function exchangeWithVirtual(bytes32, uint256, bytes32, bytes32) returns (uint256, address)",
                      "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 migrateEscrowContractBalance()",
                      "function mint() returns (bool)",
                      "function mintSecondary(address account, uint256 amount)",
                      "function mintSecondaryRewards(uint256 amount)",
                      "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://explorer.optimism.io/tx/0x79f53e5555baed5aea17c47a6b89dbb1867ef59cc171c757a465858bea25f0f4",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxySynthetix": {
                    "address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                    "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"
                  },
                  "DebtCache": {
                    "address": "0x96bDD51Cd421CD84123577Fe5Ea44A45Dacf01BA",
                    "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://explorer.optimism.io/tx/0x2d51c70fd3d04824d19af3db4d45e5274df04652bf230649e74affb2f900472d",
                    "deployedOn": "run.synthetix"
                  },
                  "Exchanger": {
                    "address": "0x24b4b6703a2eE7bA75a4Fc859B606F0bbaeef4EA",
                    "sourceName": "contracts/Exchanger.sol",
                    "contractName": "Exchanger",
                    "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)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "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, bytes32, uint256, bytes32, address, bytes32, uint256) returns (uint256)",
                      "function feeRateForExchange(bytes32 sourceCurrencyKey, bytes32 destinationCurrencyKey) view returns (uint256)",
                      "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 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://explorer.optimism.io/tx/0xca071b47559ffd14764e7a98c2e3c26d1a300460bfc035a3dde210f0efded60c",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeState": {
                    "address": "0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "Issuer": {
                    "address": "0xb4E0FA941376e101C29A9FA5A9C6a95489aA34cD",
                    "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://explorer.optimism.io/tx/0x1b1458fedca37f24b2209e4cf1a277c44fb8f40575f38377093526d16e8c1905",
                    "deployedOn": "run.synthetix"
                  },
                  "TradingRewards": {
                    "address": "0x2DcAD1A019fba8301b77810Ae14007cc88ED004B",
                    "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 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 setPaused(bool _paused)",
                      "function setPeriodController(address newPeriodController)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "EscrowChecker": {
                    "address": "0xcdb7D0a946223255d39A6e29B54f08f3291cc118",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesUSD": {
                    "address": "0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2",
                    "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"
                  },
                  "ProxysUSD": {
                    "address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
                    "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"
                  },
                  "ProxyERC20sUSD": {
                    "address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
                    "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": "0xDfA2d3a0d32F870D87f8A0d7AA6b9CdEB7bc5AdB",
                    "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://explorer.optimism.io/tx/0x53563b894ee7295c4db1e876e0ebf30d3743896e6054c8eb35943afd3a6c4a95",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixBridgeToBase": {
                    "address": "0x136b1EC699c62b0606854056f02dC7Bb80482d63",
                    "sourceName": "contracts/SynthetixBridgeToBase.sol",
                    "contractName": "SynthetixBridgeToBase",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DepositFinalized(address indexed _to, uint256 _amount)",
                      "event FeePeriodCloseFinalized(uint256 snxBackedAmount, uint256 totalDebtShares)",
                      "event FinalizeSynthTransfer(bytes32 indexed currencyKey, address indexed destination, uint256 amount)",
                      "event ImportedVestingEntries(address indexed account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                      "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 RewardDepositFinalized(address from, uint256 amount)",
                      "event WithdrawalInitiated(address indexed _from, address _to, uint256 _amount)",
                      "function CONTRACT_NAME() pure returns (bytes32)",
                      "function acceptOwnership()",
                      "function finalizeDeposit(address to, uint256 amount)",
                      "function finalizeEscrowMigration(address account, uint256 escrowedAmount, tuple(uint64 endTime, uint256 escrowAmount)[] vestingEntries)",
                      "function finalizeFeePeriodClose(uint256 snxBackedAmount, uint256 totalDebtShares)",
                      "function finalizeRewardDeposit(address from, uint256 amount)",
                      "function finalizeSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                      "function initiateSynthTransfer(bytes32 currencyKey, address destination, uint256 amount)",
                      "function initiationActive() view returns (bool)",
                      "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 resumeInitiation()",
                      "function suspendInitiation()",
                      "function synthTransferReceived() view returns (uint256)",
                      "function synthTransferSent() view returns (uint256)",
                      "function withdraw(uint256 amount)",
                      "function withdrawTo(address to, uint256 amount)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xbf69ba068e1b977b8bcbd46a1b53b80b9db4d29335737b23ef10ee3765f14a19",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralManager": {
                    "address": "0x15E7D4972a3E477878A5867A47617122BE2d1fF0",
                    "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://explorer.optimism.io/tx/0xde6a2ad50eb498c2e96e19e9d431f7eccaa2135541413d1fbf87c22cb02bce01",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthUtil": {
                    "address": "0x87b1481c82913301Fc6c884Ac266a7c430F92cFA",
                    "sourceName": "contracts/SynthUtil.sol",
                    "contractName": "SynthUtil",
                    "abi": [
                      "constructor(address resolver)",
                      "function addressResolverProxy() view returns (address)",
                      "function frozenSynths() view returns (bytes32[])",
                      "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "DappMaintenance": {
                    "address": "0x54581A23F62D147AC76d454f0b3eF77F9D766058",
                    "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": "",
                    "deployedOn": "run.synthetix"
                  },
                  "EtherWrapper": {
                    "address": "0xc3Ee42caBD773A608fa9Ec951982c94BD6F33d59",
                    "sourceName": "contracts/EmptyEtherWrapper.sol",
                    "contractName": "EmptyEtherWrapper",
                    "abi": [
                      "constructor()",
                      "function distributeFees()",
                      "function totalIssuedSynths() view returns (uint256)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesETH": {
                    "address": "0xEc3665F7e696b0Ad0D04Ae5161b18782D48cd1fd",
                    "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": "0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49",
                    "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": "0xe9dceA0136FEFC76c4E639Ec60CCE70482E2aCF7",
                    "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": "0xA9E630952522E3F110322711F424528Af894e307",
                    "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": "0x298B9B95708152ff6968aafd889c6586e9169f1D",
                    "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": "0x421DEF861D623F7123dfE0878D86E9576cbb3975",
                    "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"
                  },
                  "TokenStatesLINK": {
                    "address": "0x08a008eEA07d3cC7ca1913EEC3468C10F8F79e6A",
                    "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"
                  },
                  "ProxysLINK": {
                    "address": "0xc5Db22719A06418028A40A9B5E9A7c02959D0d08",
                    "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"
                  },
                  "SynthsLINK": {
                    "address": "0x0F6877e0Bb54a0739C6173A814B39D5127804123",
                    "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"
                  },
                  "SynthRedeemer": {
                    "address": "0xA997BD647AEe62Ef03b41e6fBFAdaB43d8E57535",
                    "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://explorer.optimism.io/tx/0x834046a0d1c1f1554f68fbec14625d6e4fd6a780a4e29d3808ed389cfa94abbe",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralUtil": {
                    "address": "0xD21969A86Ce5c41aAb2D492a0F802AA3e015cd9A",
                    "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://explorer.optimism.io/tx/0x7f9b991d0e39d9d4acb97e97dd8e030d69d0c54fc98f3eb81bd0c9c08ac20e83",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralManagerState": {
                    "address": "0xbA10526cD8742acC73AedeF5f7Dbb2477Bf86922",
                    "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://explorer.optimism.io/tx/0xc961ada3875dfdcc001f990bd9589207b2fc948e24aac9523afbf2860e21f8fa",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralShort": {
                    "address": "0xeb4b5ABcE7310855319440d936cd3aDd77DFA193",
                    "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://explorer.optimism.io/tx/0xaa088cb79b36320f883bd9e802737a099b33dafcf47f5ba9fbf1d5cec1eb5d40",
                    "deployedOn": "run.synthetix"
                  },
                  "WrapperFactory": {
                    "address": "0x27be2EFAd45DeBd732C1EBf5C9F7b49D498D4a93",
                    "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://explorer.optimism.io/tx/0xb8b6fc36b7cb72f52654255e77079e4cde9879626145c0342c39693ec1c5e7c9",
                    "deployedOn": "run.synthetix"
                  },
                  "OwnerRelayOnOptimism": {
                    "address": "0x6d4a64C57612841c2C6745dB2a4E4db34F002D20",
                    "sourceName": "contracts/OwnerRelayOnOptimism.sol",
                    "contractName": "OwnerRelayOnOptimism",
                    "abi": [
                      "constructor(address _resolver, address _temporaryOwner, uint256 _ownershipDuration)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DirectRelay(address target, bytes payload)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RelayBatchFinalized(address[] targets, bytes[] payloads)",
                      "event RelayFinalized(address target, bytes payload)",
                      "function acceptOwnership()",
                      "function directRelay(address target, bytes payload)",
                      "function expiryTime() view returns (uint256)",
                      "function finalizeRelay(address target, bytes payload)",
                      "function finalizeRelayBatch(address[] targets, bytes[] payloads)",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setNewExpiryTime(uint256 _duration)",
                      "function temporaryOwner() view returns (address)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x8b3f33579f65c9d5f4a1eaf78fff47b6e42d481b9686575303be4f5bc6c30433",
                    "deployedOn": "run.synthetix"
                  },
                  "CollateralEth": {
                    "address": "0x308AD16ef90fe7caCb85B784A603CB6E71b1A41a",
                    "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://explorer.optimism.io/tx/0x7849ba45a602863e4d20a0abd2d0e7d7d9ca6b5b369da56356b91f382a7e034a",
                    "deployedOn": "run.synthetix"
                  },
                  "StakingRewardssUSDDAIUniswapV3": {
                    "address": "0x7E11c004d20b502729918687E6E6777b28499085",
                    "sourceName": "contracts/StakingRewards.sol",
                    "contractName": "StakingRewards",
                    "abi": [
                      "constructor(address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "event Recovered(address token, uint256 amount)",
                      "event RewardAdded(uint256 reward)",
                      "event RewardPaid(address indexed user, uint256 reward)",
                      "event RewardsDurationUpdated(uint256 newDuration)",
                      "event Staked(address indexed user, uint256 amount)",
                      "event Withdrawn(address indexed user, uint256 amount)",
                      "function acceptOwnership()",
                      "function balanceOf(address account) view returns (uint256)",
                      "function earned(address account) view returns (uint256)",
                      "function exit()",
                      "function getReward()",
                      "function getRewardForDuration() view returns (uint256)",
                      "function lastPauseTime() view returns (uint256)",
                      "function lastTimeRewardApplicable() view returns (uint256)",
                      "function lastUpdateTime() 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 periodFinish() view returns (uint256)",
                      "function recoverERC20(address tokenAddress, uint256 tokenAmount)",
                      "function rewardPerToken() view returns (uint256)",
                      "function rewardPerTokenStored() view returns (uint256)",
                      "function rewardRate() view returns (uint256)",
                      "function rewards(address) view returns (uint256)",
                      "function rewardsDistribution() view returns (address)",
                      "function rewardsDuration() view returns (uint256)",
                      "function rewardsToken() view returns (address)",
                      "function setPaused(bool _paused)",
                      "function setRewardsDistribution(address _rewardsDistribution)",
                      "function setRewardsDuration(uint256 _rewardsDuration)",
                      "function stake(uint256 amount)",
                      "function stakingToken() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function userRewardPerTokenPaid(address) view returns (uint256)",
                      "function withdraw(uint256 amount)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "StakingRewardsSNXWETHUniswapV3": {
                    "address": "0xfD49C7EE330fE060ca66feE33d49206eB96F146D",
                    "sourceName": "contracts/StakingRewards.sol",
                    "contractName": "StakingRewards",
                    "abi": [
                      "constructor(address _owner, address _rewardsDistribution, address _rewardsToken, address _stakingToken)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PauseChanged(bool isPaused)",
                      "event Recovered(address token, uint256 amount)",
                      "event RewardAdded(uint256 reward)",
                      "event RewardPaid(address indexed user, uint256 reward)",
                      "event RewardsDurationUpdated(uint256 newDuration)",
                      "event Staked(address indexed user, uint256 amount)",
                      "event Withdrawn(address indexed user, uint256 amount)",
                      "function acceptOwnership()",
                      "function balanceOf(address account) view returns (uint256)",
                      "function earned(address account) view returns (uint256)",
                      "function exit()",
                      "function getReward()",
                      "function getRewardForDuration() view returns (uint256)",
                      "function lastPauseTime() view returns (uint256)",
                      "function lastTimeRewardApplicable() view returns (uint256)",
                      "function lastUpdateTime() 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 periodFinish() view returns (uint256)",
                      "function recoverERC20(address tokenAddress, uint256 tokenAmount)",
                      "function rewardPerToken() view returns (uint256)",
                      "function rewardPerTokenStored() view returns (uint256)",
                      "function rewardRate() view returns (uint256)",
                      "function rewards(address) view returns (uint256)",
                      "function rewardsDistribution() view returns (address)",
                      "function rewardsDuration() view returns (uint256)",
                      "function rewardsToken() view returns (address)",
                      "function setPaused(bool _paused)",
                      "function setRewardsDistribution(address _rewardsDistribution)",
                      "function setRewardsDuration(uint256 _rewardsDuration)",
                      "function stake(uint256 amount)",
                      "function stakingToken() view returns (address)",
                      "function totalSupply() view returns (uint256)",
                      "function userRewardPerTokenPaid(address) view returns (uint256)",
                      "function withdraw(uint256 amount)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "SystemSettingsLib": {
                    "address": "0x6fEd9c8de9886557AA7F4bF7784Cb579d38F833c",
                    "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://explorer.optimism.io/tx/0x7d1d9f1edfef5ee399e9331662cda095d7a05635ec06b628abbc3396627de0f0",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthetixDebtShare": {
                    "address": "0x45c55BF488D3Cb8640f12F63CbeDC027E8261E79",
                    "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://explorer.optimism.io/tx/0x440843de030008aac6d5718e52c8c9928c89203293b0703faf84a41bfdbb97d4",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesSOL": {
                    "address": "0x6825Dd6B5b83FBbFF1049A44dc808A10fe9a6719",
                    "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://explorer.optimism.io/tx/0x7b89e42a7670e68bee385cbef957ccb61d22969768c6d40251d4d28849f2c907",
                    "deployedOn": "run.synthetix"
                  },
                  "ProxysSOL": {
                    "address": "0x8b2F7Ae8cA8EE8428B6D76dE88326bB413db2766",
                    "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://explorer.optimism.io/tx/0xb7b6b52eacf82c40e8fd76a4a8a413f4358d391c616b88772814f610634b747d",
                    "deployedOn": "run.synthetix"
                  },
                  "SynthsSOL": {
                    "address": "0x04B50a5992Ea2281E14d43494d656698EA9C24dD",
                    "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"
                  },
                  "TokenStatesAVAX": {
                    "address": "0x2114d1C571CB541f3416a65f8BccFf9BB9E55Dc5",
                    "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"
                  },
                  "ProxysAVAX": {
                    "address": "0xB2b42B231C68cbb0b4bF2FFEbf57782Fd97D3dA4",
                    "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"
                  },
                  "SynthsAVAX": {
                    "address": "0x368A5126fF8e659004b6f9C9F723E15632e2B428",
                    "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"
                  },
                  "TokenStatesMATIC": {
                    "address": "0x937C9E1d18bEB4F8E1BCB0Dd7a612ca6012517a3",
                    "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"
                  },
                  "ProxysMATIC": {
                    "address": "0x81DDfAc111913d3d5218DEA999216323B7CD6356",
                    "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"
                  },
                  "SynthsMATIC": {
                    "address": "0xf49C194954b6B91855aC06D6C88Be316da60eD96",
                    "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"
                  },
                  "TokenStatesEUR": {
                    "address": "0x7afF10fc89B162c7aBf77974d190E7959cb456f5",
                    "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"
                  },
                  "ProxysEUR": {
                    "address": "0xFBc4198702E81aE77c06D58f81b629BDf36f0a71",
                    "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"
                  },
                  "SynthsEUR": {
                    "address": "0xdEdb0b04AFF1525bb4B6167F00e61601690c1fF2",
                    "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"
                  },
                  "SignedSafeDecimalMath": {
                    "address": "0x253914cf059f4c3E277c28060C404acFc38FB6e2",
                    "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://explorer.optimism.io/tx/0x42365b277121025488d24a669c23bd0e0ec4e984a44cd4f15e2f8be7c5f1d4e2",
                    "deployedOn": "run.synthetix"
                  },
                  "OneNetAggregatorIssuedSynths": {
                    "address": "0xe152A2DbcE62E6c0bd387fFd1bb8086F44c5Fd04",
                    "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://explorer.optimism.io/tx/0x9c87a560ac15ac9720820b41ce580175303897ad1817e24e6f5b30c39cd5b33a",
                    "deployedOn": "run.synthetix"
                  },
                  "OneNetAggregatorDebtRatio": {
                    "address": "0xA408d8e01C8E084B67559226C5B55D6F0B7074e2",
                    "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://explorer.optimism.io/tx/0xa74caca4a3ca2b47d00cb62124026fd1ebe110eaad3ad81365d15648d977b48b",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeCircuitBreaker": {
                    "address": "0x7322e8F6cB6c6a7B4e6620C486777fcB9Ea052a4",
                    "sourceName": "contracts/ExchangeCircuitBreaker.sol",
                    "contractName": "ExchangeCircuitBreaker",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event LastRateOverriden(bytes32 currencyKey, uint256 previousRate, uint256 newRate)",
                      "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 isDeviationAboveThreshold(uint256 base, uint256 comparison) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function lastExchangeRate(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 rateWithBreakCircuit(bytes32 currencyKey) returns (uint256 lastValidRate, bool circuitBroken)",
                      "function rateWithInvalid(bytes32 currencyKey) view returns (uint256, bool)",
                      "function rebuildCache()",
                      "function resetLastExchangeRate(bytes32[] currencyKeys)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xe10a3ad5ce544d743c6cdb87619bf86413cec865ff82f188aca2d9e1d177e4cd",
                    "deployedOn": "run.synthetix"
                  },
                  "TokenStatesAAVE": {
                    "address": "0xAf918f4a72BC34E59dFaF65866feC87947F1f590",
                    "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"
                  },
                  "ProxysAAVE": {
                    "address": "0x00B8D5a5e1Ac97Cb4341c4Bc4367443c8776e8d9",
                    "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"
                  },
                  "SynthsAAVE": {
                    "address": "0x34783A738DdC355cD7c737D4101b20622681332a",
                    "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"
                  },
                  "TokenStatesUNI": {
                    "address": "0xf32b995Fe4dDf540C848236dB9638d137Aa9b6ff",
                    "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"
                  },
                  "ProxysUNI": {
                    "address": "0xf5a6115Aa582Fd1BEEa22BC93B7dC7a785F60d03",
                    "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"
                  },
                  "SynthsUNI": {
                    "address": "0xcF2E165D2359E3C4dFF1E10eC40dBB5a745223A9",
                    "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"
                  },
                  "FuturesMarketManager": {
                    "address": "0xd30bdFd7e7a65fE109D5dE1D4e95F3B800FB7463",
                    "sourceName": "contracts/FuturesMarketManager.sol",
                    "contractName": "FuturesMarketManager",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event EndorsedAddressAdded(address endorsedAddress)",
                      "event EndorsedAddressRemoved(address endorsedAddress)",
                      "event MarketAdded(address market, bytes32 indexed asset, bytes32 indexed marketKey)",
                      "event MarketRemoved(address market, bytes32 indexed asset, bytes32 indexed marketKey)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function addEndorsedAddresses(address[] addresses)",
                      "function addMarkets(address[] marketsToAdd)",
                      "function addProxiedMarkets(address[] marketsToAdd)",
                      "function allEndorsedAddresses() view returns (address[])",
                      "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                      "function allMarkets() view returns (address[])",
                      "function allMarkets(bool proxiedMarkets) view returns (address[])",
                      "function burnSUSD(address account, uint256 amount) returns (uint256 postReclamationAmount)",
                      "function isEndorsed(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function issueSUSD(address account, uint256 amount)",
                      "function marketForKey(bytes32) view returns (address)",
                      "function marketSummaries(address[] addresses) view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                      "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 marketKey, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, bool priceInvalid, bool proxied)[])",
                      "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 nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function numMarkets() view returns (uint256)",
                      "function numMarkets(bool proxiedMarkets) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function payFee(uint256 amount, bytes32 trackingCode)",
                      "function payFee(uint256 amount)",
                      "function rebuildCache()",
                      "function removeEndorsedAddresses(address[] addresses)",
                      "function removeMarkets(address[] marketsToRemove)",
                      "function removeMarketsByKey(bytes32[] marketKeysToRemove)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function totalDebt() view returns (uint256 debt, bool isInvalid)",
                      "function updateMarketsImplementations(address[] marketsToUpdate)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xe3fe83acbc21d7acbc70b6cc7360c63f7511dc737aa821f28aa62b592f3d58f8",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketData": {
                    "address": "0xC51aeDBEC3aCD26650a7E85B6909E8AEc4d0F19e",
                    "sourceName": "contracts/FuturesMarketData.sol",
                    "contractName": "FuturesMarketData",
                    "abi": [
                      "constructor(address _resolverProxy)",
                      "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                      "function globals() view returns (tuple(uint256 minInitialMargin, uint256 liquidationFeeRatio, uint256 liquidationBufferRatio, uint256 minKeeperFee))",
                      "function marketDetails(address market) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValueUSD) limits, tuple(uint256 maxFundingRate, uint256 skewScaleUSD) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                      "function marketDetailsForKey(bytes32 marketKey) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValueUSD) limits, tuple(uint256 maxFundingRate, uint256 skewScaleUSD) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                      "function marketSummaries(address[] markets) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                      "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice) feeRates)[])",
                      "function parameters(bytes32 marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice, uint256 nextPriceConfirmWindow, uint256 maxLeverage, uint256 maxMarketValueUSD, uint256 maxFundingRate, uint256 skewScaleUSD))",
                      "function positionDetails(address market, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                      "function positionDetailsForMarketKey(bytes32 marketKey, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                      "function resolverProxy() view returns (address)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x804037170846adf1906b3211bdfb8c966f04c30d7edc3cd303da26909c58078f",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketSettings": {
                    "address": "0xaE55F163337A2A46733AA66dA9F35299f9A46e9e",
                    "sourceName": "contracts/FuturesMarketSettings.sol",
                    "contractName": "FuturesMarketSettings",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event LiquidationBufferRatioUpdated(uint256 bps)",
                      "event LiquidationFeeRatioUpdated(uint256 bps)",
                      "event MinInitialMarginUpdated(uint256 minMargin)",
                      "event MinKeeperFeeUpdated(uint256 sUSD)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ParameterUpdated(bytes32 indexed marketKey, bytes32 indexed parameter, uint256 value)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationBufferRatio() view returns (uint256)",
                      "function liquidationFeeRatio() view returns (uint256)",
                      "function makerFee(bytes32 _marketKey) view returns (uint256)",
                      "function makerFeeNextPrice(bytes32 _marketKey) view returns (uint256)",
                      "function maxFundingRate(bytes32 _marketKey) view returns (uint256)",
                      "function maxLeverage(bytes32 _marketKey) view returns (uint256)",
                      "function maxMarketValueUSD(bytes32 _marketKey) view returns (uint256)",
                      "function minInitialMargin() view returns (uint256)",
                      "function minKeeperFee() view returns (uint256)",
                      "function nextPriceConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function parameters(bytes32 _marketKey) view returns (uint256 takerFee, uint256 makerFee, uint256 takerFeeNextPrice, uint256 makerFeeNextPrice, uint256 nextPriceConfirmWindow, uint256 maxLeverage, uint256 maxMarketValueUSD, uint256 maxFundingRate, uint256 skewScaleUSD)",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setLiquidationBufferRatio(uint256 _ratio)",
                      "function setLiquidationFeeRatio(uint256 _ratio)",
                      "function setMakerFee(bytes32 _marketKey, uint256 _makerFee)",
                      "function setMakerFeeNextPrice(bytes32 _marketKey, uint256 _makerFeeNextPrice)",
                      "function setMaxFundingRate(bytes32 _marketKey, uint256 _maxFundingRate)",
                      "function setMaxLeverage(bytes32 _marketKey, uint256 _maxLeverage)",
                      "function setMaxMarketValueUSD(bytes32 _marketKey, uint256 _maxMarketValueUSD)",
                      "function setMinInitialMargin(uint256 _minMargin)",
                      "function setMinKeeperFee(uint256 _sUSD)",
                      "function setNextPriceConfirmWindow(bytes32 _marketKey, uint256 _nextPriceConfirmWindow)",
                      "function setParameters(bytes32 _marketKey, uint256 _takerFee, uint256 _makerFee, uint256 _takerFeeNextPrice, uint256 _makerFeeNextPrice, uint256 _nextPriceConfirmWindow, uint256 _maxLeverage, uint256 _maxMarketValueUSD, uint256 _maxFundingRate, uint256 _skewScaleUSD)",
                      "function setSkewScaleUSD(bytes32 _marketKey, uint256 _skewScaleUSD)",
                      "function setTakerFee(bytes32 _marketKey, uint256 _takerFee)",
                      "function setTakerFeeNextPrice(bytes32 _marketKey, uint256 _takerFeeNextPrice)",
                      "function skewScaleUSD(bytes32 _marketKey) view returns (uint256)",
                      "function takerFee(bytes32 _marketKey) view returns (uint256)",
                      "function takerFeeNextPrice(bytes32 _marketKey) view returns (uint256)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xe1f4319cea5ee204053b01831644645c6157ab92858d23fd35e128356a0a4590",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketBTC": {
                    "address": "0xEe8804d8Ad10b0C3aD1Bd57AC3737242aD24bB95",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xafb4bf1178923a3a18fb3fb1c1d588f4d2dbb1b118239f887121fd73891ccca8",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketETH": {
                    "address": "0xf86048DFf23cF130107dfB4e6386f574231a5C65",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketLINK": {
                    "address": "0x1228c7D8BBc5bC53DB181bD7B1fcE765aa83bF8A",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketSOL": {
                    "address": "0xcF853f7f8F78B2B801095b66F8ba9c5f04dB1640",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketAVAX": {
                    "address": "0x4ff54624D5FB61C34c634c3314Ed3BfE4dBB665a",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketAAVE": {
                    "address": "0x001b7876F567f0b3A639332Ed1e363839c6d85e2",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketUNI": {
                    "address": "0x5Af0072617F7f2AEB0e314e2faD1DE0231Ba97cD",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketMATIC": {
                    "address": "0xbCB2D435045E16B059b2130b28BE70b5cA47bFE5",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketXAU": {
                    "address": "0x4434f56ddBdE28fab08C4AE71970a06B300F8881",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketXAG": {
                    "address": "0xb147C69BEe211F57290a6cde9d1BAbfD0DCF3Ea3",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketEUR": {
                    "address": "0xad44873632840144fFC97b2D1de716f6E2cF0366",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketAPE": {
                    "address": "0xFe00395ec846240dc693e92AB2Dd720F94765Aa3",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x581b35d8a283164d2ef260ce78e0ab12e9b6c986d305e1578bf60b57e533b963",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketDYDX": {
                    "address": "0x10305C1854d6DB8A1060dF60bDF8A8B2981249Cf",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "Liquidator": {
                    "address": "0xB589Af3f2e3377A9a57da74bE1b6598926479505",
                    "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://explorer.optimism.io/tx/0x8e19a0e690e095c903e0a6146209ba792498a3dfcb9fcada97f35ea5f8439a35",
                    "deployedOn": "run.synthetix"
                  },
                  "LiquidatorRewards": {
                    "address": "0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4",
                    "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://explorer.optimism.io/tx/0x83b3f428a39f34f894092cd3cdfc6a2479c9b5ccefedc5b0c735c4477632afba",
                    "deployedOn": "run.synthetix"
                  },
                  "CircuitBreaker": {
                    "address": "0x803FD1d99C3a6cbcbABAB79C44e108dC2fb67102",
                    "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://explorer.optimism.io/tx/0xec5bf9f299e1c2729b61fbf5365de960f14fd40683e78e3bbe65e63f6875e44e",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketDebtRatio": {
                    "address": "0xd325B17d5C9C3f2B6853A760afCF81945b0184d3",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x56b24fb2151ec4d8d197fd429d80b160b7d8b6c751b7dfe6f9bdf695f5f7baa1",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketBNB": {
                    "address": "0x4Aa0dabd22BC0894975324Bec293443c8538bD08",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketOP": {
                    "address": "0x9F1C2f0071Bc3b31447AEda9fA3A68d651eB4632",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketXMR": {
                    "address": "0x3Ed04CEfF4c91872F19b1da35740C0Be9CA21558",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "FuturesMarketDOGE": {
                    "address": "0x9f231dBE53D460f359B2B8CC47574493caA5B7Bf",
                    "sourceName": "contracts/frozen/FuturesMarket.sol",
                    "contractName": "FuturesMarket",
                    "abi": [
                      "constructor(address _resolver, bytes32 _baseAsset, bytes32 _marketKey)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, uint256 index, uint256 timestamp)",
                      "event FuturesTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event NextPriceOrderRemoved(address indexed account, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event NextPriceOrderSubmitted(address indexed account, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event PositionLiquidated(uint256 indexed id, address indexed account, address indexed liquidator, int256 size, uint256 price, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee)",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function cancelNextPriceOrder(address account)",
                      "function closePosition()",
                      "function closePositionWithTracking(bytes32 trackingCode)",
                      "function currentFundingRate() view returns (int256)",
                      "function executeNextPriceOrder(address account)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingSequence(uint256) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function modifyPosition(int256 sizeDelta)",
                      "function modifyPositionWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function nextPriceOrders(address) view returns (int128 sizeDelta, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, bytes32 trackingCode)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta) view returns (uint256 fee, bool invalid)",
                      "function positions(address) view returns (uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)",
                      "function postTradeDetails(int256 sizeDelta, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function submitNextPriceOrder(int256 sizeDelta)",
                      "function submitNextPriceOrderWithTracking(int256 sizeDelta, bytes32 trackingCode)",
                      "function transferMargin(int256 marginDelta)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "RewardEscrowV2Storage": {
                    "address": "0x0c2ED9B23BAF9C5f486e175D406728d3bE46d2A6",
                    "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://explorer.optimism.io/tx/0x98c938c24f688f84a9c958529663915c254fa0c89e61efe36b24eed32dc58f19",
                    "deployedOn": "run.synthetix"
                  },
                  "ExchangeSettlementLib": {
                    "address": "0xFfa3635f5844eA0F2FcCB03cb936828F508F558b",
                    "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://explorer.optimism.io/tx/0x5b915b8b723434598e3fb9693a427078811778c7b5826402c342622ba247f934",
                    "deployedOn": "run.synthetix"
                  },
                  "DirectIntegrationManager": {
                    "address": "0x186c50515e6Ee95cEC381d7f6Fe72C67085dBCb4",
                    "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://explorer.optimism.io/tx/0x4c7483866b64f9cb8fbef25cd5f1b88cbbdb107d0b28a7a1e5c9f7849630b555",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketData": {
                    "address": "0x340B5d664834113735730Ad4aFb3760219Ad9112",
                    "sourceName": "contracts/PerpsV2MarketData.sol",
                    "contractName": "PerpsV2MarketData",
                    "abi": [
                      "constructor(address _resolverProxy)",
                      "function allMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                      "function allProxiedMarketSummaries() view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                      "function globals() view returns (tuple(uint256 minInitialMargin, uint256 liquidationFeeRatio, uint256 minKeeperFee, uint256 maxKeeperFee))",
                      "function marketDetails(address market) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValue) limits, tuple(uint256 maxFundingVelocity, uint256 skewScale) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                      "function marketDetailsForKey(bytes32 marketKey) view returns (tuple(address market, bytes32 baseAsset, bytes32 marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates, tuple(uint256 maxLeverage, uint256 maxMarketValue) limits, tuple(uint256 maxFundingVelocity, uint256 skewScale) fundingParameters, tuple(uint256 marketSize, tuple(uint256 long, uint256 short) sides, uint256 marketDebt, int256 marketSkew) marketSizeDetails, tuple(uint256 price, bool invalid) priceDetails))",
                      "function marketSummaries(address[] markets) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                      "function marketSummariesForKeys(bytes32[] marketKeys) view returns (tuple(address market, bytes32 asset, bytes32 key, uint256 maxLeverage, uint256 price, uint256 marketSize, int256 marketSkew, uint256 marketDebt, int256 currentFundingRate, int256 currentFundingVelocity, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder) feeRates)[])",
                      "function parameters(bytes32 marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD))",
                      "function positionDetails(address market, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                      "function positionDetailsForMarketKey(bytes32 marketKey, address account) view returns (tuple(tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size) position, int256 notionalValue, int256 profitLoss, int256 accruedFunding, uint256 remainingMargin, uint256 accessibleMargin, uint256 liquidationPrice, bool canLiquidatePosition))",
                      "function resolverProxy() view returns (address)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xb65cbfcc1138a04d2df792a9a33b5a84ae205d44a375f001294d8e4b4fea7f00",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSettings": {
                    "address": "0x649F44CAC3276557D03223Dbf6395Af65b11c11c",
                    "sourceName": "contracts/PerpsV2MarketSettings.sol",
                    "contractName": "PerpsV2MarketSettings",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event KeeperLiquidationFeeUpdated(uint256 keeperFee)",
                      "event LiquidationBufferRatioUpdated(uint256 bps)",
                      "event LiquidationFeeRatioUpdated(uint256 bps)",
                      "event MaxKeeperFeeUpdated(uint256 sUSD)",
                      "event MinInitialMarginUpdated(uint256 minMargin)",
                      "event MinKeeperFeeUpdated(uint256 sUSD)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event ParameterUpdated(bytes32 indexed marketKey, bytes32 indexed parameter, uint256 value)",
                      "event ParameterUpdatedBytes32(bytes32 indexed marketKey, bytes32 indexed parameter, bytes32 value)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function delayedOrderConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                      "function isResolverCached() view returns (bool)",
                      "function keeperLiquidationFee() view returns (uint256)",
                      "function liquidationBufferRatio(bytes32 _marketKey) view returns (uint256)",
                      "function liquidationFeeRatio() view returns (uint256)",
                      "function liquidationPremiumMultiplier(bytes32 _marketKey) view returns (uint256)",
                      "function makerFee(bytes32 _marketKey) view returns (uint256)",
                      "function makerFeeDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                      "function makerFeeOffchainDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                      "function maxDelayTimeDelta(bytes32 _marketKey) view returns (uint256)",
                      "function maxFundingVelocity(bytes32 _marketKey) view returns (uint256)",
                      "function maxKeeperFee() view returns (uint256)",
                      "function maxLeverage(bytes32 _marketKey) view returns (uint256)",
                      "function maxLiquidationDelta(bytes32 _marketKey) view returns (uint256)",
                      "function maxMarketValue(bytes32 _marketKey) view returns (uint256)",
                      "function maxPD(bytes32 _marketKey) view returns (uint256)",
                      "function minDelayTimeDelta(bytes32 _marketKey) view returns (uint256)",
                      "function minInitialMargin() view returns (uint256)",
                      "function minKeeperFee() view returns (uint256)",
                      "function nextPriceConfirmWindow(bytes32 _marketKey) view returns (uint256)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function offchainDelayedOrderMaxAge(bytes32 _marketKey) view returns (uint256)",
                      "function offchainDelayedOrderMinAge(bytes32 _marketKey) view returns (uint256)",
                      "function offchainMarketKey(bytes32 _marketKey) view returns (bytes32)",
                      "function offchainPriceDivergence(bytes32 _marketKey) view returns (uint256)",
                      "function owner() view returns (address)",
                      "function parameters(bytes32 _marketKey) view returns (tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD))",
                      "function rebuildCache()",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setDelayedOrderConfirmWindow(bytes32 _marketKey, uint256 _delayedOrderConfirmWindow)",
                      "function setKeeperLiquidationFee(uint256 _keeperFee)",
                      "function setLiquidationBufferRatio(bytes32 _marketKey, uint256 _ratio)",
                      "function setLiquidationFeeRatio(uint256 _ratio)",
                      "function setLiquidationPremiumMultiplier(bytes32 _marketKey, uint256 _liquidationPremiumMultiplier)",
                      "function setMakerFee(bytes32 _marketKey, uint256 _makerFee)",
                      "function setMakerFeeDelayedOrder(bytes32 _marketKey, uint256 _makerFeeDelayedOrder)",
                      "function setMakerFeeOffchainDelayedOrder(bytes32 _marketKey, uint256 _makerFeeOffchainDelayedOrder)",
                      "function setMaxDelayTimeDelta(bytes32 _marketKey, uint256 _maxDelayTimeDelta)",
                      "function setMaxFundingVelocity(bytes32 _marketKey, uint256 _maxFundingVelocity)",
                      "function setMaxKeeperFee(uint256 _sUSD)",
                      "function setMaxLeverage(bytes32 _marketKey, uint256 _maxLeverage)",
                      "function setMaxLiquidationDelta(bytes32 _marketKey, uint256 _maxLiquidationDelta)",
                      "function setMaxMarketValue(bytes32 _marketKey, uint256 _maxMarketValue)",
                      "function setMaxPD(bytes32 _marketKey, uint256 _maxPD)",
                      "function setMinDelayTimeDelta(bytes32 _marketKey, uint256 _minDelayTimeDelta)",
                      "function setMinInitialMargin(uint256 _minMargin)",
                      "function setMinKeeperFee(uint256 _sUSD)",
                      "function setNextPriceConfirmWindow(bytes32 _marketKey, uint256 _nextPriceConfirmWindow)",
                      "function setOffchainDelayedOrderMaxAge(bytes32 _marketKey, uint256 _offchainDelayedOrderMaxAge)",
                      "function setOffchainDelayedOrderMinAge(bytes32 _marketKey, uint256 _offchainDelayedOrderMinAge)",
                      "function setOffchainMarketKey(bytes32 _marketKey, bytes32 _offchainMarketKey)",
                      "function setOffchainPriceDivergence(bytes32 _marketKey, uint256 _offchainPriceDivergence)",
                      "function setParameters(bytes32 _marketKey, tuple(uint256 takerFee, uint256 makerFee, uint256 takerFeeDelayedOrder, uint256 makerFeeDelayedOrder, uint256 takerFeeOffchainDelayedOrder, uint256 makerFeeOffchainDelayedOrder, uint256 maxLeverage, uint256 maxMarketValue, uint256 maxFundingVelocity, uint256 skewScale, uint256 nextPriceConfirmWindow, uint256 delayedOrderConfirmWindow, uint256 minDelayTimeDelta, uint256 maxDelayTimeDelta, uint256 offchainDelayedOrderMinAge, uint256 offchainDelayedOrderMaxAge, bytes32 offchainMarketKey, uint256 offchainPriceDivergence, uint256 liquidationPremiumMultiplier, uint256 liquidationBufferRatio, uint256 maxLiquidationDelta, uint256 maxPD) _parameters)",
                      "function setSkewScale(bytes32 _marketKey, uint256 _skewScale)",
                      "function setTakerFee(bytes32 _marketKey, uint256 _takerFee)",
                      "function setTakerFeeDelayedOrder(bytes32 _marketKey, uint256 _takerFeeDelayedOrder)",
                      "function setTakerFeeOffchainDelayedOrder(bytes32 _marketKey, uint256 _takerFeeOffchainDelayedOrder)",
                      "function skewScale(bytes32 _marketKey) view returns (uint256)",
                      "function takerFee(bytes32 _marketKey) view returns (uint256)",
                      "function takerFeeDelayedOrder(bytes32 _marketKey) view returns (uint256)",
                      "function takerFeeOffchainDelayedOrder(bytes32 _marketKey) view returns (uint256)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xf1c38f2d2225dc9cec58904405ae326dd79f6e4df816faefbb2a87d9203de8d3",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ExchangeRate": {
                    "address": "0x2C15259D4886e2C0946f9aB7a5E389c86b3c3b04",
                    "sourceName": "contracts/PerpsV2ExchangeRate.sol",
                    "contractName": "PerpsV2ExchangeRate",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OffchainOracleUpdated(address offchainOracle)",
                      "event OffchainPriceFeedIdUpdated(bytes32 assetId, bytes32 priceFeedId)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function CONTRACT_NAME() view returns (bytes32)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function isResolverCached() view returns (bool)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function offchainOracle() view returns (address)",
                      "function offchainPriceFeedId(bytes32 assetId) view returns (bytes32)",
                      "function owner() view returns (address)",
                      "function rebuildCache()",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function resolveAndGetLatestPrice(bytes32 assetId) view returns (uint256 price, uint256 publishTime)",
                      "function resolveAndGetPrice(bytes32 assetId, uint256 maxAge) view returns (uint256 price, uint256 publishTime)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setOffchainOracle(address offchainOracle)",
                      "function setOffchainPriceFeedId(bytes32 assetId, bytes32 priceFeedId)",
                      "function updatePythPrice(address sender, bytes[] priceUpdateData) payable"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x4e20eb2e9e5681d54deb826cf24db047bed05af65c67a25ad36101e2256a407d",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyETHPERP": {
                    "address": "0x2B3bb4c683BFc5239B029131EEf3B1d214478d93",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateETHPERP": {
                    "address": "0x6aBC19F21D5Ce23abf392329Ef7B118c7b5F2AA8",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketETHPERP": {
                    "address": "0x7c1560f20907Ed41aC740873FACF9E3Dce4f18DD",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x3078de6b4f306d2d01831bc8da2990ce4c9c9221f47b56e78fc9e4eb0126576f",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsETHPERP": {
                    "address": "0x989D359dBF9C531aE6C305c37AC37220b8Dd99Eb",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBTCPERP": {
                    "address": "0x59b007E9ea8F89b069c43F8f45834d30853e3699",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBTCPERP": {
                    "address": "0x68287419FcFA1c186515E99a35FF3c970B3B3C66",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBTCPERP": {
                    "address": "0x352B138d7F6500fC71A014F3C7eD48B6d99fbe4d",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBTCPERP": {
                    "address": "0xE662e0aF5fCaBe78aaaF4cFF0a13ca69512Fc481",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyLINKPERP": {
                    "address": "0x31A1659Ca00F617E86Dc765B6494Afe70a5A9c1A",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateLINKPERP": {
                    "address": "0xEed3618dd59163CC6849758F07fA9369823aa710",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLINKPERP": {
                    "address": "0x885B3fF84a0Fe82eb97A23093421504e42cc8f74",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsLINKPERP": {
                    "address": "0x2903C913BBbac9fBb6c4A080210cEd9EeC1f66a6",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySOLPERP": {
                    "address": "0x0EA09D97b4084d859328ec4bF8eBCF9ecCA26F1D",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSOLPERP": {
                    "address": "0x435e6e499610B6De3510F0Cb047D3575C7bca6E1",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSOLPERP": {
                    "address": "0x00FC152C7Dc2dF709161dcc8bA541eB77E612D4E",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSOLPERP": {
                    "address": "0xFaf84737Dae0DA0c093BC172e32FB845016Df642",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAVAXPERP": {
                    "address": "0xc203A12F298CE73E44F7d45A4f59a43DBfFe204D",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAVAXPERP": {
                    "address": "0xC02AF29944301c8FbA606a7dF8ef446dc103238C",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAVAXPERP": {
                    "address": "0xE4bC6Fce51de6198Ac13eDB55E60B5ca67A4d7C9",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAVAXPERP": {
                    "address": "0xBb1250d0D96a22CF62ee12AEcC2FA684F3Ca04E8",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAAVEPERP": {
                    "address": "0x5374761526175B59f1E583246E20639909E189cE",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAAVEPERP": {
                    "address": "0x3773dfbbc894bfa9DF22855FCec1D1572eFC5e0a",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAAVEPERP": {
                    "address": "0x42AAa33a13bDac31D8B9e04D9d5Db7F9FC8C0119",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAAVEPERP": {
                    "address": "0x619676Df5C402D0eb008104e9a658C1F65DBF702",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyUNIPERP": {
                    "address": "0x4308427C463CAEAaB50FFf98a9deC569C31E4E87",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateUNIPERP": {
                    "address": "0x0db1B224C5203fA22CFdFA3F92519D150ad86612",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketUNIPERP": {
                    "address": "0xd5ea02e6324693BaCbDE3E63a3C72E5a227a4dDb",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsUNIPERP": {
                    "address": "0x90efaafEc5B183D09bc5b2cE81E8A12e4c2A6002",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyMATICPERP": {
                    "address": "0x074B8F19fc91d6B2eb51143E1f186Ca0DDB88042",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateMATICPERP": {
                    "address": "0x82f962aF60e6627d3ea5Db5Fd7e1a57f7E1Ef2B8",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketMATICPERP": {
                    "address": "0x496B1C5EEf77E6Ea7Ff98bB22b5ec01Dd4CFdeDA",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsMATICPERP": {
                    "address": "0x2F94942764C997e777F7Ded68679a5eCC6B7514c",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAPEPERP": {
                    "address": "0x5B6BeB79E959Aac2659bEE60fE0D0885468BF886",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAPEPERP": {
                    "address": "0x089af032687993426A628184cb3D0610d2cda6F2",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAPEPERP": {
                    "address": "0x74Eb1E2EfaDDde923f92F31c209a788475A20A1C",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAPEPERP": {
                    "address": "0x2891452e2068Ac9471E3610e956510C46B4EffE5",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyDYDXPERP": {
                    "address": "0x139F94E4f0e1101c1464a321CBA815c34d58B5D9",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateDYDXPERP": {
                    "address": "0xac3F9a2753f185731324907E6802395d59Bb62a2",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketDYDXPERP": {
                    "address": "0x65Df3Ec0d5fd06a2f29C68e7894804b496945ef2",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsDYDXPERP": {
                    "address": "0x2e26D4beC1464409c154f653A238cE5BAAA00198",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBNBPERP": {
                    "address": "0x0940B0A96C5e1ba33AEE331a9f950Bb2a6F2Fb25",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBNBPERP": {
                    "address": "0x3DfBB7D0770e6Eb77fBEc89C0840E9A0f29C76Ff",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x1e385563c25c2f2e6ef1f6891f811c70bb63a7a17753f5bfdd0ddee45c8ef62f",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBNBPERP": {
                    "address": "0xf4Aa6bF149873Cb965061f845407091eF9f50722",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBNBPERP": {
                    "address": "0xA227c833786E46d53cf9E9a14cFF906477335D91",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xc0cbd887f01108c7042440ad19cccafb7128520e2e57426e8bf901eddfba4da8",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyOPPERP": {
                    "address": "0x442b69937a0daf9D46439a71567fABE6Cb69FBaf",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateOPPERP": {
                    "address": "0xBdD0D09f73AC6f8Ef59A71baab283C12dcab06fA",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketOPPERP": {
                    "address": "0x102AFf35C746B44a639A1cE344A1461306835e86",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsOPPERP": {
                    "address": "0x2fffEBeD35931abD9014A39AE41fa26D511E31F4",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyDOGEPERP": {
                    "address": "0x98cCbC721cc05E28a125943D69039B39BE6A21e9",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateDOGEPERP": {
                    "address": "0x0A0A22189c8732cA089D6fB6709e65140a446a41",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketDOGEPERP": {
                    "address": "0xdcf2D2C4949D6358bF05cfd88dAE83276cf7552b",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsDOGEPERP": {
                    "address": "0x9c79C19FF4d1a6531D9a4F91e96534F5D002dF8B",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXAUPERP": {
                    "address": "0x549dbDFfbd47bD5639f9348eBE82E63e2f9F777A",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXAUPERP": {
                    "address": "0xc564040630d6929070D85DF237FDf60F6bfE4b5F",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXAUPERP": {
                    "address": "0xd6A06A8c73265e471639bd953D24832bBcd548fd",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXAUPERP": {
                    "address": "0x9A3Ecffd8Cb317685EF0Df7B4aF5C4c9d1aF53eC",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXAGPERP": {
                    "address": "0xdcB8438c979fA030581314e5A5Df42bbFEd744a0",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXAGPERP": {
                    "address": "0x28E1CE29aCdFe1E74e6fA18591E1D5481D2085a1",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXAGPERP": {
                    "address": "0xe0D10647D92749Da9bd5c250dF2EEF2e4110a8c3",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXAGPERP": {
                    "address": "0x9BdC86302479112e61f3BA7761dC704f7044D304",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyEURPERP": {
                    "address": "0x87AE62c5720DAB812BDacba66cc24839440048d1",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateEURPERP": {
                    "address": "0x4eD08210706F5b74584cC7F03b38d800DC27936B",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketEURPERP": {
                    "address": "0xcE8Bcb110101D6cDe21d6c76bD799261385AA950",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsEURPERP": {
                    "address": "0x5Ade35CEdDEd082BDB27A94e2A20aC327a67172e",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyATOMPERP": {
                    "address": "0xbB16C7B3244DFA1a6BF83Fcce3EE4560837763CD",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateATOMPERP": {
                    "address": "0xe46Ef097d2CF6FF95Ad172d5da0E65A0dE9e2468",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketATOMPERP": {
                    "address": "0x9597494F1675F1D62Edb03dee40D84828EF5B295",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsATOMPERP": {
                    "address": "0xA92C0142c3239e8e07cbb9f33e4C0dD4Fc19089b",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAXSPERP": {
                    "address": "0x3a52b21816168dfe35bE99b7C5fc209f17a0aDb1",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAXSPERP": {
                    "address": "0xcfdC039BDB8E4b578857b759f27D6BAa2617EDD3",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAXSPERP": {
                    "address": "0x4eB7Ce307DE597F854124D018ec9edE0A8D57931",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAXSPERP": {
                    "address": "0xcaDD53c5fAAe5111c7a0429Ee1f99A695433Fb17",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFLOWPERP": {
                    "address": "0x27665271210aCff4Fab08AD9Bb657E91866471F0",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFLOWPERP": {
                    "address": "0xECc8A6Af92d825ACC5B871993FC83d86CCEd5a19",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFLOWPERP": {
                    "address": "0x661c2479BffE01eB99EeC9169149BaA5DAbeB883",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFLOWPERP": {
                    "address": "0x73d8fD1dC5E38cEF6754Fc5009015CaaEE218461",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFTMPERP": {
                    "address": "0xC18f85A6DD3Bcd0516a1CA08d3B1f0A4E191A2C4",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFTMPERP": {
                    "address": "0x1951c6b2D9DD9A3CF10aaC5e79A7EcA0a5300BB5",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFTMPERP": {
                    "address": "0x1454ba0f1c5Fcb401cfe72E028114FEE022990EE",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFTMPERP": {
                    "address": "0xab0d9E3FF817faa88F4bBC783CFA6D55E5f10F3E",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyNEARPERP": {
                    "address": "0xC8fCd6fB4D15dD7C455373297dEF375a08942eCe",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateNEARPERP": {
                    "address": "0x779f424d3B3A617beB4a0DB1C21D5505De297a8A",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketNEARPERP": {
                    "address": "0x4df6E29C07c51e5e7F7a98aB90547861Aba42B56",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsNEARPERP": {
                    "address": "0xC314CFB9C5706f316F3916543aD2F3e4c3aa2d02",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAUDPERP": {
                    "address": "0x9De146b5663b82F44E5052dEDe2aA3Fd4CBcDC99",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAUDPERP": {
                    "address": "0x6d62aA1535C7C33D7f6592562f091D193E180c57",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAUDPERP": {
                    "address": "0xAF89069dC03d65C1b3091D770a8D3b4D02126849",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAUDPERP": {
                    "address": "0x7D0256E0936103b32AAD59E80257B59E988E75e2",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyGBPPERP": {
                    "address": "0x1dAd8808D8aC58a0df912aDC4b215ca3B93D6C49",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateGBPPERP": {
                    "address": "0x733a69D080B10Bc897452eF783020cdFe012974A",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketGBPPERP": {
                    "address": "0x7690Af487c06674785daEF91EF6576464B46D249",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsGBPPERP": {
                    "address": "0x3f30190416EBdE7F50749cf3579Af1beeF2E7Fa8",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "DebtMigratorOnOptimism": {
                    "address": "0xA6bc30d854c2647574921c4AF442008DB7d32ad5",
                    "sourceName": "contracts/DebtMigratorOnOptimism.sol",
                    "contractName": "DebtMigratorOnOptimism",
                    "abi": [
                      "constructor(address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event MigrationFinalized(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 finalizeDebtMigration(address account, uint256 debtSharesMigrated, uint256 escrowMigrated, uint256 liquidSnxMigrated, bytes debtPayload)",
                      "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://explorer.optimism.io/tx/0xe4cfe3ad66ba30f949a2ad09486b5c707b8fea11f7c9e955de8d948a2e404c96",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyARBPERP": {
                    "address": "0x509072A5aE4a87AC89Fc8D64D94aDCb44Bd4b88e",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateARBPERP": {
                    "address": "0x6393113A43A4A88b9F3D53b4b21e7feEb5d3D821",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketARBPERP": {
                    "address": "0x5b37D50F3b7F03884d7cD005CDc7120F5060808c",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsARBPERP": {
                    "address": "0x23b2558318E4955DfC3402567E22B1FF102DB3DD",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBNBPERP": {
                    "address": "0xE7C25f3E803C7eb5a08d0332D0c28417241d5462",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x408cc78fbbc59617799307c0fd32aece777efe9f31c6792c50aeca0794dc457e",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBNBPERP": {
                    "address": "0x2ae5608AB3fb3863a713715f3F59216bCAbc5150",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xc14f7c454c9182af6139df41589b3fbbd15be98f0920850becb5ff229058bff2",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBNBPERP": {
                    "address": "0x210BA565130f2aF399fD8435a279b22894e8D096",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x9f0c9cfe9d602339d845f2cb4e4b6be96065e545a39f00782106a6505b003ee5",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAXSPERP": {
                    "address": "0x73d3c278BE973624AEA70ef89C61113E55317AB6",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAXSPERP": {
                    "address": "0x6FBcabaa42cE1818f23a0b909dbD9BC7691FC1E6",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAXSPERP": {
                    "address": "0x2b8cE8a8ABF039DB01B2ad7F512b9157467eb264",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAAVEPERP": {
                    "address": "0xFCce7f97100C0Bdd63c3d53ce0Ac35bE1F900a5e",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAAVEPERP": {
                    "address": "0xc4786C4484C06bD463f124EBeF2175f67759EA1A",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAAVEPERP": {
                    "address": "0xf73fA296DF4C46b7182B14AC7862f6E08Da84150",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFLOWPERP": {
                    "address": "0xdACBFD99Bb915739B58ac9312c78A23ACbACB6Db",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFLOWPERP": {
                    "address": "0x81b5c28e3905233bc4B96B182160593779d2CB83",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFLOWPERP": {
                    "address": "0x19BA5013824a45Ee0F9E4738c8618d40bA11234a",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateNEARPERP": {
                    "address": "0x767F446FbD3F2e5c91292D9FA51a44102a89117d",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentNEARPERP": {
                    "address": "0x699c039c9E21d49B8c38768619942dfaB6E8E38d",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionNEARPERP": {
                    "address": "0x3403A3430e4a62577e70fB48e070268D84a8F910",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAUDPERP": {
                    "address": "0xd1b73C8251acf068ea03A42177bD1E3F610F9fB4",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAUDPERP": {
                    "address": "0x010a2f40B3b09FdBc60cb06f1b7F1a2A757d0eF2",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAUDPERP": {
                    "address": "0x0D8121E17b74e537286304c7804a5bC592A7964f",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateDYDXPERP": {
                    "address": "0x1f6B92EB7aA3dacA3DcCBaD74928827CF003f9A4",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentDYDXPERP": {
                    "address": "0xdFaEBe6A2B2BDAc52aC2E172e0175988d7472c60",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionDYDXPERP": {
                    "address": "0xE6aC817Cfdd83073aec079cD9EBb9c35479b7665",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateGBPPERP": {
                    "address": "0x6cb4EEcE70eF0eB8E7f81f4A0dE0FB1521E77F74",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentGBPPERP": {
                    "address": "0xc8590aEb1484e642f7321bd0586B6DB3165a862C",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionGBPPERP": {
                    "address": "0xD3d59d4b8B504Ea6e49c5788Fe1BC7505c6f61EA",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAPEPERP": {
                    "address": "0x0b1E9543c3Cda15d431DCdc94724F3FF3caDAc1F",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAPEPERP": {
                    "address": "0x3Cf1BE829C5eE73630482D2E92bF9461Adf1b213",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAPEPERP": {
                    "address": "0xdDeB6cb0D6050C9221D037Aa099a2D11C443548a",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFTMPERP": {
                    "address": "0x6680180094DF2421A9c5140b207f95759C9080Dc",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFTMPERP": {
                    "address": "0x88b7BD7A245F2fB597de88a6EDA0CAEe047f607a",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFTMPERP": {
                    "address": "0x50197701bd09f8DBDd6716b1b9080574819a3776",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateUNIPERP": {
                    "address": "0xB63bEF5ccC5e9316961CDCD54129743AE8455Bc4",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentUNIPERP": {
                    "address": "0xB0b6b79Fbb09290b0663D6D767FFCEE7EA742428",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionUNIPERP": {
                    "address": "0x418d195155058ABC4A26D59c8A6CE83A7d52288A",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateATOMPERP": {
                    "address": "0xCc60342649c58A9D5a5293030CCBc230b1231127",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentATOMPERP": {
                    "address": "0x2c5fc227AF9100F8d6FC963549De3e3BadA8c3A9",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionATOMPERP": {
                    "address": "0x76FB9F147d40480b6e030c09CD53fDF912C6178f",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXAGPERP": {
                    "address": "0x35B9D048d4CB99bB34d59fBF962E86B8Ee44760F",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXAGPERP": {
                    "address": "0xF40E46c74CA3E72d8dC490493FA9499999C6256E",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXAGPERP": {
                    "address": "0x546Ee4A4299dC3d3b64D6a889759E04aCef6B92D",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateEURPERP": {
                    "address": "0x2A77E3382e205D586CA6E4C9F8D7dc6E6bB2054d",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentEURPERP": {
                    "address": "0x4BA1bdbc15281775a8437EAcdbAF8fbfD3A6a224",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionEURPERP": {
                    "address": "0xEAacaDa91015c11D43bD788F09B2d54decfdc2e8",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateMATICPERP": {
                    "address": "0xe37858391bC66B1B8838a7459e59A802642284Fa",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentMATICPERP": {
                    "address": "0x7F059E5FAA4972B098C7539A6721c596BDc942de",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionMATICPERP": {
                    "address": "0x8e1B638EF5E796504BE87fB81943e613875EcabE",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateDOGEPERP": {
                    "address": "0x277EFAFCCB3683Fd0DD5facCa8f37E3130D359Fb",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentDOGEPERP": {
                    "address": "0x128d0Eb5E26Cf95128AA9aC395f88dcE705AedAc",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionDOGEPERP": {
                    "address": "0x374f2D3353bd664a2B25508df4a3b58939999E1B",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateLINKPERP": {
                    "address": "0x7D5bf858398DEa0186988A2BfDCF86aE22dd8612",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentLINKPERP": {
                    "address": "0x560F562be696BaEfA0029c954cC69352bfb33e41",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionLINKPERP": {
                    "address": "0xd3f1BDdC7F25eAfDB939d6B4f62Cb9d5b19d346F",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateOPPERP": {
                    "address": "0xE9Dc2C1008b1322c21c1Fb45CD101f1b7A0C9f73",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentOPPERP": {
                    "address": "0xF9F70F783BE3ee6ebde9504BA0AC0730151b0a22",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionOPPERP": {
                    "address": "0xbF1E06FaCb51B8A9223F266F303a88d3Dfc46226",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSOLPERP": {
                    "address": "0x80cbc948c5dba55dc829472373e9F20203E13EB2",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSOLPERP": {
                    "address": "0xA5BAff7D9928AE32C5e1ff441e4575951CB01111",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSOLPERP": {
                    "address": "0x9A90C6FA8828baCD5B9eDD513F77bA7e4528C7E8",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXAUPERP": {
                    "address": "0x2493291196F02794465b89Ef50F80C60fa8d0E89",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXAUPERP": {
                    "address": "0x76c6C768ac45F0a3d266FF3e73257937Fc962FE6",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXAUPERP": {
                    "address": "0x1a83bBccFaB68A8bF901c298c5dB5ACb8a2C7b05",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAVAXPERP": {
                    "address": "0xB1ad6dD82d086F31d2143080b0064aBc44cf2b5B",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAVAXPERP": {
                    "address": "0x9D6Db4d562D670a987b5D9e07Db71bab33Eb1428",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAVAXPERP": {
                    "address": "0xC56a0198c08c3610980340660C39f6D6C7Ea765a",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateARBPERP": {
                    "address": "0xeF7F0BC2D93caEaA824EE56592e3C2E9d5Bf0C34",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentARBPERP": {
                    "address": "0x99ae21FeB485A89252B9bFB394E6Eb8c736436Bd",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionARBPERP": {
                    "address": "0x31Ec26dE77aA4c859b7a15A37D2Fc9EB61289C14",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateETHPERP": {
                    "address": "0xb474425297945dA2F38423cDAb98f63860412F14",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentETHPERP": {
                    "address": "0x3ADA6D040314676B1e8A4BC1a0a16060b42A00eF",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionETHPERP": {
                    "address": "0x2227af48ec971E3C786f3E06064CbA455724d6ba",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBTCPERP": {
                    "address": "0x0679e0fa9ecD77e2Bd900555CbE10a5Dd519A5fd",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBTCPERP": {
                    "address": "0x527b99E3d31F71D2414CC2dbAbE0d527f9160926",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBTCPERP": {
                    "address": "0x33C8daF48c691C54897070C3621fdecC249C7202",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyLDOPERP": {
                    "address": "0xaa94C874b91ef16C8B56A1c5B2F34E39366bD484",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateLDOPERP": {
                    "address": "0x1d46c117E7e9A5dd242724a1952911ECe78e0831",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLDOPERP": {
                    "address": "0xdCB4ec61fee47955462FD1F3fa89A6F32cc6A800",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateLDOPERP": {
                    "address": "0x7784B850922d995965846d8a89b0C90bEf470F15",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentLDOPERP": {
                    "address": "0x6BAD3Be3A7B3853739729833425a8b22737D0dAC",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionLDOPERP": {
                    "address": "0x8D08A8A066E9606F854a3C68FcC730e406319996",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsLDOPERP": {
                    "address": "0xEbf81425e81e2A879C139DB3B3891B0A635dCF7F",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyLTCPERP": {
                    "address": "0xB25529266D9677E9171BEaf333a0deA506c5F99A",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateLTCPERP": {
                    "address": "0xf5826f24805c162c696b79ba31ebC6FB8003d475",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLTCPERP": {
                    "address": "0x61a7AE08B9061F96934a2093cbe59F839355FFF5",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateLTCPERP": {
                    "address": "0x556F920a83FaBa9BE8019a33CbA4898fDB38d130",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentLTCPERP": {
                    "address": "0x7733b88Bf971b9c77cC3C1B64a2Ef4fC06b08017",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionLTCPERP": {
                    "address": "0x869d17fd46F76f0e439bec2992f2D45B40253f88",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsLTCPERP": {
                    "address": "0x184D5A9f37D0ca2151102958D174E21Db6605069",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyADAPERP": {
                    "address": "0xF9DD29D2Fd9B38Cd90E390C797F1B7E0523f43A9",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateADAPERP": {
                    "address": "0xAe3D1b55CBFFc11693257FB5Dc41DE32F1E9EC7A",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketADAPERP": {
                    "address": "0x6A071D06b9e317A5Bc0780dD5E7eE8C41c5C3cB8",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateADAPERP": {
                    "address": "0x4a74Fc79618B018B0Db1dfeea225B38666D32871",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentADAPERP": {
                    "address": "0x59798C3ec713213C274Bd8827642DAF2A798181e",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionADAPERP": {
                    "address": "0x18970122d688B97023Edc44DA27A51230dC6799c",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsADAPERP": {
                    "address": "0x703f070BC98f835EDc5DE183A537d837a7c65C9F",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFILPERP": {
                    "address": "0x2C5E2148bF3409659967FE3684fd999A76171235",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFILPERP": {
                    "address": "0x71FD2f49f289d75D0C1E108c97Fcb2a4c54Ab424",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFILPERP": {
                    "address": "0x2dc99068ad1D5b437B63c2aFA5c3D30a23084764",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFILPERP": {
                    "address": "0xCEEC52eae64958A7F469d2Cf919102bD198092dc",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFILPERP": {
                    "address": "0x6F910A87565c581e101FBba25fE5B2570181794C",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFILPERP": {
                    "address": "0x530F4A84e99eF78A5C2A4E64Cd5d126b40c99242",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFILPERP": {
                    "address": "0x836804b2C489704068185D190C1763b9a5adDa93",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyGMXPERP": {
                    "address": "0x33d4613639603c845e61A02cd3D2A78BE7d513dc",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateGMXPERP": {
                    "address": "0x9f564ffB60945DEc03fB8DdEF491465Dd9b4C9Fb",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketGMXPERP": {
                    "address": "0x222eb6ce2461798382D044ABE53edcf8752B47f7",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateGMXPERP": {
                    "address": "0xfAFe2eC4999AeFD162aA3c0abA16D08235662606",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentGMXPERP": {
                    "address": "0x9053e51047BA7f0141f3d1F23AC7Ec6861bf9Fba",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionGMXPERP": {
                    "address": "0x3382A15bd1956e908a1EF2D027F92b2Bfc84558c",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsGMXPERP": {
                    "address": "0x9a05f2F00Ca385ba7d4368737ec1485384Ca8874",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyAPTPERP": {
                    "address": "0x9615B6BfFf240c44D3E33d0cd9A11f563a2e8D8B",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateAPTPERP": {
                    "address": "0x91a4F7125A6F7ec14c41d39F0AC681e8e387DA1C",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketAPTPERP": {
                    "address": "0x9B1c2055465e1F1AaEa14d68fC688175cf46cdfe",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateAPTPERP": {
                    "address": "0xF6Af0F6E69A24Bc753382a9C53d568D83515f167",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentAPTPERP": {
                    "address": "0xD681CF2419bb3F85732412164b6542843E9A64A5",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionAPTPERP": {
                    "address": "0xfD9E252Cd1Fa456AaD9fC592608e86FaBcF40F77",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsAPTPERP": {
                    "address": "0xE44179Cb9623C3bB7a9BCF54b4B1DD5ad8c672e3",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySHIBPERP": {
                    "address": "0x69F5F465a46f324Fb7bf3fD7c0D5c00f7165C7Ea",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSHIBPERP": {
                    "address": "0xc2c71156d9DDe42F412e83a3E169283Cd70F3E9D",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSHIBPERP": {
                    "address": "0xA198D00DC35f8367BEB48f27DE9032C8209dC22C",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSHIBPERP": {
                    "address": "0x640cca1164154b7F5e7b5c2eeF6D757246Cd3e2B",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSHIBPERP": {
                    "address": "0xf037641c69c1156530c182B970045EBA6289553b",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSHIBPERP": {
                    "address": "0x62137897f2b09c588327D80CBbFB9C6018c352Ef",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSHIBPERP": {
                    "address": "0xe4D25C54759ecd13c10e6c64aB9127c6408F9CfF",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBCHPERP": {
                    "address": "0x96690aAe7CB7c4A9b5Be5695E94d72827DeCC33f",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBCHPERP": {
                    "address": "0xa664fCA1879C9cA2E6CFeD49C3C855352016E4C5",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBCHPERP": {
                    "address": "0xcB9208c6091dF778BF405f3938B6A6beF427e37E",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBCHPERP": {
                    "address": "0xe0c39E7b896E7fd1F9fd221079502BDa23e81115",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBCHPERP": {
                    "address": "0x9F77aF45F13738Be8D3bb772A86310f4e452aFd4",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBCHPERP": {
                    "address": "0xA14849ad93999d8B184A1d61FbA7B4fFbD24f96C",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBCHPERP": {
                    "address": "0x0bB16a341EdA6b5e0768b55eb091Cd914bE96bc1",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyCRVPERP": {
                    "address": "0xD5fBf7136B86021eF9d0BE5d798f948DcE9C0deA",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateCRVPERP": {
                    "address": "0x5A155c378d66d8EBa2262e744738a76d913E5945",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketCRVPERP": {
                    "address": "0xcA3AF1757f1ce97956c289ccc6B171A14acD85Ca",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateCRVPERP": {
                    "address": "0xB2E26D988A5557b571bF9833a8a60d25799293E1",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentCRVPERP": {
                    "address": "0x9E3c1F1f5868701A4D8CaA58D61dF2F74aeFe926",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionCRVPERP": {
                    "address": "0x53bD23EEd35C00EF09D4Ebd8F71005b0DCC97E1a",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsCRVPERP": {
                    "address": "0x94cF2BB95BdC525f90311dDb2eDCd1C481e81A9D",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyPEPEPERP": {
                    "address": "0x3D3f34416f60f77A0a6cC8e32abe45D32A7497cb",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStatePEPEPERP": {
                    "address": "0x2365D3e91E585c974c28a5B82d6AA266F68a44Ad",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketPEPEPERP": {
                    "address": "0x5Be1C70475422255684E4f312E57Fe782a5102F4",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidatePEPEPERP": {
                    "address": "0x4dFB42753f735fBbbb2b1312F72eB05D905365AD",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentPEPEPERP": {
                    "address": "0x41aE759b8e75f4EE544cD08B4369e5F4719561FE",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionPEPEPERP": {
                    "address": "0xe9e46a7323d54af1550B931c8bD6F8615f079379",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsPEPEPERP": {
                    "address": "0x17ccEfad2AE2784Af7012af04c76bdafAa4E7b37",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySUIPERP": {
                    "address": "0x09F9d7aaa6Bef9598c3b676c0E19C9786Aa566a8",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSUIPERP": {
                    "address": "0x2cCaf0500142F8E563fF361C3b34AbEe16B6205d",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSUIPERP": {
                    "address": "0xB7c04aa1E49BBEF0A5D7A0E7885b54c9E9309704",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSUIPERP": {
                    "address": "0xcfe154521ab1fc995a6bc68880Af9888221FD27C",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSUIPERP": {
                    "address": "0x700EDD66fB75516427C793f5Fe376f6fe1aCc932",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSUIPERP": {
                    "address": "0xA2C0843c8cb9f29Fa40fc0ffd2B4995A0f05C15c",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSUIPERP": {
                    "address": "0x748f78A5dC4a4325BcdF251DeE85E481a2dC6929",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBLURPERP": {
                    "address": "0xa1Ace9ce6862e865937939005b1a6c5aC938A11F",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBLURPERP": {
                    "address": "0x6aCC3519d10E46E5a228615c9d4B57CC0113A212",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBLURPERP": {
                    "address": "0x4Fc5beD961d41ba5F198DE7484637800Dac78eb1",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBLURPERP": {
                    "address": "0x325a0fA8e3A0A40Fa82bc6D222B1af765Ab77B36",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBLURPERP": {
                    "address": "0xFf82e4012816CC01093565C6d2EE2Af83f3cb3Ae",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBLURPERP": {
                    "address": "0x2214cD24c13D7B36432C66e73984Bc44D479CD51",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBLURPERP": {
                    "address": "0xeD20040b21FDf6d68336F6E61AD05F235e3eA9f3",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXRPPERP": {
                    "address": "0x6110DF298B411a46d6edce72f5CAca9Ad826C1De",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXRPPERP": {
                    "address": "0x0Ea666319f4f0eAa7f16711f2fe7F4B159957f48",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXRPPERP": {
                    "address": "0x995f710838a070D43D94d4420194Bb09cFC332E6",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXRPPERP": {
                    "address": "0x95366aC32995d4C31f72C2D0029211E19bF6eB7d",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXRPPERP": {
                    "address": "0x7F4B56A8Fe268666d95e64F16A96bBDCfB89DF54",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXRPPERP": {
                    "address": "0x28bDE5C67624B2eF7Fa27C9C9B0678fE3009913e",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXRPPERP": {
                    "address": "0x047B3714f3B3adFC1aa1F31c710ca3cA967Aeaa3",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyDOTPERP": {
                    "address": "0x8B9B5f94aac2316f048025B3cBe442386E85984b",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateDOTPERP": {
                    "address": "0xCF33a35F0f2095ABdD0C81dbde3A1cD37bE0c5cC",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketDOTPERP": {
                    "address": "0x9Cd7ccac32231ccb842f14368B3DA3B33f20d3BE",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateDOTPERP": {
                    "address": "0x4C2A2390c2908E0e489F8a487CE332f7CD6c1357",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentDOTPERP": {
                    "address": "0x4d178B91a3B16a124d2A90d944dB8C70A334FBdA",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionDOTPERP": {
                    "address": "0x5C4fD006f3dC9C6a2259B2fb82CfD500056978ec",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsDOTPERP": {
                    "address": "0x29533e33226E5383A36eb4BF515Ff067379eD841",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyTRXPERP": {
                    "address": "0x031A448F59111000b96F016c37e9c71e57845096",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateTRXPERP": {
                    "address": "0x52cCa59bFa0228F41Ab69558F5f2EE3739323c02",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketTRXPERP": {
                    "address": "0x093583D2135aF25ab49a4E148698ee0125bCF2F8",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateTRXPERP": {
                    "address": "0x5076C4fa56fb78b28eF4a542c7ef2B0F95186e58",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentTRXPERP": {
                    "address": "0xc254F4A4Bc16218eD30A3D674d8fae3f25B6Af5d",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionTRXPERP": {
                    "address": "0xC20e63aB2F1303079a6cC31013534e3989CFC8dc",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsTRXPERP": {
                    "address": "0xD1c8E9B404053560bc6A0302c4395FfB0FfD1C79",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFLOKIPERP": {
                    "address": "0x5ed8D0946b59d015f5A60039922b870537d43689",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFLOKIPERP": {
                    "address": "0x94a1D572baE06A31C029D4C26e1fA705f54286ef",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFLOKIPERP": {
                    "address": "0x47F99a380cc020b5DB4B000aF445a232081ceEe7",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFLOKIPERP": {
                    "address": "0xfc328bb84082AAe68cC47d7f032b177b8da348bc",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFLOKIPERP": {
                    "address": "0x3FCC706dd9ab9Ac3DAF6f205AbE26712ddcBbd3E",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFLOKIPERP": {
                    "address": "0xF52Df12Dd62731a11180403212EE67cb5F4d6345",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFLOKIPERP": {
                    "address": "0xab5745E6cD602742636491409E18a73E223C8aff",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyINJPERP": {
                    "address": "0x852210F0616aC226A486ad3387DBF990e690116A",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateINJPERP": {
                    "address": "0x4C35c27fF8F0dD039B4C4F0D670f2D58f6215c9C",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketINJPERP": {
                    "address": "0x84e12CCEa1311DA4090002279C2f46EC828199f3",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateINJPERP": {
                    "address": "0xc2aA78B6d0D2A72557EdD79845b43BEE4eA4DD10",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentINJPERP": {
                    "address": "0x0cDFdbF84Ac56D54657d3895602BB2982fD1EFE4",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionINJPERP": {
                    "address": "0x53bAd7c8cE47Fa070e5BB25adea796409E0e8058",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsINJPERP": {
                    "address": "0x3713BC72567A6C797AC69678f72a5A0d80c56dC9",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySTETHPERP": {
                    "address": "0xD91Db82733987513286B81e7115091d96730b62A",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSTETHPERP": {
                    "address": "0x777A913412D576532120ac1d266d4C908e584DB2",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSTETHPERP": {
                    "address": "0x69125856Cfbadba925CE8345D0A5dE98F375920E",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSTETHPERP": {
                    "address": "0xFD306A2B2e78E35F573f8593aeeD50d07ceAB6BD",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSTETHPERP": {
                    "address": "0x9B0071d4Ee4a078dbdD5100799D8eA700A6dA709",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSTETHPERP": {
                    "address": "0x02e85b8dD638a5FabD9D67802A92721D2e18fc6d",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSTETHPERP": {
                    "address": "0x0060b9F4eaA97b310Bf74947EdCdFE2967e54D7d",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyETHBTCPERP": {
                    "address": "0xD5FcCd43205CEF11FbaF9b38dF15ADbe1B186869",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateETHBTCPERP": {
                    "address": "0xd10cd91683301c8C15eDA40F59e73d1b0BcfECDD",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketETHBTCPERP": {
                    "address": "0x3091AcaEAF27985F33a8a4b0EefEa49dc60c8506",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateETHBTCPERP": {
                    "address": "0x0DAeA0367d7b82644C4db4D992cF4ba39c8A359C",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentETHBTCPERP": {
                    "address": "0x978D4b5438D3E4EDf4f03682e5A53b48E56604c5",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionETHBTCPERP": {
                    "address": "0xb16a8B06318C78c274f3BBc5CC5C9191B0d0c1A3",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsETHBTCPERP": {
                    "address": "0xe082Bd0Ac75c78196F312150A298ade27aebecB0",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyETCPERP": {
                    "address": "0x4bF3C1Af0FaA689e3A808e6Ad7a8d89d07BB9EC7",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateETCPERP": {
                    "address": "0x04412b2aE241C602Be87Bc1114238d50d08398Fb",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketETCPERP": {
                    "address": "0x79AE4AAC073c6f153644647Af14F202ca8cc39C5",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateETCPERP": {
                    "address": "0x86770a2940efF6a778768592B42A6668FfB162a4",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentETCPERP": {
                    "address": "0xAD35498D97f3b1a0B99de42da7Ad81c91156BA77",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionETCPERP": {
                    "address": "0x98d601E04527a0acBB603BaD845D9b7B8840de1c",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsETCPERP": {
                    "address": "0x4e8f55f1948D3E61A1FD3Cd38Ce05EFC77bffEb5",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyCOMPPERP": {
                    "address": "0xb7059Ed9950f2D9fDc0155fC0D79e63d4441e806",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateCOMPPERP": {
                    "address": "0xF8dBEf33111A37879f35EE15507769CA927cf9C0",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketCOMPPERP": {
                    "address": "0xA154EcFFfb46380991751DE890956b245142e10C",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateCOMPPERP": {
                    "address": "0x6e7209c0dB7110fc5606BAAC492Ce4dEA2EFEd8e",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentCOMPPERP": {
                    "address": "0x6172289961007908442a0437891DcD966F368563",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionCOMPPERP": {
                    "address": "0x9f3be6Be18E8D0613f87c86A0b1875B74f404A11",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsCOMPPERP": {
                    "address": "0xbaAcf0F9dEA6b17D8667a34b7f69f60591c8D68D",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXMRPERP": {
                    "address": "0x2ea06E73083f1b3314Fa090eaE4a5F70eb058F2e",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXMRPERP": {
                    "address": "0x3d869950817920Eda9fC9A633ab7F06B97444dd7",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXMRPERP": {
                    "address": "0x51a8e343841eEd0439De080cDc5d96c4A8568860",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXMRPERP": {
                    "address": "0x5d79EeB57A35EC8b6b9Ef55052C5C9F919C3c3Ee",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXMRPERP": {
                    "address": "0x239847700D9134cEEAEC306DAA40b569CEe1D5a0",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXMRPERP": {
                    "address": "0x926b1148DaFe298ff7Fdc2d01Ae1bC3Fa3b4FAE4",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXMRPERP": {
                    "address": "0x90241392dbA7FAa1d1d96C6927f0FBfe93FdF226",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyMKRPERP": {
                    "address": "0xf7d9Bd13F877171f6C7f93F71bdf8e380335dc12",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateMKRPERP": {
                    "address": "0xf963a0fc0BFc38FEfE08C6062f2AD9A11AfFDEeb",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketMKRPERP": {
                    "address": "0x0B08D567D1893D9e0B48E61d1f9Ecd9D7C6B11EE",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateMKRPERP": {
                    "address": "0x740444afa4F5a7CD569A7714D5252A35DC1fE299",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentMKRPERP": {
                    "address": "0xDEbC936c5aDfd1331E5fa4AE76DB7197283342d0",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionMKRPERP": {
                    "address": "0xE0d1A14EBC3bc4460fEeB67A45C8198063cCC7c7",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsMKRPERP": {
                    "address": "0xb1204d3fFfeaEa354f2f04779BEdcd0d8f3598fa",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyYFIPERP": {
                    "address": "0x6940e7C6125a177b052C662189bb27692E88E9Cb",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateYFIPERP": {
                    "address": "0x2107A107D1043b2c442b8de40d6696C29bD2c5b8",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketYFIPERP": {
                    "address": "0x555a66ae81b447f3e4533A8159e2462D17A7e7c3",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateYFIPERP": {
                    "address": "0x579e622B355Ac69A3a772d29A98379044CBF7722",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentYFIPERP": {
                    "address": "0xf7AF14838789093ccD01c67cF9Bc5f602501cEd0",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionYFIPERP": {
                    "address": "0x7aF6Be46f83d25902cfa49c9e16BEc54893f25cB",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsYFIPERP": {
                    "address": "0x2a1Fa1Fbf771c353eBFe63472EBbB16444A9b0ef",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyMAVPERP": {
                    "address": "0x572F816F21F56D47e4c4fA577837bd3f58088676",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateMAVPERP": {
                    "address": "0xB241aF12256998A0051b93e02027e73CA7E5388d",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketMAVPERP": {
                    "address": "0xeef768Df33e01bcd395612601569f4Ac5daf2363",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateMAVPERP": {
                    "address": "0x7E62C949f55305C0679b4E883198f93Ac4D8e2e9",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentMAVPERP": {
                    "address": "0x6A5A1E32216377FC03bFFdC9B33fe29c2f14Ec84",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionMAVPERP": {
                    "address": "0xFc6895ff4756985BCa9df2AABB5f31651C591Bef",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsMAVPERP": {
                    "address": "0x04915C122ebA1cd7629a2a00D9aE2a4C145aB21b",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyRPLPERP": {
                    "address": "0xfAD0835dAD2985b25ddab17eace356237589E5C7",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateRPLPERP": {
                    "address": "0xf606E99D6F6a003623eA5764dA119BAEcB2e8C99",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketRPLPERP": {
                    "address": "0x89fE4828Bf24caFbE96F804885506A7111065541",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateRPLPERP": {
                    "address": "0x15df53AEcF14f4525BE5F7Ac8240968CBF5bcAAf",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentRPLPERP": {
                    "address": "0xc9c64cF6D1CE4b41D087F08EdAa9De23262f1EdA",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionRPLPERP": {
                    "address": "0xF0671cF8a1a0b3308e84852308F9624B9eC2e28f",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsRPLPERP": {
                    "address": "0x882e4a84Cbd9b55052c85e1FF05289aa577659B9",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyWLDPERP": {
                    "address": "0x77DA808032dCdd48077FA7c57afbF088713E09aD",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateWLDPERP": {
                    "address": "0xd4b10C896D82B3158A9a9fcb8F6fBC5A8D833C04",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketWLDPERP": {
                    "address": "0xF2bb38E5FE4e244EF3ab82F218383Ba4D358f895",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateWLDPERP": {
                    "address": "0xD8aD261b4deA3Ce25642d909D2F3Cbf9D4632caf",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentWLDPERP": {
                    "address": "0x81891EBC7cF265B87D8658EC2E703fB703392845",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionWLDPERP": {
                    "address": "0x695Fdda0E1546cA369Df3CabE8ED33407Cf62341",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsWLDPERP": {
                    "address": "0x33c3C4D49dEe4232498B3eFA5336C627801E998d",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyUSDTPERP": {
                    "address": "0x1681212A0Edaf314496B489AB57cB3a5aD7a833f",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateUSDTPERP": {
                    "address": "0xC2231D2cAdDBee015AeDddd3F0EE3874E3bd1d59",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketUSDTPERP": {
                    "address": "0xB7d7605f814Da681cC299A9Ac9ABBfc1ea65E40A",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateUSDTPERP": {
                    "address": "0xA552049A9f320B6a8622A003FE1108595061e223",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentUSDTPERP": {
                    "address": "0xD53C50B644aa4E29fe2B633E97187e2Aa3cBd6fc",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionUSDTPERP": {
                    "address": "0x244c689BFa19F046124e75339887f9918317b919",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsUSDTPERP": {
                    "address": "0xCee08cC3BB744dEC69f6eECf5B7B62CCD9143E99",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBALPERP": {
                    "address": "0x71f42cA320b3e9A8e4816e26De70c9b69eAf9d24",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBALPERP": {
                    "address": "0x982bb9880295EcBc34a56772fEF81E964Aee4A9f",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBALPERP": {
                    "address": "0x27B9C4af1BACd39Fb216A3a27c9F1E3cd8570b19",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBALPERP": {
                    "address": "0x797c42Ff20162B806b813B78E5ceD6d69E06a09a",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBALPERP": {
                    "address": "0xBc5B0A6dCaDD4Fc27665601401D6f03D97375B24",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBALPERP": {
                    "address": "0x8d51BF0759e1a01c15F91940BaaaD08B6B45a637",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBALPERP": {
                    "address": "0x3FFbC2f1029ccb193d011757E2bbd57538711D86",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFXSPERP": {
                    "address": "0x2fD9a39ACF071Aa61f92F3D7A98332c68d6B6602",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFXSPERP": {
                    "address": "0xd9AC5ECbB704f0bdb0a96bEBfA3B79bE829d2bC1",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFXSPERP": {
                    "address": "0x29601BAfeE838F75679e0024E9b8E44D6f1b6f2c",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFXSPERP": {
                    "address": "0xEbBeb518d4b4e488f45913A9Ef72Ea57Be676F1a",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFXSPERP": {
                    "address": "0x4022AB250B5c32c286A3953bc740368D6b68b067",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFXSPERP": {
                    "address": "0xcCe2c84C91e6c4de7e87704b3D5C4fba10626234",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFXSPERP": {
                    "address": "0x6a15EE080c2FdE246b674918bff3B52d414525cb",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyKNCPERP": {
                    "address": "0x152Da6a8F32F25B56A32ef5559d4A2A96D09148b",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateKNCPERP": {
                    "address": "0x325AF017A497953734CB7B1F51580ff9aD1122B1",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketKNCPERP": {
                    "address": "0xf9C0122A38c6B85FDAfF3065f3d0822D9802E03e",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateKNCPERP": {
                    "address": "0x959A4309f7d82e3D34C353a405200D8277032115",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentKNCPERP": {
                    "address": "0xE6bf793B3ED4b42f8c3FB883a60e49f976a1791e",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionKNCPERP": {
                    "address": "0xE1264B2B97be89755FBCE7A280FD276C55F661D1",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsKNCPERP": {
                    "address": "0xCcff378F3aA9E4ABB36fdCb03371a59008C28708",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyRNDRPERP": {
                    "address": "0x91cc4a83d026e5171525aFCAEd020123A653c2C9",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateRNDRPERP": {
                    "address": "0x82DCd3e7224DDA8dF6A746d70F1Cce80df4384c2",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketRNDRPERP": {
                    "address": "0x3942722D61d784347F38CaA493B1E073aB321B22",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateRNDRPERP": {
                    "address": "0x70eE22558a577C9c3C7BE0A5F9Fb494c20e0545b",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentRNDRPERP": {
                    "address": "0xC81e43B6FB257760cb655C5B3Ea0b87d93cf01B5",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionRNDRPERP": {
                    "address": "0x097b1ec678F135fa31C7D4c0D92b34940dB06251",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsRNDRPERP": {
                    "address": "0xaEB7205C613c1e1aD34E077EbE86fDB9Da16cEcf",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyONEPERP": {
                    "address": "0x86BbB4E38Ffa64F263E84A0820138c5d938BA86E",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateONEPERP": {
                    "address": "0xEdB8F5e51e5B11E73beA72600aa2De7a4A2eAFa4",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketONEPERP": {
                    "address": "0x66F541d5F16f2451dE9DE5098d241774a33093f4",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateONEPERP": {
                    "address": "0x9c3A582Cb712C8CDb067456b993F0234EDB185bD",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentONEPERP": {
                    "address": "0x66f916cc0B0b26C1783974A60Cef9B0AfC382825",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionONEPERP": {
                    "address": "0xBe0f35e3d0ffe514969333B4d07A279D3d66A494",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsONEPERP": {
                    "address": "0xA4d53f6CBCF314f318f316ae61cDd400c974085d",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyPERPPERP": {
                    "address": "0xaF2E4c337B038eaFA1dE23b44C163D0008e49EaD",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStatePERPPERP": {
                    "address": "0x6941ad5Ac604d2329f96bEA75C7b25D19Cc06701",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketPERPPERP": {
                    "address": "0x6d9bDe78D5562b6BE4B6A70f4f2511fb1A8f9E10",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidatePERPPERP": {
                    "address": "0xc765DcA9D0e77B01b2Bb74fEBae2cF89E038092B",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentPERPPERP": {
                    "address": "0x5E51817910c53A01e7Ee90B8640a66768075bf2E",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionPERPPERP": {
                    "address": "0x692c746f443031559E9816b50c99165fd452982d",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsPERPPERP": {
                    "address": "0x24D29234e34793476000FA068E858dE4380646E6",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyZILPERP": {
                    "address": "0x01a43786C2279dC417e7901d45B917afa51ceb9a",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateZILPERP": {
                    "address": "0x5aCd4ABF5DDfb7F27B5940D1Aef640d6b67a2Cba",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketZILPERP": {
                    "address": "0x7EA760077b84f5e9A5D8a51Bf2A49B91D7cd5aa9",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateZILPERP": {
                    "address": "0x0194e4BbD724633546D543A28125c579dfEc057c",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentZILPERP": {
                    "address": "0x0e1A5c48f3Ae7c629155aFAbbBcd5442627c7EF6",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionZILPERP": {
                    "address": "0x89698dc9ECD95337AD64FDa7dF773dA5007926A8",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsZILPERP": {
                    "address": "0xd21F7CC02f3a9B6d059cdAd6e0C0f4db18420189",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyRUNEPERP": {
                    "address": "0xEAf0191bCa9DD417202cEf2B18B7515ABff1E196",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateRUNEPERP": {
                    "address": "0x2CC4707f6aeF86cDBA05F45Da98D365a66DFD5d7",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketRUNEPERP": {
                    "address": "0x18f763fd61Efd3D9884981CC2CBd6845351e4b70",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateRUNEPERP": {
                    "address": "0xa26677434188Db65e42dd5606EE297366361cc2D",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentRUNEPERP": {
                    "address": "0xDaf440cDeA843762c6D4ECFA7C2f64AED832319e",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionRUNEPERP": {
                    "address": "0xB4D55aE3a6B3B73633F622Ef89e94E4bAD05c08F",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsRUNEPERP": {
                    "address": "0xa9BB96d03A6ED56C14cd47a2CE75Fa6a7633aeC2",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySUSHIPERP": {
                    "address": "0xdcCDa0cFBEE25B33Ff4Ccca64467E89512511bf6",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSUSHIPERP": {
                    "address": "0x854A3500F1443ba99F746CA605d8FC25F0d06f32",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSUSHIPERP": {
                    "address": "0x070E7B0447e096704C54923826ac0Cb6C6472400",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSUSHIPERP": {
                    "address": "0x21F660512a18dEad0664F189aF73D74373dDC45f",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSUSHIPERP": {
                    "address": "0xd01a18C2eDB9f411A8329eF9B2905F3Cf7D35408",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSUSHIPERP": {
                    "address": "0xdB87f699ae4045c290033240f22C0CBe80d95724",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSUSHIPERP": {
                    "address": "0xc7a869dEEEE1aCaB2B30B6022C246194c83ed49C",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyZECPERP": {
                    "address": "0xf8aB6B9008f2290965426d3076bC9d2EA835575e",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateZECPERP": {
                    "address": "0xe94afDEd9CB9AB143E8cCc8C7439794E8C41F1A6",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketZECPERP": {
                    "address": "0x8CC84E2c8BE0B7999B65A6b2bceF4dfF1f433Ce1",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateZECPERP": {
                    "address": "0x8649Fdb91a47281Ea1eE67b83967b0D00F79a560",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentZECPERP": {
                    "address": "0xD21257d00E06621b1946532a2410dB1aBa75C638",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionZECPERP": {
                    "address": "0x3f9917995e1a55060B984dbeE9d7358D9eB7AC8c",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsZECPERP": {
                    "address": "0x77fB9D52099d4207108C26AB22f9D8BBF691A37A",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXTZPERP": {
                    "address": "0xC645A757DD81C69641e010aDD2Da894b4b7Bc921",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXTZPERP": {
                    "address": "0xaf621161755C601C1469e3487ce971f39Ae507BC",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXTZPERP": {
                    "address": "0x577B7dAdF6052d8DFA3C394143a4021b433A809c",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXTZPERP": {
                    "address": "0xe96097De5D8d168FC46B52874dF0A474E4A293D6",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXTZPERP": {
                    "address": "0xa7912822C220cda3596CAbFe9077769576E2b46E",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXTZPERP": {
                    "address": "0x4Fb59e8dAfcd398b2ca7Fe2Af5a7405Cd0d22278",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXTZPERP": {
                    "address": "0x95CaB224896972e69Ad626bC75D29116CE7d4521",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyUMAPERP": {
                    "address": "0xb815Eb8D3a9dA3EdDD926225c0FBD3A566e8C749",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateUMAPERP": {
                    "address": "0x595f37E1b21870571eE99fbe815D6790D817C0Ba",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketUMAPERP": {
                    "address": "0xecAfBAc3221160337a3a8dcB25A955f50618feeB",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateUMAPERP": {
                    "address": "0x14A3F810db4E4EC74906D2538DE00a4c995f229E",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentUMAPERP": {
                    "address": "0xD60E490fBF42a43E67F1e8d74debd7bCB5240F80",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionUMAPERP": {
                    "address": "0x581Fa71eB5b5D704d0c268EEd58e48f801338f7B",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsUMAPERP": {
                    "address": "0x99B2b4F1C6222d97e70Cf7D0C7Cc314465Ca9dC0",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyENJPERP": {
                    "address": "0x88C8316E5CCCCE2E27e5BFcDAC99f1251246196a",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateENJPERP": {
                    "address": "0x8327AA139bd7eEE62730a2cB9B9A86821810d4DB",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketENJPERP": {
                    "address": "0x9651De67fD8c3003a56b25dc24C73C317f00251d",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateENJPERP": {
                    "address": "0x03c0544195A86028abdD8E69239A03b7ca0bC283",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentENJPERP": {
                    "address": "0xf23DF6328A8EDCFb34B9905715a32181e72964c3",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionENJPERP": {
                    "address": "0xE7b44E0411307B637A1B3B75AF8c37d752857Ae1",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsENJPERP": {
                    "address": "0x04631B9297919E98334C5AbAa762C48af071b4ef",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyICPPERP": {
                    "address": "0x105f7F2986A2414B4007958b836904100a53d1AD",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateICPPERP": {
                    "address": "0x4bD5674a720c212FF515Dd51d4E5d304FF16B3d0",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketICPPERP": {
                    "address": "0x7221d65B8e46a380102EBE986C01A9481e75Bd9E",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateICPPERP": {
                    "address": "0x4F7d521a7CF8FA3b6EbF5d960907aE83E2888fC7",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentICPPERP": {
                    "address": "0xcAd243fA79De8Acb3B0336Dd9793A16D8e6A3aA5",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionICPPERP": {
                    "address": "0xE72f5C2B7C8E8697aFFe886497d22ad47D832085",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsICPPERP": {
                    "address": "0xdd1122620688C25DF27DD405cf467cC9e5C0CC82",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyXLMPERP": {
                    "address": "0xfbbBFA96Af2980aE4014d5D5A2eF14bD79B2a299",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateXLMPERP": {
                    "address": "0xEaFa65b829b37277a14fE43de9fAda0d9e897E4d",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketXLMPERP": {
                    "address": "0xff8Bf0f6f9494b44AeD91BB7868Ab94b76dCeAAD",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateXLMPERP": {
                    "address": "0xECE9613025F970f1d56b2Ba749e1170976465088",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentXLMPERP": {
                    "address": "0x9576B1104c0fa29F76B3559B77e0fD0A6b450213",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionXLMPERP": {
                    "address": "0x2aEF3F9E57E2695C32bEaC56d79BFe4efb55bF63",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsXLMPERP": {
                    "address": "0x0C35263A2c4ed7BB812D3B4f4A5Da1A623fB2b7B",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2Proxy1INCHPERP": {
                    "address": "0xd5fAaa459e5B3c118fD85Fc0fD67f56310b1618D",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketState1INCHPERP": {
                    "address": "0x26A035D9A2eD696EacC3816674C66A7eB73aAb70",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2Market1INCHPERP": {
                    "address": "0x06bA4E6246A0C4BcBB53Ec860bE5372Fc40629ab",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidate1INCHPERP": {
                    "address": "0x08e52251d4434eadF1f2Ce01D419B6249694d9e5",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntent1INCHPERP": {
                    "address": "0x6d5403B5b195F0F26aaF5e2a7FD58aB1D0Fb2F3e",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecution1INCHPERP": {
                    "address": "0xDC7a51F5c32909AcD5D03d11944c4480bee1Cd47",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViews1INCHPERP": {
                    "address": "0x23D5291fEa095D8851cE3bB711a10b4982923d9a",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyEOSPERP": {
                    "address": "0x50a40d947726ac1373DC438e7aaDEde9b237564d",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateEOSPERP": {
                    "address": "0x1f53699b435326B6e264727b5504Cc28006Bed8B",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketEOSPERP": {
                    "address": "0x4F9c7cE72255CC04ca2159793a59EFE3E6F40aA5",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateEOSPERP": {
                    "address": "0xb997eDbe18f7e8a9904EC7E6A945f2940De5193D",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentEOSPERP": {
                    "address": "0x02A26Df328E08c12ce3A5ed428b83Dc5e4c2ee67",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionEOSPERP": {
                    "address": "0x15F71Cb39F39A3b30ef610a15Ce1CBE766CB069C",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsEOSPERP": {
                    "address": "0x86508410Fd82c863920f194DA49a0835717c3673",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyCELOPERP": {
                    "address": "0x2292865b2b6C837B7406E819200CE61c1c4F8d43",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateCELOPERP": {
                    "address": "0xb8BC48ed3D08A3ac02D62174652369d3279705dE",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketCELOPERP": {
                    "address": "0x4334DfcB85EaB5dA80b162F930B56F47Ebb156f1",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateCELOPERP": {
                    "address": "0xf4EDc15CCf3bE5833dB3753AA91782a601F9aeda",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentCELOPERP": {
                    "address": "0x32a357AdE8497EA57446b4BF5099FA9F0918592f",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionCELOPERP": {
                    "address": "0x5dCA1c6c75f6410CB4020A4aB5657FEF716fCfc3",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsCELOPERP": {
                    "address": "0x19bd719105008C82dA4b4FD8112c9D2A97C0930c",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyALGOPERP": {
                    "address": "0x96f2842007021a4C5f06Bcc72961701D66Ff8465",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateALGOPERP": {
                    "address": "0xd856b45d4D9671482e53E705058aF3fF09000A28",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketALGOPERP": {
                    "address": "0x949404d0AC66430842145204fB83c1aB9C21F35B",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateALGOPERP": {
                    "address": "0xc0929A879906AF158B63230BC7a60144F2E26839",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentALGOPERP": {
                    "address": "0x9bAEDd40FaE33Ce9022D39a9bd71F325E626a06e",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionALGOPERP": {
                    "address": "0x799654ecaF87E769C56f722C82Fbc7BBCC4f621C",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsALGOPERP": {
                    "address": "0xfd9f2393634fAe33099503b45719d8EBf1dA7744",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyZRXPERP": {
                    "address": "0x76BB1Edf0C55eC68f4C8C7fb3C076b811b1a9b9f",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateZRXPERP": {
                    "address": "0x0e4695edb83FB23E6b12AFa3660beF09610791de",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketZRXPERP": {
                    "address": "0x4DdD30Fff71Bd03AfFd9A6E27c7C8C0CC9731b22",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateZRXPERP": {
                    "address": "0x67e010545133038292D124E49D1dB6459fff82AF",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentZRXPERP": {
                    "address": "0x58e178B0CacD1bc56a2cC408030A1f69eDc315f7",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionZRXPERP": {
                    "address": "0x08BCea94194A1D63379123073Cb254b77f7721A5",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsZRXPERP": {
                    "address": "0x0ED899BDe78B8f647D8bB1A44cD2DeDFC087188C",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySEIPERP": {
                    "address": "0x66fc48720f09Ac386608FB65ede53Bb220D0D5Bc",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSEIPERP": {
                    "address": "0x9F6AA1c141838DF56eF82Be286cAbd2616c8B309",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSEIPERP": {
                    "address": "0xd0De1Cc5849E07C03D1d7a2589a8D56D092DfEaf",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSEIPERP": {
                    "address": "0x73575B75c222bb2d6c2240E725CAa654B8ec6BAd",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSEIPERP": {
                    "address": "0x9D81F2898127f812751dc09C210D839a7DB651aa",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSEIPERP": {
                    "address": "0xb2E9642F96A1b576ab0232ec35Cb0d7d07D1172F",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSEIPERP": {
                    "address": "0x8A6EF192d45e8ea930bC7f4F0eD457f213731BBb",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySTETHETHPERP": {
                    "address": "0x08388dC122A956887c2F736Aaec4A0Ce6f0536Ce",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSTETHETHPERP": {
                    "address": "0x2EC454957C0e66266398076f066fAaC77c48d88d",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSTETHETHPERP": {
                    "address": "0xEa0324cc8D9FD70b8000bafbac7E3FF7C15275eD",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSTETHETHPERP": {
                    "address": "0x89f16bfFd72166807A18fAba307cD21eC6143563",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSTETHETHPERP": {
                    "address": "0xFF5CfDB5b9640EaEA8D23C1d72014346aE8174FD",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSTETHETHPERP": {
                    "address": "0x4c0f7b167e7D280D97471f5A17F4Eb214E15A440",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSTETHETHPERP": {
                    "address": "0x875bBc7285d52Ca957024999315717D45ba99276",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyTRBPERP": {
                    "address": "0xbdb26bfb6A229d7f254FAf1B2c744887ec5F1f31",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateTRBPERP": {
                    "address": "0x4B786a8b4b7ca90f9857776b0B888cED53CFeeF0",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketTRBPERP": {
                    "address": "0x2C993C071e15513419a2563766d2E7Db6A55F3C4",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateTRBPERP": {
                    "address": "0xEF9cC2223931e876dfcf0642b3f2EFb6Ccef7746",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentTRBPERP": {
                    "address": "0x5e24c013e8d8b60D53D77cce019263e1964ed8D1",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionTRBPERP": {
                    "address": "0x30BB2B3A49ca31e0DD9D1C330E3e9bC8d4390B33",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsTRBPERP": {
                    "address": "0x7bfa1D23Ec09cCCEF678c0175794Ef9e9dc11d18",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyTIAPERP": {
                    "address": "0x35B0ed8473e7943d31Ee1eeeAd06C8767034Ce39",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateTIAPERP": {
                    "address": "0x75D9ABD9B5e9724345570cFa587BA791c6B012a3",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketTIAPERP": {
                    "address": "0xECF9f79602bC7F8751166254639aA6605Bc5f2E8",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateTIAPERP": {
                    "address": "0x0c705619Bbc28809419Aae00306f726A410f99fF",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentTIAPERP": {
                    "address": "0x2774b19d141019B296E880aBd5f7E39A81D3164C",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionTIAPERP": {
                    "address": "0x89EF1ccB62eE764Be2f817f3fDf20598EC90fBCa",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsTIAPERP": {
                    "address": "0x2BB9c128C397f50AFdB82d99096EE9E5acFF166a",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyIMXPERP": {
                    "address": "0xBBd74c2c8c89D45B822e08fCe400F4DDE99e600b",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateIMXPERP": {
                    "address": "0x4AfD66f7379449a73C4848B30DBeb93016346FBE",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketIMXPERP": {
                    "address": "0x17711043B91ac78d4a9D9D4Eff4982Ae34718596",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateIMXPERP": {
                    "address": "0x10584F7232e992CbffFbBD981AbB37841796e5ca",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentIMXPERP": {
                    "address": "0xbBF6444e3Ba09ae34288EFc9139A669A3359Dc95",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionIMXPERP": {
                    "address": "0x6DAa4Eb27a25C3727e9857FD6b0B736Ff397542e",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsIMXPERP": {
                    "address": "0xF647dA1E37ab60A418cbd68f864b96eCAa545118",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyMEMEPERP": {
                    "address": "0x48BeadAB5781aF9C4Fec27AC6c8E0F402F2Cc3D6",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateMEMEPERP": {
                    "address": "0xeF35211B545B8f7EAF77F0d144A2e023d21Cb453",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketMEMEPERP": {
                    "address": "0x5Ee88eFE11a05afCE278df521A5086B998Cd8127",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateMEMEPERP": {
                    "address": "0x9C8ab9A60467ccE650b4E59E5072d37CC51C5C0B",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentMEMEPERP": {
                    "address": "0xE0d47B8F4c0fa9BEef45544b2507c4832d0aDB06",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionMEMEPERP": {
                    "address": "0x2cFD760B02CC196E611CE867862C0654B1527c2C",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsMEMEPERP": {
                    "address": "0x65AC63AaF11dF18d392469eD2D8CaF8E2E40E788",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyFETPERP": {
                    "address": "0x4272b356e7E406Eeef15E47692f7f4dE86370634",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateFETPERP": {
                    "address": "0x6CA6Ae2fFE05b78545482111Ad74B6676F79C4e1",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketFETPERP": {
                    "address": "0x8cfdfAf68efC96293A395B5Ef94e5736EC71020C",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateFETPERP": {
                    "address": "0xd9fd12815Ef126094E73E6741309C304d1c24580",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentFETPERP": {
                    "address": "0xc3A4c26DFF46Da40C508BAa09C94f222fF5452eb",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionFETPERP": {
                    "address": "0x0f98F15020CBeaa572E86E05e4717E504b6A4fA5",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsFETPERP": {
                    "address": "0xDB3de223c0cF8D76A4Ae3a09308Fc605c6dF8802",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyGRTPERP": {
                    "address": "0x3f957DF3AB99ff502eE09071dd353bf4352BBEfE",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateGRTPERP": {
                    "address": "0x70C512B97b06985f522F9C602CB14246ACfe2F5A",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketGRTPERP": {
                    "address": "0xFd7B1A558e97b7C42ab0B66699774daC1E6C91bb",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateGRTPERP": {
                    "address": "0x3804e72Fda96F6BC5ABF32EEc37BC35e56E56001",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentGRTPERP": {
                    "address": "0xB9020cE5086feC8e9cEfe86b23C2d31Ee5f6f678",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionGRTPERP": {
                    "address": "0x6cE41F0c16BD789CD4b97ff75fBFB510a6c211e5",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsGRTPERP": {
                    "address": "0x68f05ef597BED7bE78A2ffF6E78206c99f79AbFD",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyPYTHPERP": {
                    "address": "0x296286ae0b5c066CBcFe46cc4Ffb375bCCAFE640",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStatePYTHPERP": {
                    "address": "0xD326CFAb7af228aE6e97d879E9E6A3E7faA8D328",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketPYTHPERP": {
                    "address": "0xC3351Ec585e2D9d08aff1DF0FaA4e491cAe8c953",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidatePYTHPERP": {
                    "address": "0xd882a4e1a17e0DD0b90Bb22B7dDB6712271Da77B",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentPYTHPERP": {
                    "address": "0xF854e2472E56fe064f726baE7352F1Ed486c6684",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionPYTHPERP": {
                    "address": "0x41c49bBc181211b289D2a29318f485fAc2692489",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsPYTHPERP": {
                    "address": "0x9EE6dF39fe29EAb8116DB947CC642794400b70DF",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyANKRPERP": {
                    "address": "0x90c9B9D7399323FfFe63819788EeD7Cde1e6A78C",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateANKRPERP": {
                    "address": "0xF5b5176933e18C4e3F603F2646f07BB262245Be8",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketANKRPERP": {
                    "address": "0x250AD7A503132Bf851743cef092b56CB1C33a3bC",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateANKRPERP": {
                    "address": "0x35A713bbb5a205c4dF96A8391E26Fb6228248f2f",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentANKRPERP": {
                    "address": "0x977264557C22491947c88c72eb91Bf297d1bB44f",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionANKRPERP": {
                    "address": "0x93465C5a94361A8bc7313e9a443bf76d54e09Ce9",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsANKRPERP": {
                    "address": "0xeb4F86ADD4313d281cDfe1B566b3D94D0e6E05A4",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyBONKPERP": {
                    "address": "0xB3422e49dB926f7C5F5d7DaF5F1069Abf1b7E894",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateBONKPERP": {
                    "address": "0xc27e06964A83eBb5917EAB0e8607f0B1492e755C",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketBONKPERP": {
                    "address": "0x731FB37F96Be476792dbfdF2a642a6257768c498",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateBONKPERP": {
                    "address": "0x60b7278c91c31d668fBB961B702C3CB3aD59DbA5",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentBONKPERP": {
                    "address": "0x31d83b7A96B298111352A5a8D9cD396ED9eCC4c9",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionBONKPERP": {
                    "address": "0x1496d992e66a1843fE91659689C697844aC8712d",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsBONKPERP": {
                    "address": "0xE0a9be89b352014028dA9837233168DD5CCEC9B1",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyJTOPERP": {
                    "address": "0xae90E9BB73b32505FB56a0F4Fd4eC8cf94BaB730",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0xa73f0d92018af27709b5bfff434859f0db873438fc6d45be8b3be26c65ae9f2d",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateJTOPERP": {
                    "address": "0xbC2FDA8D78A9a7F0AFEfD45EE5c4A78f02088C10",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x6377325dddb6719257d767fc842ab0015634e496757a751611755903c612ec30",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketJTOPERP": {
                    "address": "0xFA2fAB480bbdE7C34286616132a0e84AbC8720E6",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x9b62fc2d07cfe9d04133a7f8a62ca4e06a451389449333c4b130cc2fcd56586b",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateJTOPERP": {
                    "address": "0x5C91D11A7a2Db54daF61e3b8cef326D930E8039A",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x13ee5dce04192f0ce1bdc3c61dbfd94ae4dcd866d6054ad5d179f2ec04ac8846",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentJTOPERP": {
                    "address": "0x064F65c29d29386b37d7D78804fd4246AC7edA0B",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x9ba408f6c497b0160eb8e4a4b9783ec63da3c94483f345d3ccc589a442fbb5a2",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionJTOPERP": {
                    "address": "0x05718A8adFaF321b0e21DaaE77A44a2De71F6d9f",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x9777b65f6315a4ae415a920d8c48e745ad641dbf1372794403a5edea8443fc6b",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsJTOPERP": {
                    "address": "0x92E1D720a055604C72Ffe14c4e51A1c5d67D5D3A",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "https://explorer.optimism.io/tx/0x6b2f5bd36f5758906f7ae19115c151050d309ce7c37347d6efca0b31fd76f1f3",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyORDIPERP": {
                    "address": "0xE698CcC3cD4f2172a848094eA6D28D89d750C16f",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateORDIPERP": {
                    "address": "0xDe344136FB507e96Df8694615f6AF1739A2a9AaD",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketORDIPERP": {
                    "address": "0x3D9EF40135Ce9705F0a1eFcEb9E4Dc311C0f2F26",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateORDIPERP": {
                    "address": "0x842D77B29F344cD11B93fb9eE463a3479b098aDb",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentORDIPERP": {
                    "address": "0x709F4EF76E243B365f0172f6C4CFA825af7Ae468",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionORDIPERP": {
                    "address": "0xf595193ba60485855d3F6bD2e60c487cC6A99B9D",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsORDIPERP": {
                    "address": "0x6aEa7024E001560Ebf4F634d3EBfC8403FE0c7BF",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyJUPPERP": {
                    "address": "0xf9AE92bc49A5DD96AE5840eaAE75218016811c99",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateJUPPERP": {
                    "address": "0x5060490e390dc3D4590BD732550B3cf042d41334",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketJUPPERP": {
                    "address": "0xA2fd4da04a2Dd32860Cd9e12FD4d9d17c3211949",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateJUPPERP": {
                    "address": "0xdf2713E82212eA2096bb14ce5f47c4A1319b3C7A",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentJUPPERP": {
                    "address": "0x3756909c4240aD5b442eC3d138e2cE42F27eC605",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionJUPPERP": {
                    "address": "0xa3D7AeCf60B33eB7582E6cC38bFb60926E7D2131",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsJUPPERP": {
                    "address": "0xD50e7390dad2DE90313C1ACD00c51212Ffa9BE5D",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyCVXPERP": {
                    "address": "0x2F0Fe4B621E7e54110446cE2df699004c6194636",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateCVXPERP": {
                    "address": "0xb76ab289C1C81498A17382CA40E799DA494f7EB7",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketCVXPERP": {
                    "address": "0x9Cc5C4af60485a582b86E29AC8681D113fD2a197",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateCVXPERP": {
                    "address": "0x0134c2E630cB2E5385261C4CA9308e87Ba70B432",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentCVXPERP": {
                    "address": "0xc23BAbF6Ff26b9EBD36Bb28da9eeA3F42534Aa79",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionCVXPERP": {
                    "address": "0x400813263d6300347423E02fc8402735340aaE72",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsCVXPERP": {
                    "address": "0xE854473Fc57DB647f957d813044649200C6E1c4e",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxySTRKPERP": {
                    "address": "0x2F0F0865dFDD52AdefB583Ae824dDE7D60b76a3B",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStateSTRKPERP": {
                    "address": "0x73f056Ca71F4f4f5eA6375dD710D62247873001b",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketSTRKPERP": {
                    "address": "0x2292de8313E1C41935dD24dc66529b4B6cdf7424",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidateSTRKPERP": {
                    "address": "0x803b5E2B4b376a747d0E95c74Cee3B9dc9B25e79",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentSTRKPERP": {
                    "address": "0x3b17232cBcEcb5DE01bb92Aee2fC35e507F0aBbb",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionSTRKPERP": {
                    "address": "0xdA9303CE53a1800b0F077C1A9a1A253Ee8A64457",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsSTRKPERP": {
                    "address": "0xE50DBa755fd9e9Aad8198193FF9C7e4aE1F3443a",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2ProxyPENDLEPERP": {
                    "address": "0xd4e9e0784C3cE4796f54F2EA0D337c7CFcCFD645",
                    "sourceName": "contracts/ProxyPerpsV2.sol",
                    "contractName": "ProxyPerpsV2",
                    "abi": [
                      "constructor(address _owner)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event RouteRemoved(bytes4 route)",
                      "event RouteUpdated(bytes4 route, address implementation, bool isView)",
                      "event TargetedRouteAdded(address targetedRoute)",
                      "event TargetedRouteRemoved(address targetedRoute)",
                      "function _emit(bytes callData, uint256 numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4)",
                      "function acceptOwnership()",
                      "function addRoute(bytes4 selector, address implementation, bool isView)",
                      "function getAllTargets() view returns (address[])",
                      "function getRoute(bytes4 selector) view returns (tuple(bytes4 selector, address implementation, bool isView))",
                      "function getRoutesLength() view returns (uint256)",
                      "function getRoutesPage(uint256 index, uint256 pageSize) view returns (tuple(bytes4 selector, address implementation, bool isView)[])",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function removeRoute(bytes4 selector)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketStatePENDLEPERP": {
                    "address": "0xe9Eb0074F3c7e4Fc5c8F717fB565649749EeFc4a",
                    "sourceName": "contracts/PerpsV2MarketState.sol",
                    "contractName": "PerpsV2MarketState",
                    "abi": [
                      "constructor(address _owner, address[] _associatedContracts, bytes32 _baseAsset, bytes32 _marketKey, address _legacyState)",
                      "event AssociatedContractAdded(address associatedContract)",
                      "event AssociatedContractRemoved(address associatedContract)",
                      "event MarketStateInitialized(bytes32 indexed marketKey, bool legacyContractExists, address legacyState, uint256 legacyFundinSequenceOffset)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function addAssociatedContracts(address[] associatedContracts)",
                      "function associatedContracts() view returns (address[])",
                      "function baseAsset() view returns (bytes32)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function deleteDelayedOrder(address account)",
                      "function deletePosition(address account)",
                      "function entryDebtCorrection() view returns (int128)",
                      "function flag(address account, address flagger)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function getDelayedOrderAddressesLength() view returns (uint256)",
                      "function getDelayedOrderAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getFlaggedAddressesLength() view returns (uint256)",
                      "function getFlaggedAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function getPositionAddressesLength() view returns (uint256)",
                      "function getPositionAddressesPage(uint256 index, uint256 pageSize) view returns (address[])",
                      "function initialized() view returns (bool)",
                      "function isFlagged(address account) view returns (bool)",
                      "function legacyFundinSequenceOffset() view returns (uint256)",
                      "function legacyState() view returns (address)",
                      "function linkOrInitializeState()",
                      "function marketKey() view returns (bytes32)",
                      "function marketSize() view returns (uint128)",
                      "function marketSkew() view returns (int128)",
                      "function nextPositionId() view returns (uint64)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function positionFlagger(address) view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function pushFundingSequence(int128 fundingSequence)",
                      "function removeAssociatedContracts(address[] associatedContracts)",
                      "function setBaseAsset(bytes32 _baseAsset)",
                      "function setEntryDebtCorrection(int128 entryDebtCorrection)",
                      "function setFundingLastRecomputed(uint32 lastRecomputed)",
                      "function setFundingRateLastRecomputed(int128 _fundingRateLastRecomputed)",
                      "function setMarketKey(bytes32 _marketKey)",
                      "function setMarketSize(uint128 _marketSize)",
                      "function setMarketSkew(int128 _marketSkew)",
                      "function setNextPositionId(uint64 nextPositionId)",
                      "function unflag(address account)",
                      "function updateDelayedOrder(address account, bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode)",
                      "function updatePosition(address account, uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketPENDLEPERP": {
                    "address": "0x671a70eDa2639972cBb503fBDa0f2EbE0949ff29",
                    "sourceName": "contracts/PerpsV2Market.sol",
                    "contractName": "PerpsV2Market",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event MarginTransferred(address indexed account, int256 marginDelta)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function closePosition(uint256 desiredFillPrice)",
                      "function closePositionWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "function messageSender() view returns (address)",
                      "function modifyPosition(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function modifyPositionWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function owner() view returns (address)",
                      "function proxy() view returns (address)",
                      "function rebuildCache()",
                      "function recomputeFunding() returns (uint256 lastIndex)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function transferMargin(int256 marginDelta)",
                      "function withdrawAllMargin()"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketLiquidatePENDLEPERP": {
                    "address": "0xfe964748D65187bc6441bB12058E2dF3e3240d04",
                    "sourceName": "contracts/PerpsV2MarketLiquidate.sol",
                    "contractName": "PerpsV2MarketLiquidate",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionFlagged(uint256 id, address account, address flagger, uint256 price, uint256 timestamp)",
                      "event PositionLiquidated(uint256 id, address account, address liquidator, int256 size, uint256 price, uint256 flaggerFee, uint256 liquidatorFee, uint256 stakersFee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function flagPosition(address account)",
                      "function forceLiquidatePosition(address account)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidatePosition(address account)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedIntentPENDLEPERP": {
                    "address": "0xaEE950b1704c3eeeF954FA326AF42A4A9d083Cc2",
                    "sourceName": "contracts/PerpsV2MarketDelayedIntent.sol",
                    "contractName": "PerpsV2MarketDelayedIntent",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderSubmitted(address indexed account, bool isOffchain, int256 sizeDelta, uint256 targetRoundId, uint256 intentionTime, uint256 executableAtTime, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)",
                      "function submitCloseDelayedOrderWithTracking(uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitCloseOffchainDelayedOrderWithTracking(uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitDelayedOrder(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice)",
                      "function submitDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredTimeDelta, uint256 desiredFillPrice, bytes32 trackingCode)",
                      "function submitOffchainDelayedOrder(int256 sizeDelta, uint256 desiredFillPrice)",
                      "function submitOffchainDelayedOrderWithTracking(int256 sizeDelta, uint256 desiredFillPrice, bytes32 trackingCode)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2DelayedExecutionPENDLEPERP": {
                    "address": "0x83C71b63c14900026f30af0a39C0e1CaB30f4A2f",
                    "sourceName": "contracts/PerpsV2MarketDelayedExecution.sol",
                    "contractName": "PerpsV2MarketDelayedExecution",
                    "abi": [
                      "constructor(address _proxy, address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event DelayedOrderRemoved(address indexed account, bool isOffchain, uint256 currentRoundId, int256 sizeDelta, uint256 targetRoundId, uint256 commitDeposit, uint256 keeperDeposit, bytes32 trackingCode)",
                      "event FundingRecomputed(int256 funding, int256 fundingRate, uint256 index, uint256 timestamp)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "event PerpsTracking(bytes32 indexed trackingCode, bytes32 baseAsset, bytes32 marketKey, int256 sizeDelta, uint256 fee)",
                      "event PositionModified(uint256 indexed id, address indexed account, uint256 margin, int256 size, int256 tradeSize, uint256 lastPrice, uint256 fundingIndex, uint256 fee, int256 skew)",
                      "event ProxyUpdated(address proxyAddress)",
                      "function acceptOwnership()",
                      "function cancelDelayedOrder(address account)",
                      "function cancelOffchainDelayedOrder(address account)",
                      "function executeDelayedOrder(address account)",
                      "function executeOffchainDelayedOrder(address account, bytes[] priceUpdateData) payable",
                      "function isResolverCached() view returns (bool)",
                      "function marketState() view returns (address)",
                      "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 resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function setMessageSender(address sender)",
                      "function setProxy(address _proxy)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "PerpsV2MarketViewsPENDLEPERP": {
                    "address": "0x4c5F5843131718D76f8Ee6595F7F33D2D3329B34",
                    "sourceName": "contracts/PerpsV2MarketViews.sol",
                    "contractName": "PerpsV2MarketViews",
                    "abi": [
                      "constructor(address _marketState, address _owner, address _resolver)",
                      "event CacheUpdated(bytes32 name, address destination)",
                      "event OwnerChanged(address oldOwner, address newOwner)",
                      "event OwnerNominated(address newOwner)",
                      "function acceptOwnership()",
                      "function accessibleMargin(address account) view returns (uint256 marginAccessible, bool invalid)",
                      "function accruedFunding(address account) view returns (int256 funding, bool invalid)",
                      "function assetPrice() view returns (uint256 price, bool invalid)",
                      "function baseAsset() view returns (bytes32 key)",
                      "function canLiquidate(address account) view returns (bool)",
                      "function currentFundingRate() view returns (int256)",
                      "function currentFundingVelocity() view returns (int256)",
                      "function delayedOrders(address account) view returns (tuple(bool isOffchain, int128 sizeDelta, uint128 desiredFillPrice, uint128 targetRoundId, uint128 commitDeposit, uint128 keeperDeposit, uint256 executableAtTime, uint256 intentionTime, bytes32 trackingCode))",
                      "function fillPrice(int256 sizeDelta) view returns (uint256 price, bool invalid)",
                      "function fundingLastRecomputed() view returns (uint32)",
                      "function fundingRateLastRecomputed() view returns (int128)",
                      "function fundingSequence(uint256 index) view returns (int128)",
                      "function fundingSequenceLength() view returns (uint256)",
                      "function isFlagged(address account) view returns (bool)",
                      "function isResolverCached() view returns (bool)",
                      "function liquidationFee(address account) view returns (uint256)",
                      "function liquidationPrice(address account) view returns (uint256 price, bool invalid)",
                      "function marketDebt() view returns (uint256 debt, bool invalid)",
                      "function marketKey() view returns (bytes32 key)",
                      "function marketSize() view returns (uint128)",
                      "function marketSizes() view returns (uint256 long, uint256 short)",
                      "function marketSkew() view returns (int128)",
                      "function marketState() view returns (address)",
                      "function nominateNewOwner(address _owner)",
                      "function nominatedOwner() view returns (address)",
                      "function notionalValue(address account) view returns (int256 value, bool invalid)",
                      "function orderFee(int256 sizeDelta, uint8 orderType) view returns (uint256 fee, bool invalid)",
                      "function owner() view returns (address)",
                      "function positions(address account) view returns (tuple(uint64 id, uint64 lastFundingIndex, uint128 margin, uint128 lastPrice, int128 size))",
                      "function postTradeDetails(int256 sizeDelta, uint256 tradePrice, uint8 orderType, address sender) view returns (uint256 margin, int256 size, uint256 price, uint256 liqPrice, uint256 fee, uint8 status)",
                      "function profitLoss(address account) view returns (int256 pnl, bool invalid)",
                      "function rebuildCache()",
                      "function remainingMargin(address account) view returns (uint256 marginRemaining, bool invalid)",
                      "function resolver() view returns (address)",
                      "function resolverAddressesRequired() view returns (bytes32[] addresses)",
                      "function unrecordedFunding() view returns (int256 funding, bool invalid)"
                    ],
                    "deployTxn": "",
                    "deployedOn": "run.synthetix"
                  },
                  "DynamicSynthRedeemer": {
                    "address": "0x64EA298C622c628C8b4C596c1e4403eb5AFcFff7",
                    "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://explorer.optimism.io/tx/0x1c26a29256621e98c38c74b87f9b46ea42f05f0e26abb105995a7739acffea16",
                    "deployedOn": "run.synthetix"
                  }
                },
                "txns": {},
                "extras": {
                  "network": "sepolia"
                }
              },
              "v3": {
                "url": "ipfs://QmZ7WEh7D1S63ry3hfyWEZ147G5TASCgo7fGGr8WMdqiWa",
                "contracts": {
                  "AccountModule": {
                    "address": "0x3B078D6C1B6D114815C495C99B177200A4872649",
                    "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": "",
                    "deployTxnBlockNumber": "134084191",
                    "deployTimestamp": "1743767168",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "1000283544"
                  },
                  "AccountTokenModule": {
                    "address": "0x9977BD49DF09Ec3Fad35e15048f768d95ecb9743",
                    "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": "",
                    "deployTxnBlockNumber": "132268892",
                    "deployTimestamp": "1740136561",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "1026773"
                  },
                  "AssociateDebtModule": {
                    "address": "0x2436703aBb814DFF0f5b394FD28eb5DD1E7dA400",
                    "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": "",
                    "deployTxnBlockNumber": "134084192",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "1000250998"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0xF297E891d7f92b842B17fcfa3e70Da29aCaEc6De",
                    "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": "",
                    "deployTxnBlockNumber": "124713645",
                    "deployTimestamp": "1725026067",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1392076"
                  },
                  "CcipReceiverModule": {
                    "address": "0xD15fdC12Cc41D5083b194f6c2F6E9Be71677c099",
                    "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": "",
                    "deployTxnBlockNumber": "124713647",
                    "deployTimestamp": "1725026071",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "1391181"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x5d94EE64C5e698DBEeB95a3D0d5A0D4B8B8Bc647",
                    "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": "",
                    "deployTxnBlockNumber": "132268900",
                    "deployTimestamp": "1740136577",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "1026879"
                  },
                  "CollateralModule": {
                    "address": "0x5C4909b982a106F9f59BD8D6b44c4D38B18E064E",
                    "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": "",
                    "deployTxnBlockNumber": "134084193",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "1000225088"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xD237F237356e456214Ad5b57e0A962d632F1F3C5",
                    "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": "",
                    "deployTxnBlockNumber": "124713653",
                    "deployTimestamp": "1725026083",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "1391610"
                  },
                  "FeatureFlagModule": {
                    "address": "0x5559A519FdC9F210a96075aD969F56FD2DC48a58",
                    "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": "",
                    "deployTxnBlockNumber": "124713655",
                    "deployTimestamp": "1725026087",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "1391189"
                  },
                  "IssueUSDModule": {
                    "address": "0x058Dc95F4628DCF7CBFe702fCE0Ec433C6D094F7",
                    "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": "",
                    "deployTxnBlockNumber": "134084194",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "1000200587"
                  },
                  "LiquidationModule": {
                    "address": "0x4cb44De9e943347E701E9A1D3d80004eE1e9159e",
                    "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": "",
                    "deployTxnBlockNumber": "134084195",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "1000180601"
                  },
                  "MarketCollateralModule": {
                    "address": "0xbB46F9FB7BB2c73C9486148bFc70BCDF6A2bEaaF",
                    "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": "",
                    "deployTxnBlockNumber": "132268910",
                    "deployTimestamp": "1740136597",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "1027039"
                  },
                  "MarketManagerModule": {
                    "address": "0x0CB4bf413d8eabe0F7892eAaE9f69F3fa31094dC",
                    "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": "",
                    "deployTxnBlockNumber": "132268913",
                    "deployTimestamp": "1740136603",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "1026999"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x3093cbba626e60E4164975f5b15dD1c0D03BF927",
                    "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": "",
                    "deployTxnBlockNumber": "132268915",
                    "deployTimestamp": "1740136607",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "1026961"
                  },
                  "PoolModule": {
                    "address": "0x600f30C285c11f1a94f282A933B24Fb5fDa13Cf3",
                    "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": "",
                    "deployTxnBlockNumber": "132268918",
                    "deployTimestamp": "1740136613",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "1026984"
                  },
                  "RewardsManagerModule": {
                    "address": "0x7CeA62f6191e7990c55A218D1874e40629feEc27",
                    "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": "",
                    "deployTxnBlockNumber": "134084196",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "1000164980"
                  },
                  "USDTokenModule": {
                    "address": "0xDaf89F5a0125E7eBA36cd01B5A3C40b76F697B91",
                    "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": "",
                    "deployTxnBlockNumber": "132268924",
                    "deployTimestamp": "1740136625",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "1026896"
                  },
                  "UtilsModule": {
                    "address": "0x750714EC1357042e2102BC25E20e5359C27168d3",
                    "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": "",
                    "deployTxnBlockNumber": "132268926",
                    "deployTimestamp": "1740136629",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "1026953"
                  },
                  "VaultModule": {
                    "address": "0x255fD9cDF297fFe30f62bcC39fD2f1Cd71414e7d",
                    "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": "",
                    "deployTxnBlockNumber": "134084197",
                    "deployTimestamp": "1743767171",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "1000147991"
                  },
                  "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"
                  },
                  "InitialCoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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",
                      "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy"
                  },
                  "AccountRouter": {
                    "address": "0x52899a903a9585329c38f6e89e1f110c2e0f6665",
                    "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": "",
                    "deployTxnBlockNumber": "132268933",
                    "deployTimestamp": "1740136643",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "1026885"
                  },
                  "CoreRouter": {
                    "address": "0xe3b41fe8769a00c25a88f57cb23d892312c60e0e",
                    "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": "",
                    "deployTxnBlockNumber": "134084198",
                    "deployTimestamp": "1743767182",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621066,
                    "gasCost": "1000135329"
                  },
                  "USDRouter": {
                    "address": "0x95ac74dd94013a611d4a1111fc02c04056132637",
                    "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": "",
                    "deployTxnBlockNumber": "132268937",
                    "deployTimestamp": "1740136651",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087424,
                    "gasCost": "1026824"
                  },
                  "CoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                    "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": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                    "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"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmcxXmEECH4NY6BSj7gAPEM7KX93Xu6a4NJJi1Hsbn9K5c",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1fA92386075F90E7a12FB33e448494Bb1c3FE786",
                        "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": "",
                        "deployTxnBlockNumber": "132268873",
                        "deployTimestamp": "1740136523",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "1026798"
                      },
                      "CoreModule": {
                        "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                        "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": "1740136531",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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": [
                          "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1740136531",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x27d97fa42409251e3ff4bb614ca93d6a0d5562cb",
                        "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": "",
                        "deployTxnBlockNumber": "132268883",
                        "deployTimestamp": "1740136543",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "1026851"
                      },
                      "Proxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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://QmdpEzqkBqFuyC7G25bqVE6AtyMdGRXJ2qdsAU2k2h2s4V",
                        "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": "1740136527",
                            "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": "0x6985af9dbc7fbaa1e65e88575159b486fc6686ddec0ab8b85d17493260595ae3",
                        "blockNumber": "132270280",
                        "timestamp": "1740139348",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                                "0x27d97FA42409251e3ff4bB614ca93D6A0d5562cB"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55376,
                        "gasCost": "1000007992",
                        "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0x4864e353f599660be16bd43201619e42e4b3deb1b19bab25ef15f6fe44b871c7",
                    "blockNumber": "134084199",
                    "timestamp": "1743767185",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                            "0xE3B41fE8769a00C25A88f57CB23D892312c60E0E"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51359,
                    "gasCost": "1000124752",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "",
                    "blockNumber": "124713838",
                    "timestamp": "1725026487",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000319260",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "",
                    "blockNumber": "124713839",
                    "timestamp": "1725026489",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 37119,
                    "gasCost": "1000279452",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_createAccount": {
                    "hash": "",
                    "blockNumber": "124713840",
                    "timestamp": "1725026492",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 37131,
                    "gasCost": "1000244607",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "",
                    "blockNumber": "124713841",
                    "timestamp": "1725026494",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 37191,
                    "gasCost": "1000214107",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_deposit": {
                    "hash": "",
                    "blockNumber": "124713842",
                    "timestamp": "1725026496",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 37059,
                    "gasCost": "1000187410",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713843",
                    "timestamp": "1725026498",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 37251,
                    "gasCost": "1000164042",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713844",
                    "timestamp": "1725026501",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 37167,
                    "gasCost": "1000143588",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidate": {
                    "hash": "",
                    "blockNumber": "124713845",
                    "timestamp": "1725026503",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 37083,
                    "gasCost": "1000125684",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xe4f4d03c4f196a866f6287fce2b7da1376312297e19ed6cd624fbe7608da614f",
                    "blockNumber": "134084200",
                    "timestamp": "1743767186",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "1000109212",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "",
                    "blockNumber": "124713846",
                    "timestamp": "1725026505",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 37143,
                    "gasCost": "1000110013",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0x099ab75b58ccb37150d87e3a66209bfbe5687013e4691dbb00ea8c658f59c2f1",
                    "blockNumber": "132270285",
                    "timestamp": "1740139390",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "1000004528",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "",
                    "blockNumber": "124713847",
                    "timestamp": "1725026507",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000096296",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdraw": {
                    "hash": "",
                    "blockNumber": "124713848",
                    "timestamp": "1725026509",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 37071,
                    "gasCost": "1000084289",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713849",
                    "timestamp": "1725026511",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 37263,
                    "gasCost": "1000073779",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713850",
                    "timestamp": "1725026513",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 37179,
                    "gasCost": "1000064580",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_account": {
                    "hash": "0x09905fe6346878fed7607f696258473e24293900127d03f60e55fa67fbc77e25",
                    "blockNumber": "132270286",
                    "timestamp": "1740139395",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80766,
                    "gasCost": "1000003965",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_usd": {
                    "hash": "0x9f1ea2ae2ba10c1425be07610f3baf4db22cad21e80decb2a06e37d0dfc58df2",
                    "blockNumber": "132270287",
                    "timestamp": "1740139402",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94074,
                    "gasCost": "1000003473",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "set_oracle_manager": {
                    "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            [
                              true,
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x00"
                              },
                              "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                              {
                                "type": "BigNumber",
                                "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                              }
                            ]
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral"
                  }
                },
                "extras": {
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                  "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"
                }
              }
            },
            "txns": {
              "setFeatureFlagPool": {
                "hash": "0x1a941c8a6dca239f0ebea88d75881e139ecc566c8740a2e5551240a65e7c00ef",
                "blockNumber": "132270291",
                "timestamp": "1740139437",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x637265617465506f6f6c00000000000000000000000000000000000000000000",
                        "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagPool",
                "gasUsed": 84525,
                "gasCost": "1000002041",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "upgradeProxy": {
                "hash": "0x5b7fcaae3ec5ceecaeecf40e8bf36c78d6eb822f7b2b231952870181ef22d963",
                "blockNumber": "134084205",
                "timestamp": "1743767202",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x19F03FCf06204DF85b2593145b87134D3366170c",
                        "0x24A3074e41B534480B210E6198F40D9d98F23DBa"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeProxy",
                "gasUsed": 47819,
                "gasCost": "1000057712",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "authorizedBroker": {
                "hash": "0x2d2e54bce9bfe73658dad185036be6614a17103b8eaafa55ff1241754c3926bf",
                "blockNumber": "132270293",
                "timestamp": "1740139445",
                "events": {
                  "ChangeAuthorizedBroker": [
                    {
                      "name": "ChangeAuthorizedBroker",
                      "args": [
                        "0x19F03FCf06204DF85b2593145b87134D3366170c",
                        true
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.authorizedBroker",
                "gasUsed": 47582,
                "gasCost": "1000001566",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setFeatureFlagAssociateDebt": {
                "hash": "0xfb80ca7784a7fd01cb3ca56fef24fab201064c0e5c007da2f1942be29dc9ea23",
                "blockNumber": "132270294",
                "timestamp": "1740139446",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x6173736f63696174654465627400000000000000000000000000000000000000",
                        "0x19F03FCf06204DF85b2593145b87134D3366170c"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagAssociateDebt",
                "gasUsed": 101661,
                "gasCost": "1000001371",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setFeatureFlagMarket": {
                "hash": "0xec4969912de509c810699685fb23b9d898da3161b4927765cdd3afe4dc7f4416",
                "blockNumber": "132270295",
                "timestamp": "1740139448",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x19F03FCf06204DF85b2593145b87134D3366170c"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagMarket",
                "gasUsed": 84573,
                "gasCost": "1000001201",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setSystemAddresses": {
                "hash": "0x93539ebfab547a1d49f68e559dc3587cc505a88639212bfe16d5ed3012f91059",
                "blockNumber": "132270296",
                "timestamp": "1740139454",
                "events": {},
                "deployedOn": "invoke.setSystemAddresses",
                "gasUsed": 134881,
                "gasCost": "1000001052",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "registerMarket": {
                "hash": "0x90292f4740aa20a7d022ff27eae537f574ad33c2091c95ca1420acadbf2cc381",
                "blockNumber": "132270297",
                "timestamp": "1740139459",
                "events": {
                  "MarketRegistered": [
                    {
                      "name": "MarketRegistered",
                      "args": [
                        "0x19F03FCf06204DF85b2593145b87134D3366170c",
                        "2",
                        "0x19F03FCf06204DF85b2593145b87134D3366170c"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.registerMarket",
                "gasUsed": 198253,
                "gasCost": "1000000922",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setConfigAssociateUnlimitedDebt": {
                "hash": "0x420fde58abbb9e00f1cf94c20be8196aa30e52d695bdd134f8cb6daf077d2cdf",
                "blockNumber": "132270298",
                "timestamp": "1740139460",
                "events": {
                  "ConfigSet": [
                    {
                      "name": "ConfigSet",
                      "args": [
                        "0xe0a1438c8a3b4ce1a61d00dd9bef2a5451e1196957c6512afdd2f72741eea00f",
                        "0x00000000000000000000000019f03fcf06204df85b2593145b87134d3366170c"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setConfigAssociateUnlimitedDebt",
                "gasUsed": 56671,
                "gasCost": "1000000809",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "pool_owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "sc_pool_id": "1",
              "v2x_package": "synthetix:2.101.2",
              "v3_package": "synthetix:3.3.15",
              "market_id": "2"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.disableLiquidate": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "disableLiquidate": {
            "hash": "0xc92df9c5a9dda5d5737b77e57173b80e9aca0f890331b57a5431976ec2fa91a8",
            "blockNumber": "132270288",
            "timestamp": "1740139426",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x6c69717569646174650000000000000000000000000000000000000000000000",
                    false
                  ]
                }
              ]
            },
            "deployedOn": "invoke.disableLiquidate",
            "gasUsed": 34535,
            "gasCost": "1000003042",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "bb6914c2ef286f8c075f4048b2478a93",
      "version": 7
    },
    "invoke.disableLiquidateVault": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "disableLiquidateVault": {
            "hash": "0xea1175ad759c487cb0477a243e23e842e4acebd2bc911ac0131352b8bdf994c3",
            "blockNumber": "132270289",
            "timestamp": "1740139427",
            "events": {
              "FeatureFlagAllowAllSet": [
                {
                  "name": "FeatureFlagAllowAllSet",
                  "args": [
                    "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                    false
                  ]
                }
              ]
            },
            "deployedOn": "invoke.disableLiquidateVault",
            "gasUsed": 34595,
            "gasCost": "1000002663",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "0a1e35f21254751f5f64aa9067612bdc",
      "version": 7
    },
    "invoke.setPositionManagerOverrideWithdrawTimeout": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setPositionManagerOverrideWithdrawTimeout": {
            "hash": "0x42e7b8b4c6e981a460b48e8bc340b198d52821989b838fdae3d97e177eed7722",
            "blockNumber": "132275594",
            "timestamp": "1740149988",
            "events": {
              "ConfigSet": [
                {
                  "name": "ConfigSet",
                  "args": [
                    "0xb75622a7f37c2a60b08cf4eaada70f5acefcfc90cd444bd0eaae938bde98cdb1",
                    "0x0000000000000000000000000000000000000000000000000000000000000001"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setPositionManagerOverrideWithdrawTimeout",
            "gasUsed": 56455,
            "gasCost": "1000000168",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "30492a52e838f372c49cdda888292249",
      "version": 7
    },
    "invoke.createTreasuryPool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "createTreasuryPool": {
            "hash": "0x61d3ba9cea74a892620038122bb5642480560a469c4011b0f4198904b60d6bcc",
            "blockNumber": "132270299",
            "timestamp": "1740139478",
            "events": {
              "PoolCreated": [
                {
                  "name": "PoolCreated",
                  "args": [
                    "8",
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C",
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.createTreasuryPool",
            "gasUsed": 82613,
            "gasCost": "1000000709",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {
          "treasury_pool_id": "8"
        }
      },
      "hash": "f940a90484d39faf66c1200db9bcbff6",
      "version": 7
    },
    "invoke.pauseLMMigration": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "pauseLMMigration": {
            "hash": "0xc2714681cc2eef3993d9587fdd84946bfa55362c2bd95865b886fb093fb315cb",
            "blockNumber": "132272545",
            "timestamp": "1740143912",
            "events": {
              "PauseMigrationSet": [
                {
                  "name": "PauseMigrationSet",
                  "args": [
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C",
                    false
                  ]
                }
              ]
            },
            "deployedOn": "invoke.pauseLMMigration",
            "gasUsed": 36040,
            "gasCost": "1000005145",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "1a3217f9605e6cc1a24b10d7e6dbbac2",
      "version": 7
    },
    "invoke.setTreasuryPoolCollateralDisabled": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setTreasuryPoolCollateralDisabled": {
            "hash": "0x9ef7e249c36b7ddd22cc02d6dffa3786edcfc8bc5f189dd36afaede1c6986b57",
            "blockNumber": "132270303",
            "timestamp": "1740139486",
            "events": {
              "PoolCollateralDisabledByDefaultSet": [
                {
                  "name": "PoolCollateralDisabledByDefaultSet",
                  "args": [
                    "8",
                    true
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setTreasuryPoolCollateralDisabled",
            "gasUsed": 58648,
            "gasCost": "1000000418",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "f876b99129fdc33d100af8c40909235c",
      "version": 7
    },
    "invoke.setTreasuryPoolName": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setTreasuryPoolName": {
            "hash": "0x7277f48ed2b11957529474bc362ca5f7320dc0033425ab8bf10f11219e9e66d0",
            "blockNumber": "132270304",
            "timestamp": "1740139487",
            "events": {
              "PoolNameUpdated": [
                {
                  "name": "PoolNameUpdated",
                  "args": [
                    "8",
                    "Treasury Pool",
                    "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setTreasuryPoolName",
            "gasUsed": 61007,
            "gasCost": "1000000366",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "5d0d576a787e200245d13eac701dc9fb",
      "version": 7
    },
    "invoke.setTreasuryPoolSnxExclusiveDeposit": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setTreasuryPoolSnxExclusiveDeposit": {
            "hash": "0xc2d1ba365bd9f5786a4fd010d06f605ed62562abe0edfa4367a3534005fc258b",
            "blockNumber": "132270305",
            "timestamp": "1740139488",
            "events": {
              "PoolCollateralConfigurationUpdated": [
                {
                  "name": "PoolCollateralConfigurationUpdated",
                  "args": [
                    "8",
                    "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4",
                    {
                      "collateralLimitD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935",
                      "issuanceRatioD18": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
                    }
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setTreasuryPoolSnxExclusiveDeposit",
            "gasUsed": 83022,
            "gasCost": "1000000321",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "adced736f8de5f860a3461333dd97e86",
      "version": 7
    },
    "provision.treasury_market": {
      "artifacts": {
        "imports": {
          "treasury_market": {
            "url": "ipfs://QmPDv6JAeKnU12KgR4UwjmCRG2EqxLE4xS9ZsWhvjBhNds",
            "tags": [
              "latest"
            ],
            "target": "synthetix-treasury-market:3.12.3@main",
            "preset": "main",
            "contracts": {
              "InitialModuleBundle": {
                "address": "0x3b0cA9B54C9c85E3223Ccc66F7163A33aB8f87FD",
                "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": "132270306",
                "deployTimestamp": "1740139495",
                "sourceName": "contracts/InitialModuleBundle.sol",
                "contractName": "InitialModuleBundle",
                "deployedOn": "deploy.InitialModuleBundle",
                "gasUsed": 497616,
                "gasCost": "1000000282"
              },
              "InitialProxy": {
                "address": "0x421dEc7c865469128c76f910351DF693cBf6Bf04",
                "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": [
                  "0x3b0cA9B54C9c85E3223Ccc66F7163A33aB8f87FD",
                  "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "132270307",
                "deployTimestamp": "1740139496",
                "sourceName": "contracts/SynthetixTreasuryProxy.sol",
                "contractName": "SynthetixTreasuryProxy",
                "deployedOn": "deploy.InitialProxy",
                "gasUsed": 163967,
                "gasCost": "1000000248"
              },
              "InitialStakingProxy": {
                "address": "0xA0639fBb49A5aE32e1309F17F2e553865d5B12fe",
                "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": [
                  "0x3b0cA9B54C9c85E3223Ccc66F7163A33aB8f87FD",
                  "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "135035145",
                "deployTimestamp": "1745669101",
                "sourceName": "contracts/SynthetixTreasuryProxy.sol",
                "contractName": "SynthetixTreasuryProxy",
                "deployedOn": "deploy.InitialStakingProxy",
                "gasUsed": 163979,
                "gasCost": "1000002665"
              },
              "StakingImpl": {
                "address": "0xF65063521F3f21Ddea43dD75179814A020cF3365",
                "abi": [
                  "constructor(address _stakingToken, address _treasuryMarket, address _recipient)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event Deposited(address indexed sender, uint128 indexed accountId, uint256 amount)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function balanceOf(uint128) view returns (uint256)",
                  "function deposit(uint128 accountId, uint256 amount)",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function recipient() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function stakingToken() view returns (address)",
                  "function totalDeposited() view returns (uint256)",
                  "function treasuryMarket() view returns (address)",
                  "function upgradeTo(address to)"
                ],
                "constructorArgs": [
                  "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9",
                  "0x421dEc7c865469128c76f910351DF693cBf6Bf04",
                  "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "136154025",
                "deployTimestamp": "1747906844",
                "sourceName": "contracts/TreasuryStakingRewards.sol",
                "contractName": "TreasuryStakingRewards",
                "deployedOn": "deploy.StakingImpl",
                "gasUsed": 739339,
                "gasCost": "1000344219"
              },
              "MarketImpl": {
                "address": "0x9a49A1146b513a1c71219e287C37b516A275cA77",
                "abi": [
                  "constructor(address v3SystemAddress, address oracleManagerAddress, address treasuryAddress, uint128 v3PoolId, address collateralTokenAddress)",
                  "error ImplementationIsSterile(address implementation)",
                  "error InsufficientCRatio(uint128 accountId, uint256 currentDebt, uint256 targetDebt)",
                  "error InsufficientExcessDebt(int256 neededToRepay, int256 ableToRepay)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketAlreadyRegistered(uint128 marketId)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error OutstandingLoan(uint128 accountId, uint256 outstandingLoanAmount)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event AccountSaddled(uint128 indexed accountId, uint256 collateralAmount, uint256 debtAssigned)",
                  "event AccountUnsaddled(uint128 indexed accountId, uint256 collateralAmount, uint256 debtUnassigned)",
                  "event AuxTokenDepositChanged(uint128 indexed accountId, uint256 newAuxTokenDeposit, uint256 oldAuxTokenDeposit)",
                  "event DebtDecayUpdated(uint32 power, uint32 duration, uint128 startPenalty, uint128 endPenalty)",
                  "event LoanAdjusted(uint128 indexed accountId, uint256 newLoanedAmount, uint256 previousLoanedAmount)",
                  "event LoanDurationAdjusted(uint128 indexed accountId, uint32 newLoanDuration, uint32 previousLoanDuration)",
                  "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Rebalanced(int256 previousVaultDebt, int256 newVaultDebt)",
                  "event TargetCRatioSet(uint256 newCRatio)",
                  "event TreasuryBurned(uint256 amount)",
                  "event TreasuryMinted(uint256 amount)",
                  "event UpdateAuxTokenRequirement(uint256 timestamp, uint256 requiredRatio)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function adjustLoan(uint128 accountId, uint256 amount)",
                  "function artificialDebt() view returns (int256)",
                  "function auxTokenInfo(uint128) view returns (uint128 amount, uint64 lastUpdated, uint32 timeInsufficient, uint32 epoch)",
                  "function availableDepositRewards(address) view returns (uint256)",
                  "function burnTreasury(uint256 amount)",
                  "function collateralToken() view returns (address)",
                  "function getImplementation() view returns (address)",
                  "function loanedAmount(uint128 accountId) view returns (uint256)",
                  "function loans(uint128) view returns (uint64 startTime, uint32 power, uint32 duration, uint128 loanAmount)",
                  "function marketId() view returns (uint128)",
                  "function minimumCredit(uint128) view returns (uint256 lockedAmount)",
                  "function mintTreasury(uint256 amount)",
                  "function name(uint128) pure returns (string)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function onERC721Received(address, address, uint256, bytes) pure returns (bytes4)",
                  "function owner() view returns (address)",
                  "function poolId() view returns (uint128)",
                  "function rebalance()",
                  "function registerMarket() returns (uint128 newMarketId)",
                  "function renounceNomination()",
                  "function repaymentPenalty(uint128 accountId, uint256 targetLoan) view returns (uint256)",
                  "function reportAuxToken(uint128 accountId)",
                  "function reportedDebt(uint128 requestedMarketId) view returns (uint256 debt)",
                  "function saddle(uint128 accountId)",
                  "function saddledCollateral(uint128) view returns (uint256)",
                  "function setDebtDecayFunction(uint32 power, uint32 time, uint128 startPenalty, uint128 endPenalty)",
                  "function setOverrideLoanDuration(uint128 accountId, uint32 loanDuration)",
                  "function setTargetCRatio(uint256 ratio)",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function targetCratio() view returns (uint256)",
                  "function totalSaddledCollateral() view returns (uint256)",
                  "function treasury() view returns (address)",
                  "function unsaddle(uint128 accountId)",
                  "function updateAuxToken(address newAuxTokenRewardsAddress, uint256 requiredRatio, uint256 resetTime) returns (uint256)",
                  "function upgradeTo(address to)"
                ],
                "constructorArgs": [
                  "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                  "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                  "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99",
                  "8",
                  "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4"
                ],
                "linkedLibraries": {},
                "deployTxnHash": "",
                "deployTxnBlockNumber": "136154026",
                "deployTimestamp": "1747906844",
                "sourceName": "contracts/TreasuryMarket.sol",
                "contractName": "TreasuryMarket",
                "deployedOn": "deploy.MarketImpl",
                "gasUsed": 4168550,
                "gasCost": "1000303313"
              },
              "StakingProxy": {
                "address": "0xA0639fBb49A5aE32e1309F17F2e553865d5B12fe",
                "abi": [
                  "constructor(address _stakingToken, address _treasuryMarket, address _recipient)",
                  "error ImplementationIsSterile(address implementation)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event Deposited(address indexed sender, uint128 indexed accountId, uint256 amount)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function balanceOf(uint128) view returns (uint256)",
                  "function deposit(uint128 accountId, uint256 amount)",
                  "function getImplementation() view returns (address)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function owner() view returns (address)",
                  "function recipient() view returns (address)",
                  "function renounceNomination()",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function stakingToken() view returns (address)",
                  "function totalDeposited() view returns (uint256)",
                  "function treasuryMarket() view returns (address)",
                  "function upgradeTo(address to)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.InitialModuleBundle.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "contracts/SynthetixTreasuryProxy.sol",
                "contractName": "SynthetixTreasuryProxy",
                "deployedOn": "invoke.upgradeStakingProxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              },
              "Proxy": {
                "address": "0x421dEc7c865469128c76f910351DF693cBf6Bf04",
                "abi": [
                  "constructor(address v3SystemAddress, address oracleManagerAddress, address treasuryAddress, uint128 v3PoolId, address collateralTokenAddress)",
                  "error ImplementationIsSterile(address implementation)",
                  "error InsufficientCRatio(uint128 accountId, uint256 currentDebt, uint256 targetDebt)",
                  "error InsufficientExcessDebt(int256 neededToRepay, int256 ableToRepay)",
                  "error InvalidParameter(string parameter, string reason)",
                  "error MarketAlreadyRegistered(uint128 marketId)",
                  "error NoChange()",
                  "error NotAContract(address contr)",
                  "error NotNominated(address addr)",
                  "error OutstandingLoan(uint128 accountId, uint256 outstandingLoanAmount)",
                  "error OverflowInt256ToUint256()",
                  "error OverflowUint256ToInt256()",
                  "error OverflowUint256ToUint128()",
                  "error OverflowUint256ToUint32()",
                  "error Unauthorized(address addr)",
                  "error UpgradeSimulationFailed()",
                  "error ZeroAddress()",
                  "event AccountSaddled(uint128 indexed accountId, uint256 collateralAmount, uint256 debtAssigned)",
                  "event AccountUnsaddled(uint128 indexed accountId, uint256 collateralAmount, uint256 debtUnassigned)",
                  "event AuxTokenDepositChanged(uint128 indexed accountId, uint256 newAuxTokenDeposit, uint256 oldAuxTokenDeposit)",
                  "event DebtDecayUpdated(uint32 power, uint32 duration, uint128 startPenalty, uint128 endPenalty)",
                  "event LoanAdjusted(uint128 indexed accountId, uint256 newLoanedAmount, uint256 previousLoanedAmount)",
                  "event LoanDurationAdjusted(uint128 indexed accountId, uint32 newLoanDuration, uint32 previousLoanDuration)",
                  "event MarketRegistered(address indexed market, uint128 indexed marketId, address indexed sender)",
                  "event OwnerChanged(address oldOwner, address newOwner)",
                  "event OwnerNominated(address newOwner)",
                  "event Rebalanced(int256 previousVaultDebt, int256 newVaultDebt)",
                  "event TargetCRatioSet(uint256 newCRatio)",
                  "event TreasuryBurned(uint256 amount)",
                  "event TreasuryMinted(uint256 amount)",
                  "event UpdateAuxTokenRequirement(uint256 timestamp, uint256 requiredRatio)",
                  "event Upgraded(address indexed self, address implementation)",
                  "function acceptOwnership()",
                  "function adjustLoan(uint128 accountId, uint256 amount)",
                  "function artificialDebt() view returns (int256)",
                  "function auxTokenInfo(uint128) view returns (uint128 amount, uint64 lastUpdated, uint32 timeInsufficient, uint32 epoch)",
                  "function availableDepositRewards(address) view returns (uint256)",
                  "function burnTreasury(uint256 amount)",
                  "function collateralToken() view returns (address)",
                  "function getImplementation() view returns (address)",
                  "function loanedAmount(uint128 accountId) view returns (uint256)",
                  "function loans(uint128) view returns (uint64 startTime, uint32 power, uint32 duration, uint128 loanAmount)",
                  "function marketId() view returns (uint128)",
                  "function minimumCredit(uint128) view returns (uint256 lockedAmount)",
                  "function mintTreasury(uint256 amount)",
                  "function name(uint128) pure returns (string)",
                  "function nominateNewOwner(address newNominatedOwner)",
                  "function nominatedOwner() view returns (address)",
                  "function onERC721Received(address, address, uint256, bytes) pure returns (bytes4)",
                  "function owner() view returns (address)",
                  "function poolId() view returns (uint128)",
                  "function rebalance()",
                  "function registerMarket() returns (uint128 newMarketId)",
                  "function renounceNomination()",
                  "function repaymentPenalty(uint128 accountId, uint256 targetLoan) view returns (uint256)",
                  "function reportAuxToken(uint128 accountId)",
                  "function reportedDebt(uint128 requestedMarketId) view returns (uint256 debt)",
                  "function saddle(uint128 accountId)",
                  "function saddledCollateral(uint128) view returns (uint256)",
                  "function setDebtDecayFunction(uint32 power, uint32 time, uint128 startPenalty, uint128 endPenalty)",
                  "function setOverrideLoanDuration(uint128 accountId, uint32 loanDuration)",
                  "function setTargetCRatio(uint256 ratio)",
                  "function simulateUpgradeTo(address newImplementation)",
                  "function supportsInterface(bytes4 interfaceId) view returns (bool)",
                  "function targetCratio() view returns (uint256)",
                  "function totalSaddledCollateral() view returns (uint256)",
                  "function treasury() view returns (address)",
                  "function unsaddle(uint128 accountId)",
                  "function updateAuxToken(address newAuxTokenRewardsAddress, uint256 requiredRatio, uint256 resetTime) returns (uint256)",
                  "function upgradeTo(address to)"
                ],
                "deployTxnHash": "",
                "deployTxnBlockNumber": "",
                "deployTimestamp": "",
                "constructorArgs": [
                  "<%= contracts.InitialModuleBundle.address %>",
                  "<%= settings.owner %>"
                ],
                "sourceName": "contracts/SynthetixTreasuryProxy.sol",
                "contractName": "SynthetixTreasuryProxy",
                "deployedOn": "invoke.upgradeProxy",
                "gasUsed": 0,
                "gasCost": "0",
                "highlight": true
              }
            },
            "settings": {
              "aux_recipient": "0x0000000000000000000000000000000000000000",
              "aux_reset_time": "604800",
              "aux_token": "0x0000000000000000000000000000000000000000",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "pool_id": "1",
              "required_aux_token_ratio": "0",
              "treasury_address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "v3_package": "synthetix:latest",
              "collateral_token": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
              "market_id": "3"
            },
            "imports": {
              "v3": {
                "url": "ipfs://QmZ7WEh7D1S63ry3hfyWEZ147G5TASCgo7fGGr8WMdqiWa",
                "contracts": {
                  "AccountModule": {
                    "address": "0x3B078D6C1B6D114815C495C99B177200A4872649",
                    "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": "",
                    "deployTxnBlockNumber": "134084191",
                    "deployTimestamp": "1743767168",
                    "sourceName": "contracts/modules/core/AccountModule.sol",
                    "contractName": "AccountModule",
                    "deployedOn": "contract.AccountModule",
                    "gasUsed": 1225797,
                    "gasCost": "1000283544"
                  },
                  "AccountTokenModule": {
                    "address": "0x9977BD49DF09Ec3Fad35e15048f768d95ecb9743",
                    "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": "",
                    "deployTxnBlockNumber": "132268892",
                    "deployTimestamp": "1740136561",
                    "sourceName": "contracts/modules/account/AccountTokenModule.sol",
                    "contractName": "AccountTokenModule",
                    "deployedOn": "contract.AccountTokenModule",
                    "gasUsed": 1787668,
                    "gasCost": "1026773"
                  },
                  "AssociateDebtModule": {
                    "address": "0x2436703aBb814DFF0f5b394FD28eb5DD1E7dA400",
                    "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": "",
                    "deployTxnBlockNumber": "134084192",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/AssociateDebtModule.sol",
                    "contractName": "AssociateDebtModule",
                    "deployedOn": "contract.AssociateDebtModule",
                    "gasUsed": 2612609,
                    "gasCost": "1000250998"
                  },
                  "AssociatedSystemsModule": {
                    "address": "0xF297E891d7f92b842B17fcfa3e70Da29aCaEc6De",
                    "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": "",
                    "deployTxnBlockNumber": "124713645",
                    "deployTimestamp": "1725026067",
                    "sourceName": "contracts/modules/associated-systems/AssociatedSystemsModule.sol",
                    "contractName": "AssociatedSystemsModule",
                    "deployedOn": "contract.AssociatedSystemsModule",
                    "gasUsed": 877153,
                    "gasCost": "1392076"
                  },
                  "CcipReceiverModule": {
                    "address": "0xD15fdC12Cc41D5083b194f6c2F6E9Be71677c099",
                    "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": "",
                    "deployTxnBlockNumber": "124713647",
                    "deployTimestamp": "1725026071",
                    "sourceName": "contracts/modules/core/CcipReceiverModule.sol",
                    "contractName": "CcipReceiverModule",
                    "deployedOn": "contract.CcipReceiverModule",
                    "gasUsed": 469476,
                    "gasCost": "1391181"
                  },
                  "CollateralConfigurationModule": {
                    "address": "0x5d94EE64C5e698DBEeB95a3D0d5A0D4B8B8Bc647",
                    "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": "",
                    "deployTxnBlockNumber": "132268900",
                    "deployTimestamp": "1740136577",
                    "sourceName": "contracts/modules/core/CollateralConfigurationModule.sol",
                    "contractName": "CollateralConfigurationModule",
                    "deployedOn": "contract.CollateralConfigurationModule",
                    "gasUsed": 872728,
                    "gasCost": "1026879"
                  },
                  "CollateralModule": {
                    "address": "0x5C4909b982a106F9f59BD8D6b44c4D38B18E064E",
                    "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": "",
                    "deployTxnBlockNumber": "134084193",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/CollateralModule.sol",
                    "contractName": "CollateralModule",
                    "deployedOn": "contract.CollateralModule",
                    "gasUsed": 1937434,
                    "gasCost": "1000225088"
                  },
                  "CrossChainUSDModule": {
                    "address": "0xD237F237356e456214Ad5b57e0A962d632F1F3C5",
                    "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": "",
                    "deployTxnBlockNumber": "124713653",
                    "deployTimestamp": "1725026083",
                    "sourceName": "contracts/modules/core/CrossChainUSDModule.sol",
                    "contractName": "CrossChainUSDModule",
                    "deployedOn": "contract.CrossChainUSDModule",
                    "gasUsed": 595289,
                    "gasCost": "1391610"
                  },
                  "FeatureFlagModule": {
                    "address": "0x5559A519FdC9F210a96075aD969F56FD2DC48a58",
                    "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": "",
                    "deployTxnBlockNumber": "124713655",
                    "deployTimestamp": "1725026087",
                    "sourceName": "contracts/modules/core/FeatureFlagModule.sol",
                    "contractName": "FeatureFlagModule",
                    "deployedOn": "contract.FeatureFlagModule",
                    "gasUsed": 777054,
                    "gasCost": "1391189"
                  },
                  "IssueUSDModule": {
                    "address": "0x058Dc95F4628DCF7CBFe702fCE0Ec433C6D094F7",
                    "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": "",
                    "deployTxnBlockNumber": "134084194",
                    "deployTimestamp": "1743767169",
                    "sourceName": "contracts/modules/core/IssueUSDModule.sol",
                    "contractName": "IssueUSDModule",
                    "deployedOn": "contract.IssueUSDModule",
                    "gasUsed": 3042995,
                    "gasCost": "1000200587"
                  },
                  "LiquidationModule": {
                    "address": "0x4cb44De9e943347E701E9A1D3d80004eE1e9159e",
                    "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": "",
                    "deployTxnBlockNumber": "134084195",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/LiquidationModule.sol",
                    "contractName": "LiquidationModule",
                    "deployedOn": "contract.LiquidationModule",
                    "gasUsed": 4620402,
                    "gasCost": "1000180601"
                  },
                  "MarketCollateralModule": {
                    "address": "0xbB46F9FB7BB2c73C9486148bFc70BCDF6A2bEaaF",
                    "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": "",
                    "deployTxnBlockNumber": "132268910",
                    "deployTimestamp": "1740136597",
                    "sourceName": "contracts/modules/core/MarketCollateralModule.sol",
                    "contractName": "MarketCollateralModule",
                    "deployedOn": "contract.MarketCollateralModule",
                    "gasUsed": 1298300,
                    "gasCost": "1027039"
                  },
                  "MarketManagerModule": {
                    "address": "0x0CB4bf413d8eabe0F7892eAaE9f69F3fa31094dC",
                    "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": "",
                    "deployTxnBlockNumber": "132268913",
                    "deployTimestamp": "1740136603",
                    "sourceName": "contracts/modules/core/MarketManagerModule.sol",
                    "contractName": "MarketManagerModule",
                    "deployedOn": "contract.MarketManagerModule",
                    "gasUsed": 2816393,
                    "gasCost": "1026999"
                  },
                  "PoolConfigurationModule": {
                    "address": "0x3093cbba626e60E4164975f5b15dD1c0D03BF927",
                    "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": "",
                    "deployTxnBlockNumber": "132268915",
                    "deployTimestamp": "1740136607",
                    "sourceName": "contracts/modules/core/PoolConfigurationModule.sol",
                    "contractName": "PoolConfigurationModule",
                    "deployedOn": "contract.PoolConfigurationModule",
                    "gasUsed": 446271,
                    "gasCost": "1026961"
                  },
                  "PoolModule": {
                    "address": "0x600f30C285c11f1a94f282A933B24Fb5fDa13Cf3",
                    "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": "",
                    "deployTxnBlockNumber": "132268918",
                    "deployTimestamp": "1740136613",
                    "sourceName": "contracts/modules/core/PoolModule.sol",
                    "contractName": "PoolModule",
                    "deployedOn": "contract.PoolModule",
                    "gasUsed": 4099803,
                    "gasCost": "1026984"
                  },
                  "RewardsManagerModule": {
                    "address": "0x7CeA62f6191e7990c55A218D1874e40629feEc27",
                    "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": "",
                    "deployTxnBlockNumber": "134084196",
                    "deployTimestamp": "1743767170",
                    "sourceName": "contracts/modules/core/RewardsManagerModule.sol",
                    "contractName": "RewardsManagerModule",
                    "deployedOn": "contract.RewardsManagerModule",
                    "gasUsed": 2642251,
                    "gasCost": "1000164980"
                  },
                  "USDTokenModule": {
                    "address": "0xDaf89F5a0125E7eBA36cd01B5A3C40b76F697B91",
                    "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": "",
                    "deployTxnBlockNumber": "132268924",
                    "deployTimestamp": "1740136625",
                    "sourceName": "contracts/modules/usd/USDTokenModule.sol",
                    "contractName": "USDTokenModule",
                    "deployedOn": "contract.USDTokenModule",
                    "gasUsed": 1110294,
                    "gasCost": "1026896"
                  },
                  "UtilsModule": {
                    "address": "0x750714EC1357042e2102BC25E20e5359C27168d3",
                    "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": "",
                    "deployTxnBlockNumber": "132268926",
                    "deployTimestamp": "1740136629",
                    "sourceName": "contracts/modules/core/UtilsModule.sol",
                    "contractName": "UtilsModule",
                    "deployedOn": "contract.UtilsModule",
                    "gasUsed": 770698,
                    "gasCost": "1026953"
                  },
                  "VaultModule": {
                    "address": "0x255fD9cDF297fFe30f62bcC39fD2f1Cd71414e7d",
                    "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": "",
                    "deployTxnBlockNumber": "134084197",
                    "deployTimestamp": "1743767171",
                    "sourceName": "contracts/modules/core/VaultModule.sol",
                    "contractName": "VaultModule",
                    "deployedOn": "contract.VaultModule",
                    "gasUsed": 4732148,
                    "gasCost": "1000147991"
                  },
                  "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"
                  },
                  "InitialCoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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",
                      "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                    ],
                    "linkedLibraries": {},
                    "deployTxnHash": "",
                    "sourceName": "contracts/Proxy.sol",
                    "contractName": "Proxy",
                    "deployedOn": "contract.InitialCoreProxy"
                  },
                  "AccountRouter": {
                    "address": "0x52899a903a9585329c38f6e89e1f110c2e0f6665",
                    "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": "",
                    "deployTxnBlockNumber": "132268933",
                    "deployTimestamp": "1740136643",
                    "contractName": "AccountRouter",
                    "sourceName": "AccountRouter.sol",
                    "gasUsed": 1963401,
                    "gasCost": "1026885"
                  },
                  "CoreRouter": {
                    "address": "0xe3b41fe8769a00c25a88f57cb23d892312c60e0e",
                    "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": "",
                    "deployTxnBlockNumber": "134084198",
                    "deployTimestamp": "1743767182",
                    "contractName": "CoreRouter",
                    "sourceName": "CoreRouter.sol",
                    "gasUsed": 5621066,
                    "gasCost": "1000135329"
                  },
                  "USDRouter": {
                    "address": "0x95ac74dd94013a611d4a1111fc02c04056132637",
                    "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": "",
                    "deployTxnBlockNumber": "132268937",
                    "deployTimestamp": "1740136651",
                    "contractName": "USDRouter",
                    "sourceName": "USDRouter.sol",
                    "gasUsed": 2087424,
                    "gasCost": "1026824"
                  },
                  "CoreProxy": {
                    "address": "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                    "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": "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                    "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": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                    "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"
                },
                "imports": {
                  "oracle_manager": {
                    "url": "ipfs://QmcxXmEECH4NY6BSj7gAPEM7KX93Xu6a4NJJi1Hsbn9K5c",
                    "contracts": {
                      "NodeModule": {
                        "address": "0x1fA92386075F90E7a12FB33e448494Bb1c3FE786",
                        "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": "",
                        "deployTxnBlockNumber": "132268873",
                        "deployTimestamp": "1740136523",
                        "sourceName": "contracts/modules/NodeModule.sol",
                        "contractName": "NodeModule",
                        "deployedOn": "contract.NodeModule",
                        "gasUsed": 4896112,
                        "gasCost": "1026798"
                      },
                      "CoreModule": {
                        "address": "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                        "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": "1740136531",
                        "sourceName": "contracts/modules/CoreModule.sol",
                        "contractName": "CoreModule",
                        "deployedOn": "contract.CoreModule",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "InitialProxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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": [
                          "0x874573f87a53e6D9D6F11eE8Bb994E247dB55509",
                          "0x6E1613B5c68B4Cf2A58400D8019a97849A678139"
                        ],
                        "linkedLibraries": {},
                        "deployTxnHash": "",
                        "deployTxnBlockNumber": "",
                        "deployTimestamp": "1740136531",
                        "sourceName": "contracts/Proxy.sol",
                        "contractName": "Proxy",
                        "deployedOn": "contract.InitialProxy",
                        "gasUsed": 0,
                        "gasCost": "0"
                      },
                      "OracleRouter": {
                        "address": "0x27d97fa42409251e3ff4bb614ca93d6a0d5562cb",
                        "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": "",
                        "deployTxnBlockNumber": "132268883",
                        "deployTimestamp": "1740136543",
                        "contractName": "OracleRouter",
                        "sourceName": "OracleRouter.sol",
                        "gasUsed": 1728151,
                        "gasCost": "1026851"
                      },
                      "Proxy": {
                        "address": "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                        "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://QmdpEzqkBqFuyC7G25bqVE6AtyMdGRXJ2qdsAU2k2h2s4V",
                        "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": "1740136527",
                            "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": "0x6985af9dbc7fbaa1e65e88575159b486fc6686ddec0ab8b85d17493260595ae3",
                        "blockNumber": "132270280",
                        "timestamp": "1740139348",
                        "events": {
                          "Upgraded": [
                            {
                              "name": "Upgraded",
                              "args": [
                                "0x0aaF300E148378489a8A471DD3e9E53E30cb42e3",
                                "0x27d97FA42409251e3ff4bB614ca93D6A0d5562cB"
                              ]
                            }
                          ]
                        },
                        "deployedOn": "invoke.upgrade_proxy",
                        "gasUsed": 55376,
                        "gasCost": "1000007992",
                        "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                      }
                    },
                    "extras": {
                      "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
                      "salt": "oracle-manager-official"
                    }
                  }
                },
                "txns": {
                  "register_const_one_oracle": {
                    "hash": "0xa82a7f9e708e7005ffc42a31cd0709ad6bfaf2736dc261a3f94bbc7e36f30790",
                    "events": {
                      "NodeRegistered": [
                        {
                          "name": "NodeRegistered",
                          "args": [
                            "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                            8,
                            "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
                            []
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.register_const_one_oracle"
                  },
                  "upgrade_core_proxy": {
                    "hash": "0x4864e353f599660be16bd43201619e42e4b3deb1b19bab25ef15f6fe44b871c7",
                    "blockNumber": "134084199",
                    "timestamp": "1743767185",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xffffffaEff0B96Ea8e4f94b2253f31abdD875847",
                            "0xE3B41fE8769a00C25A88f57CB23D892312c60E0E"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.upgrade_core_proxy",
                    "gasUsed": 51359,
                    "gasCost": "1000124752",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_burnUsd": {
                    "hash": "",
                    "blockNumber": "124713838",
                    "timestamp": "1725026487",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6275726e55736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_burnUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000319260",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_claimRewards": {
                    "hash": "",
                    "blockNumber": "124713839",
                    "timestamp": "1725026489",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x636c61696d526577617264730000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_claimRewards",
                    "gasUsed": 37119,
                    "gasCost": "1000279452",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_createAccount": {
                    "hash": "",
                    "blockNumber": "124713840",
                    "timestamp": "1725026492",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6372656174654163636f756e7400000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_createAccount",
                    "gasUsed": 37131,
                    "gasCost": "1000244607",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_delegateCollateral": {
                    "hash": "",
                    "blockNumber": "124713841",
                    "timestamp": "1725026494",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x64656c6567617465436f6c6c61746572616c0000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_delegateCollateral",
                    "gasUsed": 37191,
                    "gasCost": "1000214107",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_deposit": {
                    "hash": "",
                    "blockNumber": "124713842",
                    "timestamp": "1725026496",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f73697400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_deposit",
                    "gasUsed": 37059,
                    "gasCost": "1000187410",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713843",
                    "timestamp": "1725026498",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b6574436f6c6c61746572616c000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketCollateral",
                    "gasUsed": 37251,
                    "gasCost": "1000164042",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_depositMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713844",
                    "timestamp": "1725026501",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6465706f7369744d61726b657455736400000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_depositMarketUsd",
                    "gasUsed": 37167,
                    "gasCost": "1000143588",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidate": {
                    "hash": "",
                    "blockNumber": "124713845",
                    "timestamp": "1725026503",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174650000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidate",
                    "gasUsed": 37083,
                    "gasCost": "1000125684",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateToTreasury": {
                    "hash": "0xe4f4d03c4f196a866f6287fce2b7da1376312297e19ed6cd624fbe7608da614f",
                    "blockNumber": "134084200",
                    "timestamp": "1743767186",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateToTreasury",
                    "gasUsed": 57111,
                    "gasCost": "1000109212",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_liquidateVault": {
                    "hash": "",
                    "blockNumber": "124713846",
                    "timestamp": "1725026505",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6c69717569646174655661756c74000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_liquidateVault",
                    "gasUsed": 37143,
                    "gasCost": "1000110013",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_migrateDelegation": {
                    "hash": "0x099ab75b58ccb37150d87e3a66209bfbe5687013e4691dbb00ea8c658f59c2f1",
                    "blockNumber": "132270285",
                    "timestamp": "1740139390",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d69677261746544656c65676174696f6e000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_migrateDelegation",
                    "gasUsed": 57087,
                    "gasCost": "1000004528",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_mintUsd": {
                    "hash": "",
                    "blockNumber": "124713847",
                    "timestamp": "1725026507",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x6d696e7455736400000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_mintUsd",
                    "gasUsed": 37059,
                    "gasCost": "1000096296",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdraw": {
                    "hash": "",
                    "blockNumber": "124713848",
                    "timestamp": "1725026509",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x7769746864726177000000000000000000000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdraw",
                    "gasUsed": 37071,
                    "gasCost": "1000084289",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketCollateral": {
                    "hash": "",
                    "blockNumber": "124713849",
                    "timestamp": "1725026511",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574436f6c6c61746572616c0000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketCollateral",
                    "gasUsed": 37263,
                    "gasCost": "1000073779",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "enable_feature_withdrawMarketUsd": {
                    "hash": "",
                    "blockNumber": "124713850",
                    "timestamp": "1725026513",
                    "events": {
                      "FeatureFlagAllowAllSet": [
                        {
                          "name": "FeatureFlagAllowAllSet",
                          "args": [
                            "0x77697468647261774d61726b6574557364000000000000000000000000000000",
                            true
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.enable_feature_withdrawMarketUsd",
                    "gasUsed": 37179,
                    "gasCost": "1000064580",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_account": {
                    "hash": "0x09905fe6346878fed7607f696258473e24293900127d03f60e55fa67fbc77e25",
                    "blockNumber": "132270286",
                    "timestamp": "1740139395",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633732310000000000000000000000000000000000000000000000000000",
                            "0x6163636f756e744e667400000000000000000000000000000000000000000000",
                            "0x0E429603D3Cb1DFae4E6F52Add5fE82d96d77Dac",
                            "0x52899A903a9585329C38f6E89e1f110C2e0F6665"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_account",
                    "gasUsed": 80766,
                    "gasCost": "1000003965",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "init_usd": {
                    "hash": "0x9f1ea2ae2ba10c1425be07610f3baf4db22cad21e80decb2a06e37d0dfc58df2",
                    "blockNumber": "132270287",
                    "timestamp": "1740139402",
                    "events": {
                      "Upgraded": [
                        {
                          "name": "Upgraded",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ],
                      "AssociatedSystemSet": [
                        {
                          "name": "AssociatedSystemSet",
                          "args": [
                            "0x6572633230000000000000000000000000000000000000000000000000000000",
                            "0x555344546f6b656e000000000000000000000000000000000000000000000000",
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            "0x95Ac74dd94013a611d4a1111fC02c04056132637"
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.init_usd",
                    "gasUsed": 94074,
                    "gasCost": "1000003473",
                    "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
                  },
                  "set_oracle_manager": {
                    "hash": "0xd03305aa95cc88b323ae1a39d630343c4a2070d7180762475c21503a52be6633",
                    "events": {},
                    "deployedOn": "invoke.set_oracle_manager"
                  },
                  "configure_usd_collateral": {
                    "hash": "0x49cb353983f9e3ade89eabfcb406935fca5bec40cb129ffe0b25c0fe5124730e",
                    "events": {
                      "CollateralConfigured": [
                        {
                          "name": "CollateralConfigured",
                          "args": [
                            "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                            [
                              true,
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x8ac7230489e80000"
                              },
                              {
                                "type": "BigNumber",
                                "hex": "0x00"
                              },
                              "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                              "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
                              {
                                "type": "BigNumber",
                                "hex": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
                              }
                            ]
                          ]
                        }
                      ]
                    },
                    "deployedOn": "invoke.configure_usd_collateral"
                  }
                },
                "extras": {
                  "const_one_oracle_id": "0x066ef68c9d9ca51eee861aeb5bce51a12e61f06f10bf62243c563671ae3a9733",
                  "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"
                }
              }
            },
            "txns": {
              "upgradeStakingProxy": {
                "hash": "0xbb8c8ada9ccf4395f41fd4b57eae87456034b3b58e8f33855194195101fad880",
                "blockNumber": "136154027",
                "timestamp": "1747906845",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0xA0639fBb49A5aE32e1309F17F2e553865d5B12fe",
                        "0xF65063521F3f21Ddea43dD75179814A020cF3365"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeStakingProxy",
                "gasUsed": 47040,
                "gasCost": "1000275936",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "upgradeProxy": {
                "hash": "0x336c3f4c5dffd011c564191a461cd1dd8d0d73f677855cb3d0005e2bc5d804ed",
                "blockNumber": "136154028",
                "timestamp": "1747906845",
                "events": {
                  "Upgraded": [
                    {
                      "name": "Upgraded",
                      "args": [
                        "0x421dEc7c865469128c76f910351DF693cBf6Bf04",
                        "0x9a49A1146b513a1c71219e287C37b516A275cA77"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.upgradeProxy",
                "gasUsed": 47309,
                "gasCost": "1000241553",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setAuxTokenRewards": {
                "hash": "0x04015c7fb689f375fca06d3361f2cb779ac7574d1d8f9f9a9d56b2a9553525b3",
                "blockNumber": "136633218",
                "timestamp": "1748865252",
                "events": {
                  "UpdateAuxTokenRequirement": [
                    {
                      "name": "UpdateAuxTokenRequirement",
                      "args": [
                        "1748865252",
                        "200000000000000000"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setAuxTokenRewards",
                "gasUsed": 65991,
                "gasCost": "1000000243",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setFeatureFlagAssociateDebt": {
                "hash": "0xa53fcd82a96099b6b0ac7885e37156b9bc1683068dd9f785c7a815ab6f793d05",
                "blockNumber": "132270310",
                "timestamp": "1740139500",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x6173736f63696174654465627400000000000000000000000000000000000000",
                        "0x421dEc7c865469128c76f910351DF693cBf6Bf04"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagAssociateDebt",
                "gasUsed": 84561,
                "gasCost": "1000000173",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "setFeatureFlagMarket": {
                "hash": "0x04b4a2f6b08e79ba466dd01130a50dd4567b0f18760fab1a73e759afb2802ccd",
                "blockNumber": "132270311",
                "timestamp": "1740139501",
                "events": {
                  "FeatureFlagAllowlistAdded": [
                    {
                      "name": "FeatureFlagAllowlistAdded",
                      "args": [
                        "0x72656769737465724d61726b6574000000000000000000000000000000000000",
                        "0x421dEc7c865469128c76f910351DF693cBf6Bf04"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.setFeatureFlagMarket",
                "gasUsed": 84573,
                "gasCost": "1000000152",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              },
              "registerMarket": {
                "hash": "0x0d066d15a6bff4f8fddfbdc3da77b20b4a77f46001080d5dee797308bb322bb2",
                "blockNumber": "132270312",
                "timestamp": "1740139504",
                "events": {
                  "MarketRegistered": [
                    {
                      "name": "MarketRegistered",
                      "args": [
                        "0x421dEc7c865469128c76f910351DF693cBf6Bf04",
                        "3",
                        "0x421dEc7c865469128c76f910351DF693cBf6Bf04"
                      ]
                    }
                  ]
                },
                "deployedOn": "invoke.registerMarket",
                "gasUsed": 253895,
                "gasCost": "1000000134",
                "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
              }
            },
            "extras": {
              "aux_recipient": "0x0000000000000000000000000000000000000000",
              "aux_reset_time": "604800",
              "aux_token": "0x0000000000000000000000000000000000000000",
              "owner": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "pool_id": "1",
              "required_aux_token_ratio": "0",
              "treasury_address": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
              "v3_package": "synthetix:latest",
              "collateral_token": "0xb2F30A7C980f052f02563fb518dcc39e6bf38175",
              "market_id": "3"
            }
          }
        }
      },
      "hash": null,
      "version": 7
    },
    "invoke.setCRatio": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setCRatio": {
            "hash": "0x64567b54751c679c8940e0a11a9c5095811d43e126ffb2d26d58b1fcea0fa500",
            "blockNumber": "132270313",
            "timestamp": "1740139508",
            "events": {
              "TargetCRatioSet": [
                {
                  "name": "TargetCRatioSet",
                  "args": [
                    "1100000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setCRatio",
            "gasUsed": 65085,
            "gasCost": "1000000118",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "15a0e604a55958d8b0f097d07b57c452",
      "version": 7
    },
    "invoke.setPositionManagerOverrideMinDelegateTime": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setPositionManagerOverrideMinDelegateTime": {
            "hash": "0x8c54e72128e68064b35fdc55e5b1e1a8d39e1ba985e907e7d7cd94a72bb20013",
            "blockNumber": "132275595",
            "timestamp": "1740150008",
            "events": {
              "ConfigSet": [
                {
                  "name": "ConfigSet",
                  "args": [
                    "0xf5e5b0c8e8c5f9c162da87d4a0e0c242dc4651cb67eb4f7e5f703d942560e62e",
                    "0x0000000000000000000000000000000000000000000000000000000000000001"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setPositionManagerOverrideMinDelegateTime",
            "gasUsed": 56455,
            "gasCost": "1000000148",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "c796fb3719a5160d2989ff1a46bdd717",
      "version": 7
    },
    "invoke.setDebtDecayFunction": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "setDebtDecayFunction": {
            "hash": "0xff6b707a6017083f2353513792c66f04b16029d09adb84df6502637307db8b7d",
            "blockNumber": "132402469",
            "timestamp": "1740403745",
            "events": {
              "DebtDecayUpdated": [
                {
                  "name": "DebtDecayUpdated",
                  "args": [
                    1,
                    31536000,
                    "1000000000000000000",
                    "500000000000000000"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.setDebtDecayFunction",
            "gasUsed": 76545,
            "gasCost": "1000056882",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "f896561e41c4782158546c2f2e384799",
      "version": 7
    },
    "var.treasuryInfo": {
      "artifacts": {
        "settings": {
          "treasury_account_id": "10",
          "treasury_liquidator_address": "0x9DAffb42b60Bb14d8EE80b503AAfC312dCbAF552"
        }
      },
      "hash": "c2fac7d3c52155bea61455569ab9c436",
      "version": 7
    },
    "invoke.allow_liquidate_to_treasury": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "allow_liquidate_to_treasury": {
            "hash": "0x23b88dfdfc6ad738a2729d4f19d5e747fcd673262f69785ad1619568f7880060",
            "blockNumber": "134084201",
            "timestamp": "1743767194",
            "events": {
              "FeatureFlagAllowlistAdded": [
                {
                  "name": "FeatureFlagAllowlistAdded",
                  "args": [
                    "0x6c6971756964617465546f547265617375727900000000000000000000000000",
                    "0x9DAffb42b60Bb14d8EE80b503AAfC312dCbAF552"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.allow_liquidate_to_treasury",
            "gasUsed": 101733,
            "gasCost": "1000095613",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "cd4c6a0f94b1d8ced993ce13a29cc6e8",
      "version": 7
    },
    "invoke.disable_treasury_pool_liquidations": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "disable_treasury_pool_liquidations": {
            "hash": "0x0cfd5285275ce2c5d3cce6e3a3e4bf45d2d7e07828c932c741a8a7985c4abd91",
            "blockNumber": "134084202",
            "timestamp": "1743767195",
            "events": {
              "ConfigSet": [
                {
                  "name": "ConfigSet",
                  "args": [
                    "0x956dd4031218d162ae7fc1526438732af5a66417351ee5b3d05f6fdb8907772f",
                    "0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.disable_treasury_pool_liquidations",
            "gasUsed": 56849,
            "gasCost": "1000083743",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "e9c8f3ac2b1e924974c69d18bd85322d",
      "version": 7
    },
    "invoke.set_treasury_account": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "set_treasury_account": {
            "hash": "0x3cfba102632cfe3200b13f7d7e9fcfce64768164358f09caa75d3e6020437b2f",
            "blockNumber": "134084203",
            "timestamp": "1743767195",
            "events": {
              "ConfigSet": [
                {
                  "name": "ConfigSet",
                  "args": [
                    "0x74726561737572794163636f756e744964000000000000000000000000000000",
                    "0x000000000000000000000000000000000000000000000000000000000000000a"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.set_treasury_account",
            "gasUsed": 56297,
            "gasCost": "1000073315",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "53fb9fd9517f421c1c2eddb044a9ed36",
      "version": 7
    },
    "invoke.set_treasury_pool": {
      "artifacts": {
        "contracts": {},
        "txns": {
          "set_treasury_pool": {
            "hash": "0x42f02d4430e9de70ed21a6c2ac6ba36b7e387415f366898a695899459b364d26",
            "blockNumber": "134084207",
            "timestamp": "1743767217",
            "events": {
              "ConfigSet": [
                {
                  "name": "ConfigSet",
                  "args": [
                    "0x7472656173757279506f6f6c4964000000000000000000000000000000000000",
                    "0x0000000000000000000000000000000000000000000000000000000000000008"
                  ]
                }
              ]
            },
            "deployedOn": "invoke.set_treasury_pool",
            "gasUsed": 56261,
            "gasCost": "1000044232",
            "signer": "0x6cd3f878852769e04A723A5f66CA7DD4d9E38A6C"
          }
        },
        "settings": {}
      },
      "hash": "11be534e3bf3e8795e5535e76a9d23c9",
      "version": 7
    },
    "setting.treasury_aux_ratio": {
      "artifacts": {
        "settings": {
          "treasury_aux_ratio": "200000000000000000"
        }
      },
      "hash": "f296f686e58711260897d9596d6363a5",
      "version": 7
    },
    "setting.treasury_aux_recipient": {
      "artifacts": {
        "settings": {
          "treasury_aux_recipient": "0xFa1DF09D8d09D6E8FAB2a6C4712fEa02ce203e99"
        }
      },
      "hash": "8dedfd588960a0be9cd113c417789f10",
      "version": 7
    },
    "setting.treasury_aux_reset_time": {
      "artifacts": {
        "settings": {
          "treasury_aux_reset_time": "31536000000"
        }
      },
      "hash": "4ac34107caafe96f344d32ae62c43c02",
      "version": 7
    },
    "setting.treasury_aux_token_address": {
      "artifacts": {
        "settings": {
          "treasury_aux_token_address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9"
        }
      },
      "hash": "5b9238f067f4b47ad477191c7970a886",
      "version": 7
    },
    "setting.v2x_package": {
      "artifacts": {
        "settings": {
          "v2x_package": "synthetix:2.101.2"
        }
      },
      "hash": "fe9d470577b1bd5da244abb3a72b717b",
      "version": 7
    }
  },
  "options": {},
  "miscUrl": "ipfs://QmeSt2mnJKE8qmRhLyYbHQQxDKpsFbcWnw5e7JF4xVbN6k",
  "chainId": 10
}