UNPKG

@electra.finance/contracts

Version:
1,105 lines (1,104 loc) 62.9 kB
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "./common.js"; export declare namespace CFDStructs { type ExternalAddressBindingStruct = { derivedAccount: AddressLike; derivedAccountSalt: BigNumberish; nonce: BigNumberish; chainId: BigNumberish; signerChainId: BigNumberish; externalAddress: BytesLike; derivedAccountSignature: BytesLike; }; type ExternalAddressBindingStructOutput = [ derivedAccount: string, derivedAccountSalt: bigint, nonce: bigint, chainId: bigint, signerChainId: bigint, externalAddress: string, derivedAccountSignature: string ] & { derivedAccount: string; derivedAccountSalt: bigint; nonce: bigint; chainId: bigint; signerChainId: bigint; externalAddress: string; derivedAccountSignature: string; }; type InternalTransferV2Struct = { from: AddressLike; to: AddressLike; amount: BigNumberish; expiration: BigNumberish; nonce: BigNumberish; chainId: BigNumberish; signerChainId: BigNumberish; uniqueHash: BytesLike; externalAddress: BytesLike; signature: BytesLike; }; type InternalTransferV2StructOutput = [ from: string, to: string, amount: bigint, expiration: bigint, nonce: bigint, chainId: bigint, signerChainId: bigint, uniqueHash: string, externalAddress: string, signature: string ] & { from: string; to: string; amount: bigint; expiration: bigint; nonce: bigint; chainId: bigint; signerChainId: bigint; uniqueHash: string; externalAddress: string; signature: string; }; type PriceInfoStruct = { index: BigNumberish; price: BigNumberish; }; type PriceInfoStructOutput = [index: bigint, price: bigint] & { index: bigint; price: bigint; }; type DelegationRequestStruct = { trader: AddressLike; isSetDelegate: boolean; deadline: BigNumberish; delegate: AddressLike; signature: BytesLike; }; type DelegationRequestStructOutput = [ trader: string, isSetDelegate: boolean, deadline: bigint, delegate: string, signature: string ] & { trader: string; isSetDelegate: boolean; deadline: bigint; delegate: string; signature: string; }; type InternalTransferStruct = { from: AddressLike; to: AddressLike; amount: BigNumberish; expiration: BigNumberish; nonce: BigNumberish; chainId: BigNumberish; reserved: BigNumberish; signature: BytesLike; }; type InternalTransferStructOutput = [ from: string, to: string, amount: bigint, expiration: bigint, nonce: bigint, chainId: bigint, reserved: bigint, signature: string ] & { from: string; to: string; amount: bigint; expiration: bigint; nonce: bigint; chainId: bigint; reserved: bigint; signature: string; }; type MultiLiquidationOrderStruct = { accountToLiquidate: AddressLike; liquidator: AddressLike; liquidationPrices: CFDStructs.PriceInfoStruct[]; prices: CFDStructs.PriceInfoStruct[]; liquidationTimestamp: BigNumberish; expiration: BigNumberish; signature: BytesLike; }; type MultiLiquidationOrderStructOutput = [ accountToLiquidate: string, liquidator: string, liquidationPrices: CFDStructs.PriceInfoStructOutput[], prices: CFDStructs.PriceInfoStructOutput[], liquidationTimestamp: bigint, expiration: bigint, signature: string ] & { accountToLiquidate: string; liquidator: string; liquidationPrices: CFDStructs.PriceInfoStructOutput[]; prices: CFDStructs.PriceInfoStructOutput[]; liquidationTimestamp: bigint; expiration: bigint; signature: string; }; type LiquidationOrderStruct = { accountToLiquidate: AddressLike; liquidator: AddressLike; index: BigNumberish; prices: CFDStructs.PriceInfoStruct[]; liquidationTimestamp: BigNumberish; expiration: BigNumberish; signature: BytesLike; }; type LiquidationOrderStructOutput = [ accountToLiquidate: string, liquidator: string, index: bigint, prices: CFDStructs.PriceInfoStructOutput[], liquidationTimestamp: bigint, expiration: bigint, signature: string ] & { accountToLiquidate: string; liquidator: string; index: bigint; prices: CFDStructs.PriceInfoStructOutput[]; liquidationTimestamp: bigint; expiration: bigint; signature: string; }; type OrderStruct = { senderAddress: AddressLike; matcherAddress: AddressLike; instrumentIndex: BigNumberish; amount: BigNumberish; price: BigNumberish; matcherFee: BigNumberish; expiration: BigNumberish; buySide: BigNumberish; isFromDelegate: boolean; signature: BytesLike; }; type OrderStructOutput = [ senderAddress: string, matcherAddress: string, instrumentIndex: bigint, amount: bigint, price: bigint, matcherFee: bigint, expiration: bigint, buySide: bigint, isFromDelegate: boolean, signature: string ] & { senderAddress: string; matcherAddress: string; instrumentIndex: bigint; amount: bigint; price: bigint; matcherFee: bigint; expiration: bigint; buySide: bigint; isFromDelegate: boolean; signature: string; }; type OrderV2Struct = { senderAddress: AddressLike; price: BigNumberish; instrumentIndex: BigNumberish; matcherAddress: AddressLike; price2: BigNumberish; isFromDelegate: boolean; buySide: BigNumberish; amount: BigNumberish; matcherFee: BigNumberish; expiration: BigNumberish; orderType: BigNumberish; signerChainId: BigNumberish; signature: BytesLike; }; type OrderV2StructOutput = [ senderAddress: string, price: bigint, instrumentIndex: bigint, matcherAddress: string, price2: bigint, isFromDelegate: boolean, buySide: bigint, amount: bigint, matcherFee: bigint, expiration: bigint, orderType: bigint, signerChainId: bigint, signature: string ] & { senderAddress: string; price: bigint; instrumentIndex: bigint; matcherAddress: string; price2: bigint; isFromDelegate: boolean; buySide: bigint; amount: bigint; matcherFee: bigint; expiration: bigint; orderType: bigint; signerChainId: bigint; signature: string; }; type PositionInfoStruct = { position: BigNumberish; frAccumulated: BigNumberish; positionLastUpdate: BigNumberish; positionAvgPrice: BigNumberish; positionLongFRStored: BigNumberish; positionShortFRStored: BigNumberish; }; type PositionInfoStructOutput = [ position: bigint, frAccumulated: bigint, positionLastUpdate: bigint, positionAvgPrice: bigint, positionLongFRStored: bigint, positionShortFRStored: bigint ] & { position: bigint; frAccumulated: bigint; positionLastUpdate: bigint; positionAvgPrice: bigint; positionLongFRStored: bigint; positionShortFRStored: bigint; }; type FundingRateInfoStruct = { frLong: BigNumberish; frShort: BigNumberish; longFRStored: BigNumberish; shortFRStored: BigNumberish; lastFRUpdateTime: BigNumberish; }; type FundingRateInfoStructOutput = [ frLong: bigint, frShort: bigint, longFRStored: bigint, shortFRStored: bigint, lastFRUpdateTime: bigint ] & { frLong: bigint; frShort: bigint; longFRStored: bigint; shortFRStored: bigint; lastFRUpdateTime: bigint; }; type InstrumentInfoStruct = { leverage: BigNumberish; ticker: string[]; fundingRateInfo: CFDStructs.FundingRateInfoStruct; }; type InstrumentInfoStructOutput = [ leverage: bigint, ticker: string[], fundingRateInfo: CFDStructs.FundingRateInfoStructOutput ] & { leverage: bigint; ticker: string[]; fundingRateInfo: CFDStructs.FundingRateInfoStructOutput; }; type AccountPositionsStruct = { account: AddressLike; positions: CFDStructs.PositionInfoStruct[]; }; type AccountPositionsStructOutput = [ account: string, positions: CFDStructs.PositionInfoStructOutput[] ] & { account: string; positions: CFDStructs.PositionInfoStructOutput[]; }; } export declare namespace IDiamondCut { type FacetCutStruct = { facetAddress: AddressLike; action: BigNumberish; functionSelectors: BytesLike[]; }; type FacetCutStructOutput = [ facetAddress: string, action: bigint, functionSelectors: string[] ] & { facetAddress: string; action: bigint; functionSelectors: string[]; }; } export declare namespace IDiamondLoupe { type FacetStruct = { facetAddress: AddressLike; functionSelectors: BytesLike[]; }; type FacetStructOutput = [ facetAddress: string, functionSelectors: string[] ] & { facetAddress: string; functionSelectors: string[]; }; } export interface CrossMarginCFDInterface extends Interface { getFunction(nameOrSignature: "DELEGATION_REQUEST_TYPEHASH" | "DOMAIN_NAME" | "DOMAIN_SALT" | "DOMAIN_SEPARATOR" | "DOMAIN_VERSION" | "EIP712_DOMAIN_TYPEHASH" | "INTERNAL_TRANSFER_TYPEHASH" | "LIQUIDATION_ORDER_TYPEHASH" | "MULTI_LIQUIDATION_ORDER_TYPEHASH" | "ORDER_TYPEHASH" | "PRICE_INFO_TYPEHASH" | "accountsWithOpenPositionLength" | "addInstrument" | "allowedMatchers" | "approveCustomNetwork" | "balances" | "bindExternalAccount" | "bindExternalAccountWithDeposit" | "calculateMarginLevel" | "changeDelegateFrom" | "changeDelegateWithChainId" | "changeInstrument" | "checkAddressBindingSignature" | "checkDelegationRequest" | "checkDelegationRequestWithChainId" | "checkInternalTransfer" | "checkInternalTransferV2" | "checkLiquidationOrder((address,address,(uint16,uint80)[],(uint16,uint80)[],uint64,uint64,bytes))" | "checkLiquidationOrder((address,address,uint16,(uint16,uint80)[],uint64,uint64,bytes))" | "checkMarginWithOraclePrices" | "checkOrdersInfo" | "checkOrdersV2Info" | "collateral" | "customStopOutLevel" | "delegateFromTimeout" | "delegatedAction" | "delegations" | "deleteInstrument" | "depositAsset" | "depositAssetTo" | "diamondCut" | "facetAddress" | "facetAddresses" | "facetFunctionSelectors" | "facets" | "fillOrders" | "fillOrdersV2" | "filledAmounts" | "fundingRateAccount" | "getAccountFR" | "getAccountsWithOpenPositions" | "getActiveInstrumentsIndexes" | "getActiveInstrumentsPositions" | "getAssetPrice" | "getDelegationRequestTypeValueHash" | "getDerivedAccountBinding" | "getDomainSeparatorForChainId" | "getEIP712DomainData" | "getExternalAccountBinding" | "getInstrumentInfo" | "getOpenPositions" | "getOrWriteDomainSeparator" | "getOrderTypeValueHash" | "getPNL" | "getPriceInfoTypeValueHash" | "getTotalLongFR" | "getTotalShortFR" | "instrumentInfo" | "instrumentsLength" | "internalTransfer" | "internalTransferV2" | "isCustomNetworkApproved" | "liquidatePosition" | "liquidatePositions" | "liquidationFeePercent" | "maxOpenPositions" | "oracle" | "owner" | "positionInfo" | "recover" | "rejectCustomNetwork" | "removeDelegate" | "setBasicParams" | "setCustomStopOutLevel" | "setDelegate" | "setFR" | "soLevel" | "transferOwnership" | "updateMatchers" | "usedDelegationRequests" | "withdrawAsset" | "withdrawAssetTo" | "withdrawMarginLevel"): FunctionFragment; encodeFunctionData(functionFragment: "DELEGATION_REQUEST_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "DOMAIN_NAME", values?: undefined): string; encodeFunctionData(functionFragment: "DOMAIN_SALT", values?: undefined): string; encodeFunctionData(functionFragment: "DOMAIN_SEPARATOR", values?: undefined): string; encodeFunctionData(functionFragment: "DOMAIN_VERSION", values?: undefined): string; encodeFunctionData(functionFragment: "EIP712_DOMAIN_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "INTERNAL_TRANSFER_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "LIQUIDATION_ORDER_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "MULTI_LIQUIDATION_ORDER_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "ORDER_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "PRICE_INFO_TYPEHASH", values?: undefined): string; encodeFunctionData(functionFragment: "accountsWithOpenPositionLength", values?: undefined): string; encodeFunctionData(functionFragment: "addInstrument", values: [string[], BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "allowedMatchers", values: [AddressLike]): string; encodeFunctionData(functionFragment: "approveCustomNetwork", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "balances", values: [AddressLike]): string; encodeFunctionData(functionFragment: "bindExternalAccount", values: [CFDStructs.ExternalAddressBindingStruct]): string; encodeFunctionData(functionFragment: "bindExternalAccountWithDeposit", values: [ CFDStructs.ExternalAddressBindingStruct, CFDStructs.InternalTransferV2Struct ]): string; encodeFunctionData(functionFragment: "calculateMarginLevel", values: [AddressLike, CFDStructs.PriceInfoStruct[], boolean]): string; encodeFunctionData(functionFragment: "changeDelegateFrom", values: [CFDStructs.DelegationRequestStruct]): string; encodeFunctionData(functionFragment: "changeDelegateWithChainId", values: [CFDStructs.DelegationRequestStruct, BigNumberish]): string; encodeFunctionData(functionFragment: "changeInstrument", values: [BigNumberish, string[], BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "checkAddressBindingSignature", values: [CFDStructs.ExternalAddressBindingStruct]): string; encodeFunctionData(functionFragment: "checkDelegationRequest", values: [CFDStructs.DelegationRequestStruct]): string; encodeFunctionData(functionFragment: "checkDelegationRequestWithChainId", values: [CFDStructs.DelegationRequestStruct, BigNumberish]): string; encodeFunctionData(functionFragment: "checkInternalTransfer", values: [CFDStructs.InternalTransferStruct]): string; encodeFunctionData(functionFragment: "checkInternalTransferV2", values: [CFDStructs.InternalTransferV2Struct]): string; encodeFunctionData(functionFragment: "checkLiquidationOrder((address,address,(uint16,uint80)[],(uint16,uint80)[],uint64,uint64,bytes))", values: [CFDStructs.MultiLiquidationOrderStruct]): string; encodeFunctionData(functionFragment: "checkLiquidationOrder((address,address,uint16,(uint16,uint80)[],uint64,uint64,bytes))", values: [CFDStructs.LiquidationOrderStruct]): string; encodeFunctionData(functionFragment: "checkMarginWithOraclePrices", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "checkOrdersInfo", values: [ CFDStructs.OrderStruct, CFDStructs.OrderStruct, AddressLike, AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, AddressLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "checkOrdersV2Info", values: [ CFDStructs.OrderV2Struct, CFDStructs.OrderV2Struct, AddressLike, AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, AddressLike, BigNumberish ]): string; encodeFunctionData(functionFragment: "collateral", values?: undefined): string; encodeFunctionData(functionFragment: "customStopOutLevel", values: [AddressLike]): string; encodeFunctionData(functionFragment: "delegateFromTimeout", values: [AddressLike]): string; encodeFunctionData(functionFragment: "delegatedAction", values: [AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "delegations", values: [AddressLike]): string; encodeFunctionData(functionFragment: "deleteInstrument", values?: undefined): string; encodeFunctionData(functionFragment: "depositAsset", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "depositAssetTo", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "diamondCut", values: [IDiamondCut.FacetCutStruct[], AddressLike, BytesLike]): string; encodeFunctionData(functionFragment: "facetAddress", values: [BytesLike]): string; encodeFunctionData(functionFragment: "facetAddresses", values?: undefined): string; encodeFunctionData(functionFragment: "facetFunctionSelectors", values: [AddressLike]): string; encodeFunctionData(functionFragment: "facets", values?: undefined): string; encodeFunctionData(functionFragment: "fillOrders", values: [ CFDStructs.OrderStruct, CFDStructs.OrderStruct, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "fillOrdersV2", values: [ CFDStructs.OrderV2Struct, CFDStructs.OrderV2Struct, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "filledAmounts", values: [BytesLike]): string; encodeFunctionData(functionFragment: "fundingRateAccount", values?: undefined): string; encodeFunctionData(functionFragment: "getAccountFR", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "getAccountsWithOpenPositions", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getActiveInstrumentsIndexes", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getActiveInstrumentsPositions", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getAssetPrice", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getDelegationRequestTypeValueHash", values: [CFDStructs.DelegationRequestStruct]): string; encodeFunctionData(functionFragment: "getDerivedAccountBinding", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getDomainSeparatorForChainId", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getEIP712DomainData", values?: undefined): string; encodeFunctionData(functionFragment: "getExternalAccountBinding", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getInstrumentInfo", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOpenPositions", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getOrWriteDomainSeparator", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOrderTypeValueHash", values: [CFDStructs.OrderStruct]): string; encodeFunctionData(functionFragment: "getPNL", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getPriceInfoTypeValueHash", values: [CFDStructs.PriceInfoStruct]): string; encodeFunctionData(functionFragment: "getTotalLongFR", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getTotalShortFR", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "instrumentInfo", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "instrumentsLength", values?: undefined): string; encodeFunctionData(functionFragment: "internalTransfer", values: [CFDStructs.InternalTransferStruct]): string; encodeFunctionData(functionFragment: "internalTransferV2", values: [CFDStructs.InternalTransferV2Struct]): string; encodeFunctionData(functionFragment: "isCustomNetworkApproved", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "liquidatePosition", values: [CFDStructs.LiquidationOrderStruct]): string; encodeFunctionData(functionFragment: "liquidatePositions", values: [CFDStructs.MultiLiquidationOrderStruct]): string; encodeFunctionData(functionFragment: "liquidationFeePercent", values?: undefined): string; encodeFunctionData(functionFragment: "maxOpenPositions", values?: undefined): string; encodeFunctionData(functionFragment: "oracle", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "positionInfo", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "recover", values: [CFDStructs.OrderStruct]): string; encodeFunctionData(functionFragment: "rejectCustomNetwork", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "removeDelegate", values?: undefined): string; encodeFunctionData(functionFragment: "setBasicParams", values: [ AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]): string; encodeFunctionData(functionFragment: "setCustomStopOutLevel", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "setDelegate", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setFR", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "soLevel", values?: undefined): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "updateMatchers", values: [AddressLike[]]): string; encodeFunctionData(functionFragment: "usedDelegationRequests", values: [BytesLike]): string; encodeFunctionData(functionFragment: "withdrawAsset", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "withdrawAssetTo", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "withdrawMarginLevel", values?: undefined): string; decodeFunctionResult(functionFragment: "DELEGATION_REQUEST_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "DOMAIN_NAME", data: BytesLike): Result; decodeFunctionResult(functionFragment: "DOMAIN_SALT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "DOMAIN_SEPARATOR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "DOMAIN_VERSION", data: BytesLike): Result; decodeFunctionResult(functionFragment: "EIP712_DOMAIN_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "INTERNAL_TRANSFER_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "LIQUIDATION_ORDER_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "MULTI_LIQUIDATION_ORDER_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ORDER_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "PRICE_INFO_TYPEHASH", data: BytesLike): Result; decodeFunctionResult(functionFragment: "accountsWithOpenPositionLength", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addInstrument", data: BytesLike): Result; decodeFunctionResult(functionFragment: "allowedMatchers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "approveCustomNetwork", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balances", data: BytesLike): Result; decodeFunctionResult(functionFragment: "bindExternalAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "bindExternalAccountWithDeposit", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateMarginLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeDelegateFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeDelegateWithChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeInstrument", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkAddressBindingSignature", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkDelegationRequest", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkDelegationRequestWithChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkInternalTransfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkInternalTransferV2", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkLiquidationOrder((address,address,(uint16,uint80)[],(uint16,uint80)[],uint64,uint64,bytes))", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkLiquidationOrder((address,address,uint16,(uint16,uint80)[],uint64,uint64,bytes))", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkMarginWithOraclePrices", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkOrdersInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "checkOrdersV2Info", data: BytesLike): Result; decodeFunctionResult(functionFragment: "collateral", data: BytesLike): Result; decodeFunctionResult(functionFragment: "customStopOutLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "delegateFromTimeout", data: BytesLike): Result; decodeFunctionResult(functionFragment: "delegatedAction", data: BytesLike): Result; decodeFunctionResult(functionFragment: "delegations", data: BytesLike): Result; decodeFunctionResult(functionFragment: "deleteInstrument", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositAsset", data: BytesLike): Result; decodeFunctionResult(functionFragment: "depositAssetTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "diamondCut", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetAddresses", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facetFunctionSelectors", data: BytesLike): Result; decodeFunctionResult(functionFragment: "facets", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fillOrders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fillOrdersV2", data: BytesLike): Result; decodeFunctionResult(functionFragment: "filledAmounts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "fundingRateAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAccountFR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAccountsWithOpenPositions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getActiveInstrumentsIndexes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getActiveInstrumentsPositions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getAssetPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDelegationRequestTypeValueHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDerivedAccountBinding", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDomainSeparatorForChainId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getEIP712DomainData", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getExternalAccountBinding", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getInstrumentInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOpenPositions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrWriteDomainSeparator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrderTypeValueHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPNL", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPriceInfoTypeValueHash", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalLongFR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalShortFR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "instrumentInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "instrumentsLength", data: BytesLike): Result; decodeFunctionResult(functionFragment: "internalTransfer", data: BytesLike): Result; decodeFunctionResult(functionFragment: "internalTransferV2", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isCustomNetworkApproved", data: BytesLike): Result; decodeFunctionResult(functionFragment: "liquidatePosition", data: BytesLike): Result; decodeFunctionResult(functionFragment: "liquidatePositions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "liquidationFeePercent", data: BytesLike): Result; decodeFunctionResult(functionFragment: "maxOpenPositions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "positionInfo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "recover", data: BytesLike): Result; decodeFunctionResult(functionFragment: "rejectCustomNetwork", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeDelegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setBasicParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCustomStopOutLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDelegate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setFR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "soLevel", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateMatchers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "usedDelegationRequests", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawAsset", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawAssetTo", data: BytesLike): Result; decodeFunctionResult(functionFragment: "withdrawMarginLevel", data: BytesLike): Result; } export interface CrossMarginCFD extends BaseContract { connect(runner?: ContractRunner | null): CrossMarginCFD; waitForDeployment(): Promise<this>; interface: CrossMarginCFDInterface; queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>; queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>; on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>; on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>; once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>; once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>; listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>; listeners(eventName?: string): Promise<Array<Listener>>; removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>; DELEGATION_REQUEST_TYPEHASH: TypedContractMethod<[], [string], "view">; DOMAIN_NAME: TypedContractMethod<[], [string], "view">; DOMAIN_SALT: TypedContractMethod<[], [string], "view">; DOMAIN_SEPARATOR: TypedContractMethod<[], [string], "view">; DOMAIN_VERSION: TypedContractMethod<[], [string], "view">; EIP712_DOMAIN_TYPEHASH: TypedContractMethod<[], [string], "view">; INTERNAL_TRANSFER_TYPEHASH: TypedContractMethod<[], [string], "view">; LIQUIDATION_ORDER_TYPEHASH: TypedContractMethod<[], [string], "view">; MULTI_LIQUIDATION_ORDER_TYPEHASH: TypedContractMethod<[], [string], "view">; ORDER_TYPEHASH: TypedContractMethod<[], [string], "view">; PRICE_INFO_TYPEHASH: TypedContractMethod<[], [string], "view">; accountsWithOpenPositionLength: TypedContractMethod<[], [bigint], "view">; addInstrument: TypedContractMethod<[ ticker: string[], leverage: BigNumberish, dailyFRLong: BigNumberish, dailyFRShort: BigNumberish ], [ void ], "nonpayable">; allowedMatchers: TypedContractMethod<[ matcher: AddressLike ], [ boolean ], "view">; approveCustomNetwork: TypedContractMethod<[ chainId: BigNumberish ], [ void ], "nonpayable">; balances: TypedContractMethod<[account: AddressLike], [bigint], "view">; bindExternalAccount: TypedContractMethod<[ binding: CFDStructs.ExternalAddressBindingStruct ], [ void ], "nonpayable">; bindExternalAccountWithDeposit: TypedContractMethod<[ binding: CFDStructs.ExternalAddressBindingStruct, initialDeposit: CFDStructs.InternalTransferV2Struct ], [ void ], "nonpayable">; calculateMarginLevel: TypedContractMethod<[ account: AddressLike, prices: CFDStructs.PriceInfoStruct[], checkPrices: boolean ], [ [ bigint, bigint, bigint, bigint[], bigint[] ] & { marginLevel: bigint; equity: bigint; margin: bigint; pnls: bigint[]; frs: bigint[]; } ], "view">; changeDelegateFrom: TypedContractMethod<[ request: CFDStructs.DelegationRequestStruct ], [ void ], "nonpayable">; changeDelegateWithChainId: TypedContractMethod<[ request: CFDStructs.DelegationRequestStruct, chainId: BigNumberish ], [ void ], "nonpayable">; changeInstrument: TypedContractMethod<[ index: BigNumberish, ticker: string[], leverage: BigNumberish, dailyFRLong: BigNumberish, dailyFRShort: BigNumberish ], [ void ], "nonpayable">; checkAddressBindingSignature: TypedContractMethod<[ binding: CFDStructs.ExternalAddressBindingStruct ], [ string ], "view">; checkDelegationRequest: TypedContractMethod<[ delegationRequest: CFDStructs.DelegationRequestStruct ], [ string ], "view">; checkDelegationRequestWithChainId: TypedContractMethod<[ delegationRequest: CFDStructs.DelegationRequestStruct, chainId: BigNumberish ], [ string ], "nonpayable">; checkInternalTransfer: TypedContractMethod<[ internalTransfer: CFDStructs.InternalTransferStruct ], [ void ], "nonpayable">; checkInternalTransferV2: TypedContractMethod<[ internalTransfer: CFDStructs.InternalTransferV2Struct ], [ void ], "nonpayable">; "checkLiquidationOrder((address,address,(uint16,uint80)[],(uint16,uint80)[],uint64,uint64,bytes))": TypedContractMethod<[ liquidationOrder: CFDStructs.MultiLiquidationOrderStruct ], [ void ], "view">; "checkLiquidationOrder((address,address,uint16,(uint16,uint80)[],uint64,uint64,bytes))": TypedContractMethod<[ liquidationOrder: CFDStructs.LiquidationOrderStruct ], [ void ], "view">; checkMarginWithOraclePrices: TypedContractMethod<[ account: AddressLike, marginLevel: BigNumberish ], [ [boolean, bigint] ], "view">; checkOrdersInfo: TypedContractMethod<[ buyOrder: CFDStructs.OrderStruct, sellOrder: CFDStructs.OrderStruct, buyOrderSigner: AddressLike, sellOrderSigner: AddressLike, sender: AddressLike, filledAmount: BigNumberish, filledPrice: BigNumberish, currentTime: BigNumberish, allowedMatcher: AddressLike, instrumentsLength: BigNumberish ], [ [string, string] & { buyOrderDigest: string; sellOrderDigest: string; } ], "view">; checkOrdersV2Info: TypedContractMethod<[ buyOrder: CFDStructs.OrderV2Struct, sellOrder: CFDStructs.OrderV2Struct, buyOrderSigner: AddressLike, sellOrderSigner: AddressLike, sender: AddressLike, filledAmount: BigNumberish, filledPrice: BigNumberish, currentTime: BigNumberish, allowedMatcher: AddressLike, instrumentsLength: BigNumberish ], [ [string, string] & { buyOrderDigest: string; sellOrderDigest: string; } ], "nonpayable">; collateral: TypedContractMethod<[], [string], "view">; customStopOutLevel: TypedContractMethod<[ account: AddressLike ], [ bigint ], "view">; delegateFromTimeout: TypedContractMethod<[ trader: AddressLike ], [ bigint ], "view">; delegatedAction: TypedContractMethod<[ trader: AddressLike, call_data: BytesLike ], [ string ], "nonpayable">; delegations: TypedContractMethod<[trader: AddressLike], [string], "view">; deleteInstrument: TypedContractMethod<[], [void], "nonpayable">; depositAsset: TypedContractMethod<[ amount: BigNumberish ], [ void ], "nonpayable">; depositAssetTo: TypedContractMethod<[ amount: BigNumberish, to: AddressLike ], [ void ], "nonpayable">; diamondCut: TypedContractMethod<[ diamondCut_: IDiamondCut.FacetCutStruct[], init_: AddressLike, calldata_: BytesLike ], [ void ], "nonpayable">; facetAddress: TypedContractMethod<[ _functionSelector: BytesLike ], [ string ], "view">; facetAddresses: TypedContractMethod<[], [string[]], "view">; facetFunctionSelectors: TypedContractMethod<[ _facet: AddressLike ], [ string[] ], "view">; facets: TypedContractMethod<[], [IDiamondLoupe.FacetStructOutput[]], "view">; fillOrders: TypedContractMethod<[ buyOrder: CFDStructs.OrderStruct, sellOrder: CFDStructs.OrderStruct, filledPrice: BigNumberish, filledAmount: BigNumberish ], [ void ], "nonpayable">; fillOrdersV2: TypedContractMethod<[ buyOrder: CFDStructs.OrderV2Struct, sellOrder: CFDStructs.OrderV2Struct, filledPrice: BigNumberish, filledAmount: BigNumberish ], [ void ], "nonpayable">; filledAmounts: TypedContractMethod<[orderHash: BytesLike], [bigint], "view">; fundingRateAccount: TypedContractMethod<[], [string], "view">; getAccountFR: TypedContractMethod<[ account: AddressLike, index: BigNumberish ], [ bigint ], "view">; getAccountsWithOpenPositions: TypedContractMethod<[ offset: BigNumberish, limit: BigNumberish ], [ string[] ], "view">; getActiveInstrumentsIndexes: TypedContractMethod<[ account: AddressLike ], [ bigint[] ], "view">; getActiveInstrumentsPositions: TypedContractMethod<[ account: AddressLike ], [ [ bigint[], CFDStructs.PositionInfoStructOutput[] ] & { indexes: bigint[]; positions: CFDStructs.PositionInfoStructOutput[]; } ], "view">; getAssetPrice: TypedContractMethod<[index: BigNumberish], [bigint], "view">; getDelegationRequestTypeValueHash: TypedContractMethod<[ delegationRequest: CFDStructs.DelegationRequestStruct ], [ string ], "view">; getDerivedAccountBinding: TypedContractMethod<[ derivedAccount: AddressLike ], [ [ string, bigint, bigint ] & { externalAddress: string; bindingTimestamp: bigint; derivedAccountSalt: bigint; } ], "view">; getDomainSeparatorForChainId: TypedContractMethod<[ chainId_: BigNumberish ], [ string ], "view">; getEIP712DomainData: TypedContractMethod<[ ], [ [ string, string, bigint, string ] & { name: string; version: string; chainId: bigint; salt: string; } ], "view">; getExternalAccountBinding: TypedContractMethod<[ externalAddress: BytesLike ], [ [ string, bigint, bigint ] & { derivedAccount: string; bindingTimestamp: bigint; derivedAccountSalt: bigint; } ], "view">; getInstrumentInfo: TypedContractMethod<[ index: BigNumberish ], [ CFDStructs.InstrumentInfoStructOutput ], "view">; getOpenPositions: TypedContractMethod<[ offset: BigNumberish, limit: BigNumberish ], [ CFDStructs.AccountPositionsStructOutput[] ], "view">; getOrWriteDomainSeparator: TypedContractMethod<[ chainId_: BigNumberish ], [ string ], "nonpayable">; getOrderTypeValueHash: TypedContractMethod<[ _order: CFDStructs.OrderStruct ], [ string ], "view">; getPNL: TypedContractMethod<[ account: AddressLike, index: BigNumberish, price: BigNumberish ], [ bigint ], "view">; getPriceInfoTypeValueHash: TypedContractMethod<[ priceInfo: CFDStructs.PriceInfoStruct ], [ string ], "view">; getTotalLongFR: TypedContractMethod<[index: BigNumberish], [bigint], "view">; getTotalShortFR: TypedContractMethod<[index: BigNumberish], [bigint], "view">; instrumentInfo: TypedContractMethod<[ index: BigNumberish ], [ CFDStructs.InstrumentInfoStructOutput ], "view">; instrumentsLength: TypedContractMethod<[], [bigint], "view">; internalTransfer: TypedContractMethod<[ transfer: CFDStructs.InternalTransferStruct ], [ void ], "nonpayable">; internalTransferV2: TypedContractMethod<[ transfer: CFDStructs.InternalTransferV2Struct ], [ void ], "nonpayable">; isCustomNetworkApproved: TypedContractMethod<[ chainId: BigNumberish ], [ boolean ], "view">; liquidatePosition: TypedContractMethod<[ liquidationOrder: CFDStructs.LiquidationOrderStruct ], [ void ], "nonpayable">; liquidatePositions: TypedContractMethod<[ liquidationOrder: CFDStructs.MultiLiquidationOrderStruct ], [ void ], "nonpayable">; liquidationFeePercent: TypedContractMethod<[], [bigint], "view">; maxOpenPositions: TypedContractMethod<[], [bigint], "view">; oracle: TypedContractMethod<[], [string], "view">; owner: TypedContractMethod<[], [string], "view">; positionInfo: TypedContractMethod<[ index: BigNumberish, account: AddressLike ], [ CFDStructs.PositionInfoStructOutput ], "view">; recover: TypedContractMethod<[ order: CFDStructs.OrderStruct ], [ [string, string] ], "view">; rejectCustomNetwork: TypedContractMethod<[ chainId: BigNumberish ], [ void ], "nonpayable">; removeDelegate: TypedContractMethod<[], [void], "nonpayable">; setBasicParams: TypedContractMethod<[ oracle_: AddressLike, fundingRateAccount_: AddressLike, soLevel_: BigNumberish, withdrawMarginLevel_: BigNumberish, maxOpenPositions_: BigNumberish, liquidationFeePercent_: BigNumberish ], [ void ], "nonpayable">; setCustomStopOutLevel: TypedContractMethod<[ account: AddressLike, soLevel_: BigNumberish ], [ void ], "nonpayable">; setDelegate: TypedContractMethod<[ delegate: AddressLike ], [ void ], "nonpayable">; setFR: TypedContractMethod<[ index: BigNumberish, dailyFRLong: BigNumberish, dailyFRShort: BigNumberish ], [ void ], "nonpayable">; soLevel: TypedContractMethod<[], [bigint], "view">; transferOwnership: TypedContractMethod<[ newOwner_: AddressLike ], [ void ], "nonpayable">; updateMatchers: TypedContractMethod<[ matchers: AddressLike[] ], [ void ], "nonpayable">; usedDelegationRequests: TypedContractMethod<[ hash: BytesLike ], [ boolean ], "view">; withdrawAsset: TypedContractMethod<[ amount: BigNumberish ], [ void ], "nonpayable">; withdrawAssetTo: TypedContractMethod<[ amount: BigNumberish, to: AddressLike ], [ void ], "nonpayable">; withdrawMarginLevel: TypedContractMethod<[], [bigint], "view">; getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T; getFunction(nameOrSignature: "DELEGATION_REQUEST_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "DOMAIN_NAME"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "DOMAIN_SALT"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "DOMAIN_SEPARATOR"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "DOMAIN_VERSION"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "EIP712_DOMAIN_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "INTERNAL_TRANSFER_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "LIQUIDATION_ORDER_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "MULTI_LIQUIDATION_ORDER_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "ORDER_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "PRICE_INFO_TYPEHASH"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "accountsWithOpenPositionLength"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "addInstrument"): TypedContractMethod<[ ticker: string[], leverage: BigNumberish, dailyFRLong: BigNumberish, dailyFRShort: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "allowedMatchers"): TypedContractMethod<[matcher: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "approveCustomNetwork"): TypedContractMethod<[chainId: BigNumberish], [void], "nonpayable">; getFunction(nameOrSignature: "balances"): TypedContractMethod<[account: AddressLike], [bigint], "view">; getFunction(nameOrSignature: "bindExternalAccount"): TypedContractMethod<[ binding: CFDStructs.ExternalAddressBindingStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "bindExternalAccountWithDeposit"): TypedContractMethod<[ binding: CFDStructs.ExternalAddressBindingStruct, initialDeposit: CFDStructs.InternalTransferV2Struct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "calculateMarginLevel"): TypedContractMethod<[ account: AddressLike, prices: CFDStructs.PriceInfoStruct[], checkPrices: boolean ], [ [ bigint, bigint, bigint, bigint[], bigint[] ] & { marginLevel: bigint; equity: bigint; margin: bigint; pnls: bigint[]; frs: bigint[]; } ], "view">; getFunction(nameOrSignature: "changeDelegateFrom"): TypedContractMethod<[ request: CFDStructs.DelegationRequestStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "changeDelegateWithChainId"): TypedContractMethod<[ request: CFDStructs.DelegationRequestStruct, chainId: BigNumberish ], [ void