Nado Typescript SDK Documentation
    Preparing search index...

    Variable QUERIER_ABIConst

    QUERIER_ABI: readonly [
        {
            inputs: readonly [
                { internalType: "int256"; name: "x"; type: "int256" },
            ];
            name: "PRBMathSD59x18__SqrtNegativeInput";
            type: "error";
        },
        {
            inputs: readonly [
                { internalType: "int256"; name: "x"; type: "int256" },
            ];
            name: "PRBMathSD59x18__SqrtOverflow";
            type: "error";
        },
        {
            inputs: readonly [];
            name: "getAllProducts";
            outputs: readonly [
                {
                    components: readonly [
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "longWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "longWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "largePositionPenaltyX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct RiskHelper.Risk";
                                    name: "risk";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token"; type: "address" },
                                        {
                                            internalType: "int128";
                                            name: "interestInflectionUtilX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestFloorX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestSmallCapX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestLargeCapX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Config";
                                    name: "config";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "cumulativeDepositsMultiplierX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeBorrowsMultiplierX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "totalDepositsNormalized";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "totalBorrowsNormalized";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.State";
                                    name: "state";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "supply"; type: "int128" },
                                        {
                                            components: readonly [(...), (...)];
                                            internalType: "struct ISpotEngine.Balance";
                                            name: "quote";
                                            type: "tuple";
                                        },
                                        {
                                            components: readonly [(...), (...)];
                                            internalType: "struct ISpotEngine.Balance";
                                            name: "base";
                                            type: "tuple";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.LpState";
                                    name: "lpState";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "sizeIncrement";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "priceIncrementX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "minSize"; type: "int128" },
                                        { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                        { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                                    ];
                                    internalType: "struct FQuerier.BookInfo";
                                    name: "bookInfo";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.SpotProduct[]";
                            name: "spotProducts";
                            type: "tuple[]";
                        },
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "longWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "longWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "largePositionPenaltyX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct RiskHelper.Risk";
                                    name: "risk";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingLongX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingShortX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "availableSettle"; type: "int128" },
                                        { internalType: "int128"; name: "openInterest"; type: "int128" },
                                    ];
                                    internalType: "struct IPerpEngine.State";
                                    name: "state";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "supply"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeFundingX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingPerLpX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "base"; type: "int128" },
                                        { internalType: "int128"; name: "quote"; type: "int128" },
                                    ];
                                    internalType: "struct IPerpEngine.LpState";
                                    name: "lpState";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "sizeIncrement";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "priceIncrementX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "minSize"; type: "int128" },
                                        { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                        { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                                    ];
                                    internalType: "struct FQuerier.BookInfo";
                                    name: "bookInfo";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.PerpProduct[]";
                            name: "perpProducts";
                            type: "tuple[]";
                        },
                    ];
                    internalType: "struct FQuerier.ProductInfo";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "uint32"; name: "productId"; type: "uint32" },
                {
                    internalType: "contract IProductEngine";
                    name: "engine";
                    type: "address";
                },
            ];
            name: "getBookInfo";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "int128"; name: "sizeIncrement"; type: "int128" },
                        { internalType: "int128"; name: "priceIncrementX18"; type: "int128" },
                        { internalType: "int128"; name: "minSize"; type: "int128" },
                        { internalType: "int128"; name: "collectedFees"; type: "int128" },
                        { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                    ];
                    internalType: "struct FQuerier.BookInfo";
                    name: "bookInfo";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [];
            name: "getClearinghouse";
            outputs: readonly [{ internalType: "address"; name: ""; type: "address" }];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
                { internalType: "uint32"; name: "productId"; type: "uint32" },
            ];
            name: "getPerpBalance";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct IPerpEngine.LpBalance";
                            name: "lpBalance";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                { internalType: "int128"; name: "vQuoteBalance"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct IPerpEngine.Balance";
                            name: "balance";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.PerpBalance";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
                { internalType: "uint32[]"; name: "productIds"; type: "uint32[]" },
            ];
            name: "getPerpBalances";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct IPerpEngine.LpBalance";
                            name: "lpBalance";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                { internalType: "int128"; name: "vQuoteBalance"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct IPerpEngine.Balance";
                            name: "balance";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.PerpBalance[]";
                    name: "perpBalances";
                    type: "tuple[]";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "uint32"; name: "productId"; type: "uint32" },
            ];
            name: "getPerpProduct";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "longWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "longWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "largePositionPenaltyX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct RiskHelper.Risk";
                            name: "risk";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingLongX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingShortX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "availableSettle"; type: "int128" },
                                { internalType: "int128"; name: "openInterest"; type: "int128" },
                            ];
                            internalType: "struct IPerpEngine.State";
                            name: "state";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "supply"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingPerLpX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "base"; type: "int128" },
                                { internalType: "int128"; name: "quote"; type: "int128" },
                            ];
                            internalType: "struct IPerpEngine.LpState";
                            name: "lpState";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "sizeIncrement"; type: "int128" },
                                { internalType: "int128"; name: "priceIncrementX18"; type: "int128" },
                                { internalType: "int128"; name: "minSize"; type: "int128" },
                                { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                            ];
                            internalType: "struct FQuerier.BookInfo";
                            name: "bookInfo";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.PerpProduct";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "uint32[]"; name: "productIds"; type: "uint32[]" },
            ];
            name: "getPerpProducts";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "longWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "longWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "largePositionPenaltyX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct RiskHelper.Risk";
                            name: "risk";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingLongX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingShortX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "availableSettle"; type: "int128" },
                                { internalType: "int128"; name: "openInterest"; type: "int128" },
                            ];
                            internalType: "struct IPerpEngine.State";
                            name: "state";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "supply"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeFundingX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeFundingPerLpX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "base"; type: "int128" },
                                { internalType: "int128"; name: "quote"; type: "int128" },
                            ];
                            internalType: "struct IPerpEngine.LpState";
                            name: "lpState";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "sizeIncrement"; type: "int128" },
                                { internalType: "int128"; name: "priceIncrementX18"; type: "int128" },
                                { internalType: "int128"; name: "minSize"; type: "int128" },
                                { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                            ];
                            internalType: "struct FQuerier.BookInfo";
                            name: "bookInfo";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.PerpProduct[]";
                    name: "perpProducts";
                    type: "tuple[]";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
                { internalType: "uint32"; name: "productId"; type: "uint32" },
            ];
            name: "getSpotBalance";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                            ];
                            internalType: "struct ISpotEngine.LpBalance";
                            name: "lpBalance";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeMultiplierX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.Balance";
                            name: "balance";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.SpotBalance";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
                { internalType: "uint32[]"; name: "productIds"; type: "uint32[]" },
            ];
            name: "getSpotBalances";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                            ];
                            internalType: "struct ISpotEngine.LpBalance";
                            name: "lpBalance";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "amount"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "lastCumulativeMultiplierX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.Balance";
                            name: "balance";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.SpotBalance[]";
                    name: "spotBalances";
                    type: "tuple[]";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "uint32"; name: "productId"; type: "uint32" },
            ];
            name: "getSpotProduct";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "longWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "longWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "largePositionPenaltyX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct RiskHelper.Risk";
                            name: "risk";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                {
                                    internalType: "int128";
                                    name: "interestInflectionUtilX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "interestFloorX18"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "interestSmallCapX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "interestLargeCapX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.Config";
                            name: "config";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "cumulativeDepositsMultiplierX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeBorrowsMultiplierX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "totalDepositsNormalized";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "totalBorrowsNormalized";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.State";
                            name: "state";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "supply"; type: "int128" },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeMultiplierX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Balance";
                                    name: "quote";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeMultiplierX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Balance";
                                    name: "base";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct ISpotEngine.LpState";
                            name: "lpState";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "sizeIncrement"; type: "int128" },
                                { internalType: "int128"; name: "priceIncrementX18"; type: "int128" },
                                { internalType: "int128"; name: "minSize"; type: "int128" },
                                { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                            ];
                            internalType: "struct FQuerier.BookInfo";
                            name: "bookInfo";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.SpotProduct";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "uint32[]"; name: "productIds"; type: "uint32[]" },
            ];
            name: "getSpotProducts";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "uint32"; name: "productId"; type: "uint32" },
                        { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "longWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightInitialX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "longWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "shortWeightMaintenanceX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "largePositionPenaltyX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct RiskHelper.Risk";
                            name: "risk";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "address"; name: "token"; type: "address" },
                                {
                                    internalType: "int128";
                                    name: "interestInflectionUtilX18";
                                    type: "int128";
                                },
                                { internalType: "int128"; name: "interestFloorX18"; type: "int128" },
                                {
                                    internalType: "int128";
                                    name: "interestSmallCapX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "interestLargeCapX18";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.Config";
                            name: "config";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                {
                                    internalType: "int128";
                                    name: "cumulativeDepositsMultiplierX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "cumulativeBorrowsMultiplierX18";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "totalDepositsNormalized";
                                    type: "int128";
                                },
                                {
                                    internalType: "int128";
                                    name: "totalBorrowsNormalized";
                                    type: "int128";
                                },
                            ];
                            internalType: "struct ISpotEngine.State";
                            name: "state";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "supply"; type: "int128" },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeMultiplierX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Balance";
                                    name: "quote";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeMultiplierX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Balance";
                                    name: "base";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct ISpotEngine.LpState";
                            name: "lpState";
                            type: "tuple";
                        },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "sizeIncrement"; type: "int128" },
                                { internalType: "int128"; name: "priceIncrementX18"; type: "int128" },
                                { internalType: "int128"; name: "minSize"; type: "int128" },
                                { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                            ];
                            internalType: "struct FQuerier.BookInfo";
                            name: "bookInfo";
                            type: "tuple";
                        },
                    ];
                    internalType: "struct FQuerier.SpotProduct[]";
                    name: "spotProducts";
                    type: "tuple[]";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
            ];
            name: "getSubaccountInfo";
            outputs: readonly [
                {
                    components: readonly [
                        { internalType: "bytes32"; name: "subaccount"; type: "bytes32" },
                        { internalType: "bool"; name: "exists"; type: "bool" },
                        {
                            components: readonly [
                                { internalType: "int128"; name: "assets"; type: "int128" },
                                { internalType: "int128"; name: "liabilities"; type: "int128" },
                                { internalType: "int128"; name: "health"; type: "int128" },
                            ];
                            internalType: "struct FQuerier.HealthInfo[]";
                            name: "healths";
                            type: "tuple[]";
                        },
                        {
                            internalType: "int128[][]";
                            name: "healthContributions";
                            type: "int128[][]";
                        },
                        { internalType: "uint32"; name: "spotCount"; type: "uint32" },
                        { internalType: "uint32"; name: "perpCount"; type: "uint32" },
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                    ];
                                    internalType: "struct ISpotEngine.LpBalance";
                                    name: "lpBalance";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeMultiplierX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Balance";
                                    name: "balance";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.SpotBalance[]";
                            name: "spotBalances";
                            type: "tuple[]";
                        },
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeFundingX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct IPerpEngine.LpBalance";
                                    name: "lpBalance";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "amount"; type: "int128" },
                                        { internalType: "int128"; name: "vQuoteBalance"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeFundingX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct IPerpEngine.Balance";
                                    name: "balance";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.PerpBalance[]";
                            name: "perpBalances";
                            type: "tuple[]";
                        },
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "longWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "longWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "largePositionPenaltyX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct RiskHelper.Risk";
                                    name: "risk";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "address"; name: "token"; type: "address" },
                                        {
                                            internalType: "int128";
                                            name: "interestInflectionUtilX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestFloorX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestSmallCapX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "interestLargeCapX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.Config";
                                    name: "config";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "cumulativeDepositsMultiplierX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeBorrowsMultiplierX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "totalDepositsNormalized";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "totalBorrowsNormalized";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.State";
                                    name: "state";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "supply"; type: "int128" },
                                        {
                                            components: readonly [(...), (...)];
                                            internalType: "struct ISpotEngine.Balance";
                                            name: "quote";
                                            type: "tuple";
                                        },
                                        {
                                            components: readonly [(...), (...)];
                                            internalType: "struct ISpotEngine.Balance";
                                            name: "base";
                                            type: "tuple";
                                        },
                                    ];
                                    internalType: "struct ISpotEngine.LpState";
                                    name: "lpState";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "sizeIncrement";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "priceIncrementX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "minSize"; type: "int128" },
                                        { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                        { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                                    ];
                                    internalType: "struct FQuerier.BookInfo";
                                    name: "bookInfo";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.SpotProduct[]";
                            name: "spotProducts";
                            type: "tuple[]";
                        },
                        {
                            components: readonly [
                                { internalType: "uint32"; name: "productId"; type: "uint32" },
                                { internalType: "int128"; name: "oraclePriceX18"; type: "int128" },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "longWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightInitialX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "longWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "shortWeightMaintenanceX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "largePositionPenaltyX18";
                                            type: "int128";
                                        },
                                    ];
                                    internalType: "struct RiskHelper.Risk";
                                    name: "risk";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingLongX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingShortX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "availableSettle"; type: "int128" },
                                        { internalType: "int128"; name: "openInterest"; type: "int128" },
                                    ];
                                    internalType: "struct IPerpEngine.State";
                                    name: "state";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        { internalType: "int128"; name: "supply"; type: "int128" },
                                        {
                                            internalType: "int128";
                                            name: "lastCumulativeFundingX18";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "cumulativeFundingPerLpX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "base"; type: "int128" },
                                        { internalType: "int128"; name: "quote"; type: "int128" },
                                    ];
                                    internalType: "struct IPerpEngine.LpState";
                                    name: "lpState";
                                    type: "tuple";
                                },
                                {
                                    components: readonly [
                                        {
                                            internalType: "int128";
                                            name: "sizeIncrement";
                                            type: "int128";
                                        },
                                        {
                                            internalType: "int128";
                                            name: "priceIncrementX18";
                                            type: "int128";
                                        },
                                        { internalType: "int128"; name: "minSize"; type: "int128" },
                                        { internalType: "int128"; name: "collectedFees"; type: "int128" },
                                        { internalType: "int128"; name: "lpSpreadX18"; type: "int128" },
                                    ];
                                    internalType: "struct FQuerier.BookInfo";
                                    name: "bookInfo";
                                    type: "tuple";
                                },
                            ];
                            internalType: "struct FQuerier.PerpProduct[]";
                            name: "perpProducts";
                            type: "tuple[]";
                        },
                    ];
                    internalType: "struct FQuerier.SubaccountInfo";
                    name: "";
                    type: "tuple";
                },
            ];
            stateMutability: "view";
            type: "function";
        },
        {
            inputs: readonly [];
            name: "getVersion";
            outputs: readonly [{ internalType: "uint64"; name: ""; type: "uint64" }];
            stateMutability: "pure";
            type: "function";
        },
        {
            inputs: readonly [
                { internalType: "address"; name: "_clearinghouse"; type: "address" },
            ];
            name: "initialize";
            outputs: readonly [];
            stateMutability: "nonpayable";
            type: "function";
        },
    ] = ...