[
  {
    "inputs": [],
    "name": "ACTIVATION_CHARGE_BUDGET",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "INITIAL_EXECUTION_RESERVE",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "acceptOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "configAddress",
        "type": "address"
      }
    ],
    "name": "areRegistryQualificationsActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "chainId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "name": "compatibilityTemplate",
    "outputs": [
      {
        "components": [
          {
            "internalType": "bytes32",
            "name": "compatibilityManifestHash",
            "type": "bytes32"
          },
          {
            "components": [
              {
                "internalType": "uint64",
                "name": "tokenIndex",
                "type": "uint64"
              },
              {
                "internalType": "uint32",
                "name": "valuationSpotPairIndex",
                "type": "uint32"
              },
              {
                "internalType": "uint8",
                "name": "weiDecimals",
                "type": "uint8"
              },
              {
                "internalType": "uint8",
                "name": "spotSzDecimals",
                "type": "uint8"
              },
              {
                "internalType": "int8",
                "name": "evmExtraWeiDecimals",
                "type": "int8"
              },
              {
                "internalType": "address",
                "name": "evmToken",
                "type": "address"
              },
              {
                "internalType": "bytes32",
                "name": "tokenNameHash",
                "type": "bytes32"
              },
              {
                "internalType": "bool",
                "name": "isUsdc",
                "type": "bool"
              }
            ],
            "internalType": "struct V1Types.TokenConfig",
            "name": "canonicalUsdcTokenConfig",
            "type": "tuple"
          },
          {
            "internalType": "bytes32",
            "name": "accountingManifestHash",
            "type": "bytes32"
          }
        ],
        "internalType": "struct V1Types.CompatibilityTemplate",
        "name": "",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "configImplementation",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "coreDepositWallet",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "coreWriter",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes",
        "name": "encodedCreation",
        "type": "bytes"
      }
    ],
    "name": "createVault",
    "outputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "config",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "name": "deprecateTemplate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "implementation",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "config",
        "type": "address"
      }
    ],
    "name": "isConfig",
    "outputs": [
      {
        "internalType": "bool",
        "name": "registered",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "name": "isPerpDexQualificationActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "name": "isSpotQualificationActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "name": "isTemplateActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      }
    ],
    "name": "isVault",
    "outputs": [
      {
        "internalType": "bool",
        "name": "registered",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pendingOwner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "name": "perpDexQualificationStatus",
    "outputs": [
      {
        "internalType": "bool",
        "name": "registered",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      },
      {
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "protocolFeeRecipient",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "bytes32",
            "name": "compatibilityManifestHash",
            "type": "bytes32"
          },
          {
            "components": [
              {
                "internalType": "uint64",
                "name": "tokenIndex",
                "type": "uint64"
              },
              {
                "internalType": "uint32",
                "name": "valuationSpotPairIndex",
                "type": "uint32"
              },
              {
                "internalType": "uint8",
                "name": "weiDecimals",
                "type": "uint8"
              },
              {
                "internalType": "uint8",
                "name": "spotSzDecimals",
                "type": "uint8"
              },
              {
                "internalType": "int8",
                "name": "evmExtraWeiDecimals",
                "type": "int8"
              },
              {
                "internalType": "address",
                "name": "evmToken",
                "type": "address"
              },
              {
                "internalType": "bytes32",
                "name": "tokenNameHash",
                "type": "bytes32"
              },
              {
                "internalType": "bool",
                "name": "isUsdc",
                "type": "bool"
              }
            ],
            "internalType": "struct V1Types.TokenConfig",
            "name": "canonicalUsdcTokenConfig",
            "type": "tuple"
          },
          {
            "internalType": "bytes32",
            "name": "accountingManifestHash",
            "type": "bytes32"
          }
        ],
        "internalType": "struct V1Types.CompatibilityTemplate",
        "name": "template",
        "type": "tuple"
      }
    ],
    "name": "registerTemplate",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "components": [
          {
            "internalType": "uint32",
            "name": "perpDexIndex",
            "type": "uint32"
          },
          {
            "internalType": "uint64",
            "name": "collateralTokenIndex",
            "type": "uint64"
          },
          {
            "internalType": "uint8",
            "name": "accountValueDecimals",
            "type": "uint8"
          }
        ],
        "internalType": "struct V1Types.PerpDexQualification",
        "name": "qualification",
        "type": "tuple"
      },
      {
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      },
      {
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      }
    ],
    "name": "setPerpDexQualification",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newRecipient",
        "type": "address"
      }
    ],
    "name": "setProtocolFeeRecipient",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "components": [
          {
            "components": [
              {
                "internalType": "uint64",
                "name": "tokenIndex",
                "type": "uint64"
              },
              {
                "internalType": "uint32",
                "name": "valuationSpotPairIndex",
                "type": "uint32"
              },
              {
                "internalType": "uint8",
                "name": "weiDecimals",
                "type": "uint8"
              },
              {
                "internalType": "uint8",
                "name": "spotSzDecimals",
                "type": "uint8"
              },
              {
                "internalType": "int8",
                "name": "evmExtraWeiDecimals",
                "type": "int8"
              },
              {
                "internalType": "address",
                "name": "evmToken",
                "type": "address"
              },
              {
                "internalType": "bytes32",
                "name": "tokenNameHash",
                "type": "bytes32"
              },
              {
                "internalType": "bool",
                "name": "isUsdc",
                "type": "bool"
              }
            ],
            "internalType": "struct V1Types.TokenConfig",
            "name": "token",
            "type": "tuple"
          },
          {
            "internalType": "uint32",
            "name": "actionAsset",
            "type": "uint32"
          },
          {
            "internalType": "uint32",
            "name": "pairReadIndex",
            "type": "uint32"
          },
          {
            "internalType": "uint64",
            "name": "quoteTokenIndex",
            "type": "uint64"
          },
          {
            "internalType": "uint8",
            "name": "szDecimals",
            "type": "uint8"
          },
          {
            "internalType": "bytes32",
            "name": "pairNameHash",
            "type": "bytes32"
          }
        ],
        "internalType": "struct V1Types.SpotQualification",
        "name": "qualification",
        "type": "tuple"
      },
      {
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      },
      {
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      }
    ],
    "name": "setSpotQualification",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "name": "spotQualificationStatus",
    "outputs": [
      {
        "internalType": "bool",
        "name": "registered",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      },
      {
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "systemConfig",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "chainId",
            "type": "uint256"
          },
          {
            "internalType": "address",
            "name": "coreWriter",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "coreDepositWallet",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "usdcSystemAddress",
            "type": "address"
          },
          {
            "internalType": "address",
            "name": "usdc",
            "type": "address"
          }
        ],
        "internalType": "struct V1Types.SystemConfig",
        "name": "systems",
        "type": "tuple"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "systemConfigHash",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "name": "templates",
    "outputs": [
      {
        "internalType": "bool",
        "name": "registered",
        "type": "bool"
      },
      {
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      },
      {
        "internalType": "bytes32",
        "name": "compatibilityManifestHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "usdc",
    "outputs": [
      {
        "internalType": "contract IERC20",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "usdcSystemAddress",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "vaultAt",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      }
    ],
    "name": "vaultConfig",
    "outputs": [
      {
        "internalType": "address",
        "name": "config",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "vaultCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      }
    ],
    "name": "vaultCreator",
    "outputs": [
      {
        "internalType": "address",
        "name": "creator",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "vault",
        "type": "address"
      }
    ],
    "name": "vaultTemplateHash",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "creator",
        "type": "address"
      }
    ],
    "name": "vaultsOf",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "uint32",
        "name": "perpDexIndex",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "collateralTokenIndex",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      }
    ],
    "name": "PerpDexQualificationSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousRecipient",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newRecipient",
        "type": "address"
      }
    ],
    "name": "ProtocolFeeRecipientUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "uint64",
        "name": "tokenIndex",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "uint32",
        "name": "pairReadIndex",
        "type": "uint32"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "active",
        "type": "bool"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "evidenceHash",
        "type": "bytes32"
      }
    ],
    "name": "SpotQualificationSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      }
    ],
    "name": "TemplateDeprecated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "indexed": true,
        "internalType": "bytes32",
        "name": "compatibilityManifestHash",
        "type": "bytes32"
      }
    ],
    "name": "TemplateRegistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "vault",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "config",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "creator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "templateHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "vaultPolicyHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "navConfigHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "accountingVersion",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "bytes32",
        "name": "marketPolicyHash",
        "type": "bytes32"
      },
      {
        "indexed": false,
        "internalType": "uint64",
        "name": "marketPolicyVersion",
        "type": "uint64"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "seedRecipient",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "seedAssets",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "activationChargeBudget",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "executionReserveAssets",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "enum V1Types.AccountMode",
        "name": "initialMode",
        "type": "uint8"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "protocolFeeRecipient",
        "type": "address"
      }
    ],
    "name": "VaultCreated",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "int8",
        "name": "relation",
        "type": "int8"
      }
    ],
    "name": "ConversionOverflow",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "FailedDeployment",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "int8",
        "name": "relation",
        "type": "int8"
      }
    ],
    "name": "InexactConversion",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "int8",
        "name": "relation",
        "type": "int8"
      }
    ],
    "name": "InvalidDecimalRelation",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      }
    ],
    "name": "InvalidFeeRecipient",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "enum V1Types.AccountMode",
        "name": "mode",
        "type": "uint8"
      }
    ],
    "name": "InvalidInitialMode",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "enum V1Types.MarketKind",
        "name": "kind",
        "type": "uint8"
      },
      {
        "internalType": "uint32",
        "name": "actionAsset",
        "type": "uint32"
      },
      {
        "internalType": "uint32",
        "name": "readIndex",
        "type": "uint32"
      }
    ],
    "name": "InvalidMarketId",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint8",
        "name": "configKind",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "InvalidMetadata",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "precompile",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "length",
        "type": "uint256"
      }
    ],
    "name": "InvalidPrecompileResponse",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint8",
        "name": "field",
        "type": "uint8"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "InvalidTemplate",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "OwnershipRenunciationDisabled",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "precompile",
        "type": "address"
      }
    ],
    "name": "PrecompileCallFailed",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "SafeERC20FailedOperation",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "expected",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "actual",
        "type": "uint256"
      }
    ],
    "name": "TransferAmountMismatch",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "caller",
        "type": "address"
      }
    ],
    "name": "Unauthorized",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "qualificationHash",
        "type": "bytes32"
      }
    ],
    "name": "UnqualifiedComponent",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "chainId",
        "type": "uint256"
      }
    ],
    "name": "UnsupportedChain",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "uint64",
        "name": "tokenIndex",
        "type": "uint64"
      }
    ],
    "name": "UnsupportedCollateral",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAddress",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "ZeroAmount",
    "type": "error"
  }
]
