drift-labs/protocol-v2

Calling the placePerpOrder method but getting Error: unable to infer src variant

Closed this issue · 0 comments

The following method can correctly query account information, but when calling the placeperorder method, you will get an
Error: unable to transfer src variant

`

        const driftClient = new DriftClient({
            connection,
            wallet: provider.wallet,
            programID: driftPublicKey,
            ...getMarketsAndOraclesForSubscription(env),
            accountSubscription: {
                type: "polling",
                accountLoader: bulkAccountLoader,
            },
        });
        await driftClient.subscribe();
        const user = driftClient.getUser();
        const marketIndex = 0;

        const tokenAmount = user.getTokenAmount(marketIndex);

        const isDeposit = tokenAmount.gte(new BN(0));
        const isBorrow = tokenAmount.lt(new BN(0));
        console.log("tokenAmount", tokenAmount.toString());
        console.log("isDeposit", isDeposit);
        console.log("isBorrow", isBorrow);

        const baseAssetAmount =
            user.getPerpPosition(marketIndex)?.baseAssetAmount;

        const orders = await user.getOpenOrders();
        console.log(orders);
        await driftClient.placePerpOrder({
            orderType: OrderType.LIMIT,
            marketIndex: 0,
            direction: PositionDirection.LONG,
            baseAssetAmount: driftClient.convertToPerpPrecision(0.1),
            price: driftClient.convertToPricePrecision(21.23),
        })

`

but got

`
tokenAmount 56296358
isDeposit true
isBorrow false
[]
Error: unable to infer src variant
at Union.defaultGetSourceVariant (/root/server/report/load-future-fee/node_modules/buffer-layout/lib/Layout.js:1667:11)
at Union.getSourceVariant (/root/server/report/load-future-fee/node_modules/buffer-layout/lib/Layout.js:1579:14)
at Union.encode (/root/server/report/load-future-fee/node_modules/buffer-layout/lib/Layout.js:1709:22)
at Structure.encode (/root/server/report/load-future-fee/node_modules/buffer-layout/lib/Layout.js:1263:26)
at Structure.encode (/root/server/report/load-future-fee/node_modules/buffer-layout/lib/Layout.js:1263:26)
at BorshInstructionCoder._encode (/root/server/report/load-future-fee/node_modules/@drift-labs/sdk/node_modules/@coral-xyz/anchor/src/coder/borsh/instruction.ts:70:24)
at BorshInstructionCoder.encode (/root/server/report/load-future-fee/node_modules/@drift-labs/sdk/node_modules/@coral-xyz/anchor/src/coder/borsh/instruction.ts:60:17)
at /root/server/report/load-future-fee/node_modules/@drift-labs/sdk/node_modules/@coral-xyz/anchor/src/program/namespace/index.ts:63:43
at Object.ix [as placePerpOrder] (/root/server/report/load-future-fee/node_modules/@drift-labs/sdk/node_modules/@coral-xyz/anchor/src/program/namespace/instruction.ts:60:15)
at DriftClient.getPlacePerpOrderIx (/root/server/report/load-future-fee/node_modules/@drift-labs/sdk/lib/driftClient.js:1574:47)

`