UNPKG

@electra.finance/contracts

Version:
3,336 lines 98.6 kB
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface } from "ethers";
const _abi = [
    {
        inputs: [],
        name: "DELEGATION_REQUEST_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "DOMAIN_NAME",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "DOMAIN_SALT",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "DOMAIN_SEPARATOR",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "DOMAIN_VERSION",
        outputs: [
            {
                internalType: "string",
                name: "",
                type: "string",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "EIP712_DOMAIN_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "INTERNAL_TRANSFER_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "LIQUIDATION_ORDER_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "MULTI_LIQUIDATION_ORDER_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "ORDER_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "PRICE_INFO_TYPEHASH",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [],
        name: "accountsWithOpenPositionLength",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "string[12]",
                name: "ticker",
                type: "string[12]",
            },
            {
                internalType: "uint8",
                name: "leverage",
                type: "uint8",
            },
            {
                internalType: "int256",
                name: "dailyFRLong",
                type: "int256",
            },
            {
                internalType: "int256",
                name: "dailyFRShort",
                type: "int256",
            },
        ],
        name: "addInstrument",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "matcher",
                type: "address",
            },
        ],
        name: "allowedMatchers",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint64",
                name: "chainId",
                type: "uint64",
            },
        ],
        name: "approveCustomNetwork",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "balances",
        outputs: [
            {
                internalType: "int112",
                name: "",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "derivedAccount",
                        type: "address",
                    },
                    {
                        internalType: "uint64",
                        name: "derivedAccountSalt",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "derivedAccountSignature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.ExternalAddressBinding",
                name: "binding",
                type: "tuple",
            },
        ],
        name: "bindExternalAccount",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "derivedAccount",
                        type: "address",
                    },
                    {
                        internalType: "uint64",
                        name: "derivedAccountSalt",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "derivedAccountSignature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.ExternalAddressBinding",
                name: "binding",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "from",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "to",
                        type: "address",
                    },
                    {
                        internalType: "uint112",
                        name: "amount",
                        type: "uint112",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes32",
                        name: "uniqueHash",
                        type: "bytes32",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.InternalTransferV2",
                name: "initialDeposit",
                type: "tuple",
            },
        ],
        name: "bindExternalAccountWithDeposit",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                components: [
                    {
                        internalType: "uint16",
                        name: "index",
                        type: "uint16",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                ],
                internalType: "struct CFDStructs.PriceInfo[]",
                name: "prices",
                type: "tuple[]",
            },
            {
                internalType: "bool",
                name: "checkPrices",
                type: "bool",
            },
        ],
        name: "calculateMarginLevel",
        outputs: [
            {
                internalType: "int112",
                name: "marginLevel",
                type: "int112",
            },
            {
                internalType: "int112",
                name: "equity",
                type: "int112",
            },
            {
                internalType: "int112",
                name: "margin",
                type: "int112",
            },
            {
                internalType: "int112[]",
                name: "pnls",
                type: "int112[]",
            },
            {
                internalType: "int112[]",
                name: "frs",
                type: "int112[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "trader",
                        type: "address",
                    },
                    {
                        internalType: "bool",
                        name: "isSetDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint88",
                        name: "deadline",
                        type: "uint88",
                    },
                    {
                        internalType: "address",
                        name: "delegate",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.DelegationRequest",
                name: "request",
                type: "tuple",
            },
        ],
        name: "changeDelegateFrom",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "trader",
                        type: "address",
                    },
                    {
                        internalType: "bool",
                        name: "isSetDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint88",
                        name: "deadline",
                        type: "uint88",
                    },
                    {
                        internalType: "address",
                        name: "delegate",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.DelegationRequest",
                name: "request",
                type: "tuple",
            },
            {
                internalType: "uint64",
                name: "chainId",
                type: "uint64",
            },
        ],
        name: "changeDelegateWithChainId",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
            {
                internalType: "string[12]",
                name: "ticker",
                type: "string[12]",
            },
            {
                internalType: "uint8",
                name: "leverage",
                type: "uint8",
            },
            {
                internalType: "int256",
                name: "dailyFRLong",
                type: "int256",
            },
            {
                internalType: "int256",
                name: "dailyFRShort",
                type: "int256",
            },
        ],
        name: "changeInstrument",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "derivedAccount",
                        type: "address",
                    },
                    {
                        internalType: "uint64",
                        name: "derivedAccountSalt",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "derivedAccountSignature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.ExternalAddressBinding",
                name: "binding",
                type: "tuple",
            },
        ],
        name: "checkAddressBindingSignature",
        outputs: [
            {
                internalType: "bytes32",
                name: "digest",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "trader",
                        type: "address",
                    },
                    {
                        internalType: "bool",
                        name: "isSetDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint88",
                        name: "deadline",
                        type: "uint88",
                    },
                    {
                        internalType: "address",
                        name: "delegate",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.DelegationRequest",
                name: "delegationRequest",
                type: "tuple",
            },
        ],
        name: "checkDelegationRequest",
        outputs: [
            {
                internalType: "bytes32",
                name: "delegationRequestDigest",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "trader",
                        type: "address",
                    },
                    {
                        internalType: "bool",
                        name: "isSetDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint88",
                        name: "deadline",
                        type: "uint88",
                    },
                    {
                        internalType: "address",
                        name: "delegate",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.DelegationRequest",
                name: "delegationRequest",
                type: "tuple",
            },
            {
                internalType: "uint64",
                name: "chainId",
                type: "uint64",
            },
        ],
        name: "checkDelegationRequestWithChainId",
        outputs: [
            {
                internalType: "bytes32",
                name: "delegationRequestDigest",
                type: "bytes32",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "from",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "to",
                        type: "address",
                    },
                    {
                        internalType: "uint112",
                        name: "amount",
                        type: "uint112",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint192",
                        name: "reserved",
                        type: "uint192",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.InternalTransfer",
                name: "internalTransfer",
                type: "tuple",
            },
        ],
        name: "checkInternalTransfer",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "from",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "to",
                        type: "address",
                    },
                    {
                        internalType: "uint112",
                        name: "amount",
                        type: "uint112",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes32",
                        name: "uniqueHash",
                        type: "bytes32",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.InternalTransferV2",
                name: "internalTransfer",
                type: "tuple",
            },
        ],
        name: "checkInternalTransferV2",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "accountToLiquidate",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "liquidator",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "liquidationPrices",
                        type: "tuple[]",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "prices",
                        type: "tuple[]",
                    },
                    {
                        internalType: "uint64",
                        name: "liquidationTimestamp",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.MultiLiquidationOrder",
                name: "liquidationOrder",
                type: "tuple",
            },
        ],
        name: "checkLiquidationOrder",
        outputs: [],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "accountToLiquidate",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "liquidator",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "index",
                        type: "uint16",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "prices",
                        type: "tuple[]",
                    },
                    {
                        internalType: "uint64",
                        name: "liquidationTimestamp",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.LiquidationOrder",
                name: "liquidationOrder",
                type: "tuple",
            },
        ],
        name: "checkLiquidationOrder",
        outputs: [],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                internalType: "int112",
                name: "marginLevel",
                type: "int112",
            },
        ],
        name: "checkMarginWithOraclePrices",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
            {
                internalType: "int112",
                name: "",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "buyOrder",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "sellOrder",
                type: "tuple",
            },
            {
                internalType: "address",
                name: "buyOrderSigner",
                type: "address",
            },
            {
                internalType: "address",
                name: "sellOrderSigner",
                type: "address",
            },
            {
                internalType: "address",
                name: "sender",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "filledAmount",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "filledPrice",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "currentTime",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "allowedMatcher",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "instrumentsLength",
                type: "uint256",
            },
        ],
        name: "checkOrdersInfo",
        outputs: [
            {
                internalType: "bytes32",
                name: "buyOrderDigest",
                type: "bytes32",
            },
            {
                internalType: "bytes32",
                name: "sellOrderDigest",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price2",
                        type: "uint80",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "orderType",
                        type: "uint8",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.OrderV2",
                name: "buyOrder",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price2",
                        type: "uint80",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "orderType",
                        type: "uint8",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.OrderV2",
                name: "sellOrder",
                type: "tuple",
            },
            {
                internalType: "address",
                name: "buyOrderSigner",
                type: "address",
            },
            {
                internalType: "address",
                name: "sellOrderSigner",
                type: "address",
            },
            {
                internalType: "address",
                name: "sender",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "filledAmount",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "filledPrice",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "currentTime",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "allowedMatcher",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "instrumentsLength",
                type: "uint256",
            },
        ],
        name: "checkOrdersV2Info",
        outputs: [
            {
                internalType: "bytes32",
                name: "buyOrderDigest",
                type: "bytes32",
            },
            {
                internalType: "bytes32",
                name: "sellOrderDigest",
                type: "bytes32",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "collateral",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "customStopOutLevel",
        outputs: [
            {
                internalType: "int112",
                name: "",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "trader",
                type: "address",
            },
        ],
        name: "delegateFromTimeout",
        outputs: [
            {
                internalType: "uint88",
                name: "timeLeft",
                type: "uint88",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "trader",
                type: "address",
            },
            {
                internalType: "bytes",
                name: "call_data",
                type: "bytes",
            },
        ],
        name: "delegatedAction",
        outputs: [
            {
                internalType: "bytes",
                name: "",
                type: "bytes",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "trader",
                type: "address",
            },
        ],
        name: "delegations",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "deleteInstrument",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint112",
                name: "amount",
                type: "uint112",
            },
        ],
        name: "depositAsset",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint112",
                name: "amount",
                type: "uint112",
            },
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
        ],
        name: "depositAssetTo",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "facetAddress",
                        type: "address",
                    },
                    {
                        internalType: "enum IDiamondCut.FacetCutAction",
                        name: "action",
                        type: "uint8",
                    },
                    {
                        internalType: "bytes4[]",
                        name: "functionSelectors",
                        type: "bytes4[]",
                    },
                ],
                internalType: "struct IDiamondCut.FacetCut[]",
                name: "diamondCut_",
                type: "tuple[]",
            },
            {
                internalType: "address",
                name: "init_",
                type: "address",
            },
            {
                internalType: "bytes",
                name: "calldata_",
                type: "bytes",
            },
        ],
        name: "diamondCut",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes4",
                name: "_functionSelector",
                type: "bytes4",
            },
        ],
        name: "facetAddress",
        outputs: [
            {
                internalType: "address",
                name: "facetAddress_",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "facetAddresses",
        outputs: [
            {
                internalType: "address[]",
                name: "facetAddresses_",
                type: "address[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "_facet",
                type: "address",
            },
        ],
        name: "facetFunctionSelectors",
        outputs: [
            {
                internalType: "bytes4[]",
                name: "facetFunctionSelectors_",
                type: "bytes4[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "facets",
        outputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "facetAddress",
                        type: "address",
                    },
                    {
                        internalType: "bytes4[]",
                        name: "functionSelectors",
                        type: "bytes4[]",
                    },
                ],
                internalType: "struct IDiamondLoupe.Facet[]",
                name: "facets_",
                type: "tuple[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "buyOrder",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "sellOrder",
                type: "tuple",
            },
            {
                internalType: "uint80",
                name: "filledPrice",
                type: "uint80",
            },
            {
                internalType: "uint96",
                name: "filledAmount",
                type: "uint96",
            },
        ],
        name: "fillOrders",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price2",
                        type: "uint80",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "orderType",
                        type: "uint8",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.OrderV2",
                name: "buyOrder",
                type: "tuple",
            },
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint80",
                        name: "price2",
                        type: "uint80",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "orderType",
                        type: "uint8",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.OrderV2",
                name: "sellOrder",
                type: "tuple",
            },
            {
                internalType: "uint80",
                name: "filledPrice",
                type: "uint80",
            },
            {
                internalType: "uint96",
                name: "filledAmount",
                type: "uint96",
            },
        ],
        name: "fillOrdersV2",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "orderHash",
                type: "bytes32",
            },
        ],
        name: "filledAmounts",
        outputs: [
            {
                internalType: "uint96",
                name: "",
                type: "uint96",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "fundingRateAccount",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getAccountFR",
        outputs: [
            {
                internalType: "int112",
                name: "fundingRate",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "offset",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "limit",
                type: "uint256",
            },
        ],
        name: "getAccountsWithOpenPositions",
        outputs: [
            {
                internalType: "address[]",
                name: "",
                type: "address[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "getActiveInstrumentsIndexes",
        outputs: [
            {
                internalType: "uint256[]",
                name: "",
                type: "uint256[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "getActiveInstrumentsPositions",
        outputs: [
            {
                internalType: "uint256[]",
                name: "indexes",
                type: "uint256[]",
            },
            {
                components: [
                    {
                        internalType: "int112",
                        name: "position",
                        type: "int112",
                    },
                    {
                        internalType: "int112",
                        name: "frAccumulated",
                        type: "int112",
                    },
                    {
                        internalType: "uint32",
                        name: "positionLastUpdate",
                        type: "uint32",
                    },
                    {
                        internalType: "uint80",
                        name: "positionAvgPrice",
                        type: "uint80",
                    },
                    {
                        internalType: "int72",
                        name: "positionLongFRStored",
                        type: "int72",
                    },
                    {
                        internalType: "int72",
                        name: "positionShortFRStored",
                        type: "int72",
                    },
                ],
                internalType: "struct CFDStructs.PositionInfo[]",
                name: "positions",
                type: "tuple[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getAssetPrice",
        outputs: [
            {
                internalType: "int112",
                name: "price",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "trader",
                        type: "address",
                    },
                    {
                        internalType: "bool",
                        name: "isSetDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "uint88",
                        name: "deadline",
                        type: "uint88",
                    },
                    {
                        internalType: "address",
                        name: "delegate",
                        type: "address",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.DelegationRequest",
                name: "delegationRequest",
                type: "tuple",
            },
        ],
        name: "getDelegationRequestTypeValueHash",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "derivedAccount",
                type: "address",
            },
        ],
        name: "getDerivedAccountBinding",
        outputs: [
            {
                internalType: "bytes",
                name: "externalAddress",
                type: "bytes",
            },
            {
                internalType: "uint64",
                name: "bindingTimestamp",
                type: "uint64",
            },
            {
                internalType: "uint64",
                name: "derivedAccountSalt",
                type: "uint64",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "chainId_",
                type: "uint256",
            },
        ],
        name: "getDomainSeparatorForChainId",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "getEIP712DomainData",
        outputs: [
            {
                internalType: "string",
                name: "name",
                type: "string",
            },
            {
                internalType: "string",
                name: "version",
                type: "string",
            },
            {
                internalType: "uint256",
                name: "chainId",
                type: "uint256",
            },
            {
                internalType: "bytes32",
                name: "salt",
                type: "bytes32",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes",
                name: "externalAddress",
                type: "bytes",
            },
        ],
        name: "getExternalAccountBinding",
        outputs: [
            {
                internalType: "address",
                name: "derivedAccount",
                type: "address",
            },
            {
                internalType: "uint64",
                name: "bindingTimestamp",
                type: "uint64",
            },
            {
                internalType: "uint64",
                name: "derivedAccountSalt",
                type: "uint64",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getInstrumentInfo",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint8",
                        name: "leverage",
                        type: "uint8",
                    },
                    {
                        internalType: "string[12]",
                        name: "ticker",
                        type: "string[12]",
                    },
                    {
                        components: [
                            {
                                internalType: "int40",
                                name: "frLong",
                                type: "int40",
                            },
                            {
                                internalType: "int40",
                                name: "frShort",
                                type: "int40",
                            },
                            {
                                internalType: "int72",
                                name: "longFRStored",
                                type: "int72",
                            },
                            {
                                internalType: "int72",
                                name: "shortFRStored",
                                type: "int72",
                            },
                            {
                                internalType: "uint32",
                                name: "lastFRUpdateTime",
                                type: "uint32",
                            },
                        ],
                        internalType: "struct CFDStructs.FundingRateInfo",
                        name: "fundingRateInfo",
                        type: "tuple",
                    },
                ],
                internalType: "struct CFDStructs.InstrumentInfo",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "offset",
                type: "uint256",
            },
            {
                internalType: "uint256",
                name: "limit",
                type: "uint256",
            },
        ],
        name: "getOpenPositions",
        outputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "account",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "int112",
                                name: "position",
                                type: "int112",
                            },
                            {
                                internalType: "int112",
                                name: "frAccumulated",
                                type: "int112",
                            },
                            {
                                internalType: "uint32",
                                name: "positionLastUpdate",
                                type: "uint32",
                            },
                            {
                                internalType: "uint80",
                                name: "positionAvgPrice",
                                type: "uint80",
                            },
                            {
                                internalType: "int72",
                                name: "positionLongFRStored",
                                type: "int72",
                            },
                            {
                                internalType: "int72",
                                name: "positionShortFRStored",
                                type: "int72",
                            },
                        ],
                        internalType: "struct CFDStructs.PositionInfo[]",
                        name: "positions",
                        type: "tuple[]",
                    },
                ],
                internalType: "struct CFDStructs.AccountPositions[]",
                name: "",
                type: "tuple[]",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "chainId_",
                type: "uint256",
            },
        ],
        name: "getOrWriteDomainSeparator",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "_order",
                type: "tuple",
            },
        ],
        name: "getOrderTypeValueHash",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
            {
                internalType: "int112",
                name: "price",
                type: "int112",
            },
        ],
        name: "getPNL",
        outputs: [
            {
                internalType: "int112",
                name: "pnl",
                type: "int112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "uint16",
                        name: "index",
                        type: "uint16",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                ],
                internalType: "struct CFDStructs.PriceInfo",
                name: "priceInfo",
                type: "tuple",
            },
        ],
        name: "getPriceInfoTypeValueHash",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
        ],
        stateMutability: "pure",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getTotalLongFR",
        outputs: [
            {
                internalType: "int72",
                name: "",
                type: "int72",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "getTotalShortFR",
        outputs: [
            {
                internalType: "int72",
                name: "",
                type: "int72",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
        ],
        name: "instrumentInfo",
        outputs: [
            {
                components: [
                    {
                        internalType: "uint8",
                        name: "leverage",
                        type: "uint8",
                    },
                    {
                        internalType: "string[12]",
                        name: "ticker",
                        type: "string[12]",
                    },
                    {
                        components: [
                            {
                                internalType: "int40",
                                name: "frLong",
                                type: "int40",
                            },
                            {
                                internalType: "int40",
                                name: "frShort",
                                type: "int40",
                            },
                            {
                                internalType: "int72",
                                name: "longFRStored",
                                type: "int72",
                            },
                            {
                                internalType: "int72",
                                name: "shortFRStored",
                                type: "int72",
                            },
                            {
                                internalType: "uint32",
                                name: "lastFRUpdateTime",
                                type: "uint32",
                            },
                        ],
                        internalType: "struct CFDStructs.FundingRateInfo",
                        name: "fundingRateInfo",
                        type: "tuple",
                    },
                ],
                internalType: "struct CFDStructs.InstrumentInfo",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "instrumentsLength",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "from",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "to",
                        type: "address",
                    },
                    {
                        internalType: "uint112",
                        name: "amount",
                        type: "uint112",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint192",
                        name: "reserved",
                        type: "uint192",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.InternalTransfer",
                name: "transfer",
                type: "tuple",
            },
        ],
        name: "internalTransfer",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "from",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "to",
                        type: "address",
                    },
                    {
                        internalType: "uint112",
                        name: "amount",
                        type: "uint112",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "nonce",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "chainId",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "signerChainId",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes32",
                        name: "uniqueHash",
                        type: "bytes32",
                    },
                    {
                        internalType: "bytes",
                        name: "externalAddress",
                        type: "bytes",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.InternalTransferV2",
                name: "transfer",
                type: "tuple",
            },
        ],
        name: "internalTransferV2",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint64",
                name: "chainId",
                type: "uint64",
            },
        ],
        name: "isCustomNetworkApproved",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "accountToLiquidate",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "liquidator",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "index",
                        type: "uint16",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "prices",
                        type: "tuple[]",
                    },
                    {
                        internalType: "uint64",
                        name: "liquidationTimestamp",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.LiquidationOrder",
                name: "liquidationOrder",
                type: "tuple",
            },
        ],
        name: "liquidatePosition",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "accountToLiquidate",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "liquidator",
                        type: "address",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "liquidationPrices",
                        type: "tuple[]",
                    },
                    {
                        components: [
                            {
                                internalType: "uint16",
                                name: "index",
                                type: "uint16",
                            },
                            {
                                internalType: "uint80",
                                name: "price",
                                type: "uint80",
                            },
                        ],
                        internalType: "struct CFDStructs.PriceInfo[]",
                        name: "prices",
                        type: "tuple[]",
                    },
                    {
                        internalType: "uint64",
                        name: "liquidationTimestamp",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.MultiLiquidationOrder",
                name: "liquidationOrder",
                type: "tuple",
            },
        ],
        name: "liquidatePositions",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "liquidationFeePercent",
        outputs: [
            {
                internalType: "uint112",
                name: "",
                type: "uint112",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "maxOpenPositions",
        outputs: [
            {
                internalType: "uint256",
                name: "",
                type: "uint256",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "oracle",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [],
        name: "owner",
        outputs: [
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
        ],
        name: "positionInfo",
        outputs: [
            {
                components: [
                    {
                        internalType: "int112",
                        name: "position",
                        type: "int112",
                    },
                    {
                        internalType: "int112",
                        name: "frAccumulated",
                        type: "int112",
                    },
                    {
                        internalType: "uint32",
                        name: "positionLastUpdate",
                        type: "uint32",
                    },
                    {
                        internalType: "uint80",
                        name: "positionAvgPrice",
                        type: "uint80",
                    },
                    {
                        internalType: "int72",
                        name: "positionLongFRStored",
                        type: "int72",
                    },
                    {
                        internalType: "int72",
                        name: "positionShortFRStored",
                        type: "int72",
                    },
                ],
                internalType: "struct CFDStructs.PositionInfo",
                name: "",
                type: "tuple",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                components: [
                    {
                        internalType: "address",
                        name: "senderAddress",
                        type: "address",
                    },
                    {
                        internalType: "address",
                        name: "matcherAddress",
                        type: "address",
                    },
                    {
                        internalType: "uint16",
                        name: "instrumentIndex",
                        type: "uint16",
                    },
                    {
                        internalType: "uint96",
                        name: "amount",
                        type: "uint96",
                    },
                    {
                        internalType: "uint80",
                        name: "price",
                        type: "uint80",
                    },
                    {
                        internalType: "uint64",
                        name: "matcherFee",
                        type: "uint64",
                    },
                    {
                        internalType: "uint64",
                        name: "expiration",
                        type: "uint64",
                    },
                    {
                        internalType: "uint8",
                        name: "buySide",
                        type: "uint8",
                    },
                    {
                        internalType: "bool",
                        name: "isFromDelegate",
                        type: "bool",
                    },
                    {
                        internalType: "bytes",
                        name: "signature",
                        type: "bytes",
                    },
                ],
                internalType: "struct CFDStructs.Order",
                name: "order",
                type: "tuple",
            },
        ],
        name: "recover",
        outputs: [
            {
                internalType: "bytes32",
                name: "",
                type: "bytes32",
            },
            {
                internalType: "address",
                name: "",
                type: "address",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint64",
                name: "chainId",
                type: "uint64",
            },
        ],
        name: "rejectCustomNetwork",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "removeDelegate",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "oracle_",
                type: "address",
            },
            {
                internalType: "address",
                name: "fundingRateAccount_",
                type: "address",
            },
            {
                internalType: "uint8",
                name: "soLevel_",
                type: "uint8",
            },
            {
                internalType: "uint16",
                name: "withdrawMarginLevel_",
                type: "uint16",
            },
            {
                internalType: "uint256",
                name: "maxOpenPositions_",
                type: "uint256",
            },
            {
                internalType: "uint112",
                name: "liquidationFeePercent_",
                type: "uint112",
            },
        ],
        name: "setBasicParams",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "account",
                type: "address",
            },
            {
                internalType: "int112",
                name: "soLevel_",
                type: "int112",
            },
        ],
        name: "setCustomStopOutLevel",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "delegate",
                type: "address",
            },
        ],
        name: "setDelegate",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint256",
                name: "index",
                type: "uint256",
            },
            {
                internalType: "int256",
                name: "dailyFRLong",
                type: "int256",
            },
            {
                internalType: "int256",
                name: "dailyFRShort",
                type: "int256",
            },
        ],
        name: "setFR",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "soLevel",
        outputs: [
            {
                internalType: "uint8",
                name: "",
                type: "uint8",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address",
                name: "newOwner_",
                type: "address",
            },
        ],
        name: "transferOwnership",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "address[]",
                name: "matchers",
                type: "address[]",
            },
        ],
        name: "updateMatchers",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "bytes32",
                name: "hash",
                type: "bytes32",
            },
        ],
        name: "usedDelegationRequests",
        outputs: [
            {
                internalType: "bool",
                name: "",
                type: "bool",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint112",
                name: "amount",
                type: "uint112",
            },
        ],
        name: "withdrawAsset",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [
            {
                internalType: "uint112",
                name: "amount",
                type: "uint112",
            },
            {
                internalType: "address",
                name: "to",
                type: "address",
            },
        ],
        name: "withdrawAssetTo",
        outputs: [],
        stateMutability: "nonpayable",
        type: "function",
    },
    {
        inputs: [],
        name: "withdrawMarginLevel",
        outputs: [
            {
                internalType: "uint16",
                name: "",
                type: "uint16",
            },
        ],
        stateMutability: "view",
        type: "function",
    },
];
export class CrossMarginCFD__factory {
    static createInterface() {
        return new Interface(_abi);
    }
    static connect(address, runner) {
        return new Contract(address, _abi, runner);
    }
}
CrossMarginCFD__factory.abi = _abi;