@drift-labs/sdk 2.98.0-beta.7 → 2.98.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.98.0-beta.7
1
+ 2.98.0-beta.9
@@ -69,6 +69,7 @@ const pyth_solana_receiver_json_1 = __importDefault(require("./idl/pyth_solana_r
69
69
  const on_demand_1 = require("@switchboard-xyz/on-demand");
70
70
  const grpcDriftClientAccountSubscriber_1 = require("./accounts/grpcDriftClientAccountSubscriber");
71
71
  const tweetnacl_1 = __importDefault(require("tweetnacl"));
72
+ const digest_1 = require("./util/digest");
72
73
  /**
73
74
  * # DriftClient
74
75
  * This class is the main way to interact with Drift Protocol. It allows you to subscribe to the various accounts where the Market's state is stored, as well as: opening positions, liquidating, settling funding, depositing & withdrawing, and more.
@@ -3006,11 +3007,11 @@ class DriftClient {
3006
3007
  };
3007
3008
  }
3008
3009
  signSwiftServerMessage(message) {
3009
- const swiftServerMessage = Uint8Array.from(this.encodeSwiftServerMessage(message));
3010
+ const swiftServerMessage = Uint8Array.from((0, digest_1.digest)(this.encodeSwiftServerMessage(message)));
3010
3011
  return this.signMessage(swiftServerMessage);
3011
3012
  }
3012
3013
  signSwiftOrderParamsMessage(orderParamsMessage) {
3013
- const takerOrderParamsMessage = Uint8Array.from(this.encodeSwiftOrderParamsMessage(orderParamsMessage));
3014
+ const takerOrderParamsMessage = Uint8Array.from((0, digest_1.digest)(this.encodeSwiftOrderParamsMessage(orderParamsMessage)));
3014
3015
  return this.signMessage(takerOrderParamsMessage);
3015
3016
  }
3016
3017
  encodeSwiftOrderParamsMessage(orderParamsMessage) {
@@ -3036,14 +3037,14 @@ class DriftClient {
3036
3037
  const swiftServerSignatureIx = web3_js_1.Ed25519Program.createInstructionWithPublicKey({
3037
3038
  publicKey: new web3_js_1.PublicKey(this.swiftID).toBytes(),
3038
3039
  signature: Uint8Array.from(swiftSignature),
3039
- message: Uint8Array.from(encodedSwiftServerMessage),
3040
+ message: Uint8Array.from((0, digest_1.digest)(encodedSwiftServerMessage)),
3040
3041
  });
3041
3042
  const swiftOrderParamsSignatureIx = web3_js_1.Ed25519Program.createInstructionWithPublicKey({
3042
3043
  publicKey: takerInfo.takerUserAccount.authority.toBytes(),
3043
3044
  signature: Uint8Array.from(swiftOrderParamsSignature),
3044
- message: Uint8Array.from(encodedSwiftOrderParamsMessage),
3045
+ message: Uint8Array.from((0, digest_1.digest)(encodedSwiftOrderParamsMessage)),
3045
3046
  });
3046
- const placeTakerSwiftPerpOrderIx = await this.program.instruction.placeSwiftTakerOrder(encodedSwiftServerMessage, encodedSwiftOrderParamsMessage, swiftSignature, {
3047
+ const placeTakerSwiftPerpOrderIx = await this.program.instruction.placeSwiftTakerOrder(encodedSwiftServerMessage, encodedSwiftOrderParamsMessage, {
3047
3048
  accounts: {
3048
3049
  state: await this.getStatePublicKey(),
3049
3050
  user: takerInfo.taker,
@@ -44,7 +44,7 @@ export type EventMap = {
44
44
  SwiftOrderRecord: Event<SwiftOrderRecord>;
45
45
  };
46
46
  export type EventType = keyof EventMap;
47
- export type DriftEvent = Event<DepositRecord> | Event<FundingPaymentRecord> | Event<LiquidationRecord> | Event<FundingRateRecord> | Event<OrderRecord> | Event<OrderActionRecord> | Event<SettlePnlRecord> | Event<NewUserRecord> | Event<LPRecord> | Event<InsuranceFundRecord> | Event<SpotInterestRecord> | Event<InsuranceFundStakeRecord> | Event<CurveRecord> | Event<SwapRecord> | Event<SpotMarketVaultDepositRecord>;
47
+ export type DriftEvent = Event<DepositRecord> | Event<FundingPaymentRecord> | Event<LiquidationRecord> | Event<FundingRateRecord> | Event<OrderRecord> | Event<OrderActionRecord> | Event<SettlePnlRecord> | Event<NewUserRecord> | Event<LPRecord> | Event<InsuranceFundRecord> | Event<SpotInterestRecord> | Event<InsuranceFundStakeRecord> | Event<CurveRecord> | Event<SwapRecord> | Event<SpotMarketVaultDepositRecord> | Event<SwiftOrderRecord>;
48
48
  export interface EventSubscriberEvents {
49
49
  newEvent: (event: WrappedEvent<EventType>) => void;
50
50
  }
@@ -686,15 +686,6 @@
686
686
  {
687
687
  "name": "swiftOrderParamsMessageBytes",
688
688
  "type": "bytes"
689
- },
690
- {
691
- "name": "swiftMessageSignature",
692
- "type": {
693
- "array": [
694
- "u8",
695
- 64
696
- ]
697
- }
698
689
  }
699
690
  ]
700
691
  },
@@ -643,6 +643,7 @@ export type SettlePnlRecord = {
643
643
  explanation: SettlePnlExplanation;
644
644
  };
645
645
  export type SwiftOrderRecord = {
646
+ ts: BN;
646
647
  user: PublicKey;
647
648
  hash: string;
648
649
  matchingOrderParams: OrderParams;
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ export declare function digest(data: Buffer): Buffer;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.digest = void 0;
4
+ const crypto_1 = require("crypto");
5
+ function digest(data) {
6
+ const hash = (0, crypto_1.createHash)('sha256');
7
+ hash.update(data);
8
+ return hash.digest();
9
+ }
10
+ exports.digest = digest;
@@ -69,6 +69,7 @@ const pyth_solana_receiver_json_1 = __importDefault(require("./idl/pyth_solana_r
69
69
  const on_demand_1 = require("@switchboard-xyz/on-demand");
70
70
  const grpcDriftClientAccountSubscriber_1 = require("./accounts/grpcDriftClientAccountSubscriber");
71
71
  const tweetnacl_1 = __importDefault(require("tweetnacl"));
72
+ const digest_1 = require("./util/digest");
72
73
  /**
73
74
  * # DriftClient
74
75
  * This class is the main way to interact with Drift Protocol. It allows you to subscribe to the various accounts where the Market's state is stored, as well as: opening positions, liquidating, settling funding, depositing & withdrawing, and more.
@@ -3006,11 +3007,11 @@ class DriftClient {
3006
3007
  };
3007
3008
  }
3008
3009
  signSwiftServerMessage(message) {
3009
- const swiftServerMessage = Uint8Array.from(this.encodeSwiftServerMessage(message));
3010
+ const swiftServerMessage = Uint8Array.from((0, digest_1.digest)(this.encodeSwiftServerMessage(message)));
3010
3011
  return this.signMessage(swiftServerMessage);
3011
3012
  }
3012
3013
  signSwiftOrderParamsMessage(orderParamsMessage) {
3013
- const takerOrderParamsMessage = Uint8Array.from(this.encodeSwiftOrderParamsMessage(orderParamsMessage));
3014
+ const takerOrderParamsMessage = Uint8Array.from((0, digest_1.digest)(this.encodeSwiftOrderParamsMessage(orderParamsMessage)));
3014
3015
  return this.signMessage(takerOrderParamsMessage);
3015
3016
  }
3016
3017
  encodeSwiftOrderParamsMessage(orderParamsMessage) {
@@ -3036,14 +3037,14 @@ class DriftClient {
3036
3037
  const swiftServerSignatureIx = web3_js_1.Ed25519Program.createInstructionWithPublicKey({
3037
3038
  publicKey: new web3_js_1.PublicKey(this.swiftID).toBytes(),
3038
3039
  signature: Uint8Array.from(swiftSignature),
3039
- message: Uint8Array.from(encodedSwiftServerMessage),
3040
+ message: Uint8Array.from((0, digest_1.digest)(encodedSwiftServerMessage)),
3040
3041
  });
3041
3042
  const swiftOrderParamsSignatureIx = web3_js_1.Ed25519Program.createInstructionWithPublicKey({
3042
3043
  publicKey: takerInfo.takerUserAccount.authority.toBytes(),
3043
3044
  signature: Uint8Array.from(swiftOrderParamsSignature),
3044
- message: Uint8Array.from(encodedSwiftOrderParamsMessage),
3045
+ message: Uint8Array.from((0, digest_1.digest)(encodedSwiftOrderParamsMessage)),
3045
3046
  });
3046
- const placeTakerSwiftPerpOrderIx = await this.program.instruction.placeSwiftTakerOrder(encodedSwiftServerMessage, encodedSwiftOrderParamsMessage, swiftSignature, {
3047
+ const placeTakerSwiftPerpOrderIx = await this.program.instruction.placeSwiftTakerOrder(encodedSwiftServerMessage, encodedSwiftOrderParamsMessage, {
3047
3048
  accounts: {
3048
3049
  state: await this.getStatePublicKey(),
3049
3050
  user: takerInfo.taker,
@@ -44,7 +44,7 @@ export type EventMap = {
44
44
  SwiftOrderRecord: Event<SwiftOrderRecord>;
45
45
  };
46
46
  export type EventType = keyof EventMap;
47
- export type DriftEvent = Event<DepositRecord> | Event<FundingPaymentRecord> | Event<LiquidationRecord> | Event<FundingRateRecord> | Event<OrderRecord> | Event<OrderActionRecord> | Event<SettlePnlRecord> | Event<NewUserRecord> | Event<LPRecord> | Event<InsuranceFundRecord> | Event<SpotInterestRecord> | Event<InsuranceFundStakeRecord> | Event<CurveRecord> | Event<SwapRecord> | Event<SpotMarketVaultDepositRecord>;
47
+ export type DriftEvent = Event<DepositRecord> | Event<FundingPaymentRecord> | Event<LiquidationRecord> | Event<FundingRateRecord> | Event<OrderRecord> | Event<OrderActionRecord> | Event<SettlePnlRecord> | Event<NewUserRecord> | Event<LPRecord> | Event<InsuranceFundRecord> | Event<SpotInterestRecord> | Event<InsuranceFundStakeRecord> | Event<CurveRecord> | Event<SwapRecord> | Event<SpotMarketVaultDepositRecord> | Event<SwiftOrderRecord>;
48
48
  export interface EventSubscriberEvents {
49
49
  newEvent: (event: WrappedEvent<EventType>) => void;
50
50
  }
@@ -686,15 +686,6 @@
686
686
  {
687
687
  "name": "swiftOrderParamsMessageBytes",
688
688
  "type": "bytes"
689
- },
690
- {
691
- "name": "swiftMessageSignature",
692
- "type": {
693
- "array": [
694
- "u8",
695
- 64
696
- ]
697
- }
698
689
  }
699
690
  ]
700
691
  },
@@ -643,6 +643,7 @@ export type SettlePnlRecord = {
643
643
  explanation: SettlePnlExplanation;
644
644
  };
645
645
  export type SwiftOrderRecord = {
646
+ ts: BN;
646
647
  user: PublicKey;
647
648
  hash: string;
648
649
  matchingOrderParams: OrderParams;
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ export declare function digest(data: Buffer): Buffer;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.digest = void 0;
4
+ const crypto_1 = require("crypto");
5
+ function digest(data) {
6
+ const hash = (0, crypto_1.createHash)('sha256');
7
+ hash.update(data);
8
+ return hash.digest();
9
+ }
10
+ exports.digest = digest;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.98.0-beta.7",
3
+ "version": "2.98.0-beta.9",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -169,6 +169,7 @@ import pythSolanaReceiverIdl from './idl/pyth_solana_receiver.json';
169
169
  import { asV0Tx, PullFeed } from '@switchboard-xyz/on-demand';
170
170
  import { gprcDriftClientAccountSubscriber } from './accounts/grpcDriftClientAccountSubscriber';
171
171
  import nacl from 'tweetnacl';
172
+ import { digest } from './util/digest';
172
173
 
173
174
  type RemainingAccountParams = {
174
175
  userAccounts: UserAccount[];
@@ -5545,7 +5546,7 @@ export class DriftClient {
5545
5546
 
5546
5547
  public signSwiftServerMessage(message: SwiftServerMessage): Buffer {
5547
5548
  const swiftServerMessage = Uint8Array.from(
5548
- this.encodeSwiftServerMessage(message)
5549
+ digest(this.encodeSwiftServerMessage(message))
5549
5550
  );
5550
5551
  return this.signMessage(swiftServerMessage);
5551
5552
  }
@@ -5554,7 +5555,7 @@ export class DriftClient {
5554
5555
  orderParamsMessage: SwiftOrderParamsMessage
5555
5556
  ): Buffer {
5556
5557
  const takerOrderParamsMessage = Uint8Array.from(
5557
- this.encodeSwiftOrderParamsMessage(orderParamsMessage)
5558
+ digest(this.encodeSwiftOrderParamsMessage(orderParamsMessage))
5558
5559
  );
5559
5560
  return this.signMessage(takerOrderParamsMessage);
5560
5561
  }
@@ -5635,21 +5636,20 @@ export class DriftClient {
5635
5636
  Ed25519Program.createInstructionWithPublicKey({
5636
5637
  publicKey: new PublicKey(this.swiftID).toBytes(),
5637
5638
  signature: Uint8Array.from(swiftSignature),
5638
- message: Uint8Array.from(encodedSwiftServerMessage),
5639
+ message: Uint8Array.from(digest(encodedSwiftServerMessage)),
5639
5640
  });
5640
5641
 
5641
5642
  const swiftOrderParamsSignatureIx =
5642
5643
  Ed25519Program.createInstructionWithPublicKey({
5643
5644
  publicKey: takerInfo.takerUserAccount.authority.toBytes(),
5644
5645
  signature: Uint8Array.from(swiftOrderParamsSignature),
5645
- message: Uint8Array.from(encodedSwiftOrderParamsMessage),
5646
+ message: Uint8Array.from(digest(encodedSwiftOrderParamsMessage)),
5646
5647
  });
5647
5648
 
5648
5649
  const placeTakerSwiftPerpOrderIx =
5649
5650
  await this.program.instruction.placeSwiftTakerOrder(
5650
5651
  encodedSwiftServerMessage,
5651
5652
  encodedSwiftOrderParamsMessage,
5652
- swiftSignature,
5653
5653
  {
5654
5654
  accounts: {
5655
5655
  state: await this.getStatePublicKey(),
@@ -114,7 +114,8 @@ export type DriftEvent =
114
114
  | Event<InsuranceFundStakeRecord>
115
115
  | Event<CurveRecord>
116
116
  | Event<SwapRecord>
117
- | Event<SpotMarketVaultDepositRecord>;
117
+ | Event<SpotMarketVaultDepositRecord>
118
+ | Event<SwiftOrderRecord>;
118
119
 
119
120
  export interface EventSubscriberEvents {
120
121
  newEvent: (event: WrappedEvent<EventType>) => void;
@@ -686,15 +686,6 @@
686
686
  {
687
687
  "name": "swiftOrderParamsMessageBytes",
688
688
  "type": "bytes"
689
- },
690
- {
691
- "name": "swiftMessageSignature",
692
- "type": {
693
- "array": [
694
- "u8",
695
- 64
696
- ]
697
- }
698
689
  }
699
690
  ]
700
691
  },
package/src/types.ts CHANGED
@@ -542,6 +542,7 @@ export type SettlePnlRecord = {
542
542
  };
543
543
 
544
544
  export type SwiftOrderRecord = {
545
+ ts: BN;
545
546
  user: PublicKey;
546
547
  hash: string;
547
548
  matchingOrderParams: OrderParams;
@@ -0,0 +1,7 @@
1
+ import { createHash } from 'crypto';
2
+
3
+ export function digest(data: Buffer): Buffer {
4
+ const hash = createHash('sha256');
5
+ hash.update(data);
6
+ return hash.digest();
7
+ }