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)
`