/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import { Contract, Signer, utils } from "ethers";
import type { Provider } from "@ethersproject/providers";
import type {
  HyperCoreFlowExecutor,
  HyperCoreFlowExecutorInterface,
} from "../HyperCoreFlowExecutor";

const _abi = [
  {
    type: "constructor",
    inputs: [
      {
        name: "_donationBox",
        type: "address",
        internalType: "address",
      },
      {
        name: "_baseToken",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "AUTHORIZED_FUNDED_FLOW_SLOT",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "DEFAULT_ADMIN_ROLE",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "FUNDS_SWEEPER_ROLE",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "ONEX1e8",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint64",
        internalType: "uint64",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "PERMISSIONED_BOT_ROLE",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "PPM_DECIMALS",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "PPM_SCALAR",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "activateUserAccount",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        internalType: "address",
      },
      {
        name: "fundingToken",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "baseToken",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "cancelLimitOrderByCloid",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
      {
        name: "cloid",
        type: "uint128",
        internalType: "uint128",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "coreTokenInfos",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "tuple",
        internalType: "struct CoreTokenInfo",
        components: [
          {
            name: "tokenInfo",
            type: "tuple",
            internalType: "struct HyperCoreLib.TokenInfo",
            components: [
              {
                name: "name",
                type: "string",
                internalType: "string",
              },
              {
                name: "spots",
                type: "uint64[]",
                internalType: "uint64[]",
              },
              {
                name: "deployerTradingFeeShare",
                type: "uint64",
                internalType: "uint64",
              },
              {
                name: "deployer",
                type: "address",
                internalType: "address",
              },
              {
                name: "evmContract",
                type: "address",
                internalType: "address",
              },
              {
                name: "szDecimals",
                type: "uint8",
                internalType: "uint8",
              },
              {
                name: "weiDecimals",
                type: "uint8",
                internalType: "uint8",
              },
              {
                name: "evmExtraWeiDecimals",
                type: "int8",
                internalType: "int8",
              },
            ],
          },
          {
            name: "coreIndex",
            type: "uint64",
            internalType: "uint64",
          },
          {
            name: "canBeUsedForAccountActivation",
            type: "bool",
            internalType: "bool",
          },
          {
            name: "accountActivationFeeEVM",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "accountActivationFeeCore",
            type: "uint64",
            internalType: "uint64",
          },
          {
            name: "bridgeSafetyBufferCore",
            type: "uint64",
            internalType: "uint64",
          },
        ],
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "cumulativeSponsoredActivationFee",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "cumulativeSponsoredAmount",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "donationBox",
    inputs: [],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "contract DonationBox",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "executeFlow",
    inputs: [
      {
        name: "params",
        type: "tuple",
        internalType: "struct CommonFlowParams",
        components: [
          {
            name: "amountInEVM",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "quoteNonce",
            type: "bytes32",
            internalType: "bytes32",
          },
          {
            name: "finalRecipient",
            type: "address",
            internalType: "address",
          },
          {
            name: "finalToken",
            type: "address",
            internalType: "address",
          },
          {
            name: "destinationDex",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "accountCreationMode",
            type: "uint8",
            internalType: "enum AccountCreationMode",
          },
          {
            name: "maxBpsToSponsor",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "extraFeesIncurred",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
      {
        name: "maxUserSlippageBps",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "executeSimpleTransferFlow",
    inputs: [
      {
        name: "params",
        type: "tuple",
        internalType: "struct CommonFlowParams",
        components: [
          {
            name: "amountInEVM",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "quoteNonce",
            type: "bytes32",
            internalType: "bytes32",
          },
          {
            name: "finalRecipient",
            type: "address",
            internalType: "address",
          },
          {
            name: "finalToken",
            type: "address",
            internalType: "address",
          },
          {
            name: "destinationDex",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "accountCreationMode",
            type: "uint8",
            internalType: "enum AccountCreationMode",
          },
          {
            name: "maxBpsToSponsor",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "extraFeesIncurred",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "fallbackHyperEVMFlow",
    inputs: [
      {
        name: "params",
        type: "tuple",
        internalType: "struct CommonFlowParams",
        components: [
          {
            name: "amountInEVM",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "quoteNonce",
            type: "bytes32",
            internalType: "bytes32",
          },
          {
            name: "finalRecipient",
            type: "address",
            internalType: "address",
          },
          {
            name: "finalToken",
            type: "address",
            internalType: "address",
          },
          {
            name: "destinationDex",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "accountCreationMode",
            type: "uint8",
            internalType: "enum AccountCreationMode",
          },
          {
            name: "maxBpsToSponsor",
            type: "uint256",
            internalType: "uint256",
          },
          {
            name: "extraFeesIncurred",
            type: "uint256",
            internalType: "uint256",
          },
        ],
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "finalTokenInfos",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "tuple",
        internalType: "struct FinalTokenInfo",
        components: [
          {
            name: "spotIndex",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "isBuy",
            type: "bool",
            internalType: "bool",
          },
          {
            name: "feePpm",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "suggestedDiscountBps",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "swapHandler",
            type: "address",
            internalType: "contract SwapHandler",
          },
        ],
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "finalizeSwapFlows",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
      {
        name: "quoteNonces",
        type: "bytes32[]",
        internalType: "bytes32[]",
      },
      {
        name: "limitOrderOuts",
        type: "uint64[]",
        internalType: "uint64[]",
      },
    ],
    outputs: [
      {
        name: "finalized",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "getRoleAdmin",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "grantRole",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "hasRole",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "lastPullFundsBlock",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "predictSwapHandler",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [
      {
        name: "",
        type: "address",
        internalType: "address",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "renounceRole",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "callerConfirmation",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "revokeRole",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        internalType: "bytes32",
      },
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sendSponsorshipFundsToSwapHandler",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setCoreTokenInfo",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "coreIndex",
        type: "uint32",
        internalType: "uint32",
      },
      {
        name: "canBeUsedForAccountActivation",
        type: "bool",
        internalType: "bool",
      },
      {
        name: "accountActivationFeeCore",
        type: "uint64",
        internalType: "uint64",
      },
      {
        name: "bridgeSafetyBufferCore",
        type: "uint64",
        internalType: "uint64",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "setFinalTokenInfo",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
      {
        name: "spotIndex",
        type: "uint32",
        internalType: "uint32",
      },
      {
        name: "isBuy",
        type: "bool",
        internalType: "bool",
      },
      {
        name: "feePpm",
        type: "uint32",
        internalType: "uint32",
      },
      {
        name: "suggestedDiscountBps",
        type: "uint32",
        internalType: "uint32",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "submitLimitOrderFromBot",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
      {
        name: "priceX1e8",
        type: "uint64",
        internalType: "uint64",
      },
      {
        name: "sizeX1e8",
        type: "uint64",
        internalType: "uint64",
      },
      {
        name: "cloid",
        type: "uint128",
        internalType: "uint128",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "supportsInterface",
    inputs: [
      {
        name: "interfaceId",
        type: "bytes4",
        internalType: "bytes4",
      },
    ],
    outputs: [
      {
        name: "",
        type: "bool",
        internalType: "bool",
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "swaps",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
    outputs: [
      {
        name: "",
        type: "tuple",
        internalType: "struct HyperCoreFlowExecutor.SwapFlowState",
        components: [
          {
            name: "finalRecipient",
            type: "address",
            internalType: "address",
          },
          {
            name: "finalToken",
            type: "address",
            internalType: "address",
          },
          {
            name: "destinationDex",
            type: "uint32",
            internalType: "uint32",
          },
          {
            name: "minAmountToSend",
            type: "uint64",
            internalType: "uint64",
          },
          {
            name: "maxAmountToSend",
            type: "uint64",
            internalType: "uint64",
          },
          {
            name: "isSponsored",
            type: "bool",
            internalType: "bool",
          },
          {
            name: "finalized",
            type: "bool",
            internalType: "bool",
          },
        ],
      },
    ],
    stateMutability: "view",
  },
  {
    type: "function",
    name: "sweepERC20FromSwapHandler",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sweepErc20",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sweepErc20FromDonationBox",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sweepNative",
    inputs: [
      {
        name: "amount",
        type: "uint256",
        internalType: "uint256",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sweepOnCore",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint64",
        internalType: "uint64",
      },
      {
        name: "sourceDex",
        type: "uint32",
        internalType: "uint32",
      },
      {
        name: "destinationDex",
        type: "uint32",
        internalType: "uint32",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "function",
    name: "sweepOnCoreFromSwapHandler",
    inputs: [
      {
        name: "finalToken",
        type: "address",
        internalType: "address",
      },
      {
        name: "finalTokenAmount",
        type: "uint64",
        internalType: "uint64",
      },
      {
        name: "baseTokenAmount",
        type: "uint64",
        internalType: "uint64",
      },
    ],
    outputs: [],
    stateMutability: "nonpayable",
  },
  {
    type: "event",
    name: "AccountActivatedFromUserFunds",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "user",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "amountCore",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "AccountNotActivated",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "user",
        type: "address",
        indexed: false,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "CancelledLimitOrder",
    inputs: [
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "cloid",
        type: "uint128",
        indexed: true,
        internalType: "uint128",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "DonationBoxInsufficientFunds",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "token",
        type: "address",
        indexed: false,
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "balance",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "FallbackHyperEVMFlowCompleted",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "finalToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "evmAmountIn",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "bridgingFeesIncurred",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "evmAmountSponsored",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "Initialized",
    inputs: [
      {
        name: "version",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "RoleAdminChanged",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "previousAdminRole",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "newAdminRole",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "RoleGranted",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "account",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "sender",
        type: "address",
        indexed: true,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "RoleRevoked",
    inputs: [
      {
        name: "role",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "account",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "sender",
        type: "address",
        indexed: true,
        internalType: "address",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SentSponsorshipFundsToSwapHandler",
    inputs: [
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "evmAmountSponsored",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SetCoreTokenInfo",
    inputs: [
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "coreIndex",
        type: "uint32",
        indexed: false,
        internalType: "uint32",
      },
      {
        name: "canBeUsedForAccountActivation",
        type: "bool",
        indexed: false,
        internalType: "bool",
      },
      {
        name: "accountActivationFeeCore",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
      {
        name: "bridgeSafetyBufferCore",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SetFinalTokenInfo",
    inputs: [
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "spotIndex",
        type: "uint32",
        indexed: false,
        internalType: "uint32",
      },
      {
        name: "isBuy",
        type: "bool",
        indexed: false,
        internalType: "bool",
      },
      {
        name: "feePpm",
        type: "uint32",
        indexed: false,
        internalType: "uint32",
      },
      {
        name: "swapHandler",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "suggestedFeeDiscountBps",
        type: "uint32",
        indexed: false,
        internalType: "uint32",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SimpleTransferFlowCompleted",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "finalToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "evmAmountIn",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "bridgingFeesIncurred",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "evmAmountSponsored",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SponsoredAccountActivation",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "fundingToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "evmAmountSponsored",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SubmittedLimitOrder",
    inputs: [
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "priceX1e8",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
      {
        name: "sizeX1e8",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
      {
        name: "cloid",
        type: "uint128",
        indexed: true,
        internalType: "uint128",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SwapFlowFinalized",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "finalToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "totalSent",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
      {
        name: "evmAmountSponsored",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SwapFlowInitialized",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalRecipient",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "finalToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "evmAmountIn",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "bridgingFeesIncurred",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "coreAmountIn",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "minAmountToSend",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
      {
        name: "maxAmountToSend",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "SwapFlowTooExpensive",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "finalToken",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "estBpsSlippage",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
      {
        name: "maxAllowableBpsSlippage",
        type: "uint256",
        indexed: false,
        internalType: "uint256",
      },
    ],
    anonymous: false,
  },
  {
    type: "event",
    name: "UnsafeToBridge",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        indexed: true,
        internalType: "bytes32",
      },
      {
        name: "token",
        type: "address",
        indexed: true,
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint64",
        indexed: false,
        internalType: "uint64",
      },
    ],
    anonymous: false,
  },
  {
    type: "error",
    name: "AccessControlBadConfirmation",
    inputs: [],
  },
  {
    type: "error",
    name: "AccessControlUnauthorizedAccount",
    inputs: [
      {
        name: "account",
        type: "address",
        internalType: "address",
      },
      {
        name: "neededRole",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
  },
  {
    type: "error",
    name: "AccountNotActivatedError",
    inputs: [
      {
        name: "user",
        type: "address",
        internalType: "address",
      },
    ],
  },
  {
    type: "error",
    name: "CoreUserExistsPrecompileCallFailed",
    inputs: [],
  },
  {
    type: "error",
    name: "FundedFlowNotAuthorized",
    inputs: [],
  },
  {
    type: "error",
    name: "InsufficientAmountForAccountActivation",
    inputs: [],
  },
  {
    type: "error",
    name: "InsufficientFundsForActivation",
    inputs: [],
  },
  {
    type: "error",
    name: "InvalidInitialization",
    inputs: [],
  },
  {
    type: "error",
    name: "NotInitializing",
    inputs: [],
  },
  {
    type: "error",
    name: "SafeERC20FailedOperation",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
    ],
  },
  {
    type: "error",
    name: "SpotBalancePrecompileCallFailed",
    inputs: [],
  },
  {
    type: "error",
    name: "SpotPxPrecompileCallFailed",
    inputs: [],
  },
  {
    type: "error",
    name: "SwapAlreadyFinalized",
    inputs: [],
  },
  {
    type: "error",
    name: "SwapDoesNotExist",
    inputs: [],
  },
  {
    type: "error",
    name: "TokenInfoPrecompileCallFailed",
    inputs: [],
  },
  {
    type: "error",
    name: "TokenNotEligibleForActivation",
    inputs: [],
  },
  {
    type: "error",
    name: "UnsafeToBridgeError",
    inputs: [
      {
        name: "token",
        type: "address",
        internalType: "address",
      },
      {
        name: "amount",
        type: "uint64",
        internalType: "uint64",
      },
    ],
  },
  {
    type: "error",
    name: "WrongSwapFinalizationToken",
    inputs: [
      {
        name: "quoteNonce",
        type: "bytes32",
        internalType: "bytes32",
      },
    ],
  },
] as const;

export class HyperCoreFlowExecutor__factory {
  static readonly abi = _abi;
  static createInterface(): HyperCoreFlowExecutorInterface {
    return new utils.Interface(_abi) as HyperCoreFlowExecutorInterface;
  }
  static connect(
    address: string,
    signerOrProvider: Signer | Provider
  ): HyperCoreFlowExecutor {
    return new Contract(
      address,
      _abi,
      signerOrProvider
    ) as HyperCoreFlowExecutor;
  }
}
