@drift-labs/sdk 0.1.18-master.3 → 0.1.18-master.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"defaultUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7D,qBAAa,4BAA6B,YAAW,qBAAqB;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,SAAS,CAAC;IAErB,yBAAyB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,8BAA8B,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAOnD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAsC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAWlC,kBAAkB,IAAI,IAAI;IAQnB,cAAc,IAAI,WAAW;IAK7B,uBAAuB,IAAI,oBAAoB;CAItD"}
1
+ {"version":3,"file":"defaultUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../src/accounts/defaultUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7D,qBAAa,4BAA6B,YAAW,qBAAqB;IACzE,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,SAAS,EAAE,SAAS,CAAC;IAErB,yBAAyB,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1D,8BAA8B,EAAE,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;gBAErD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IAOnD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAsC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAalC,kBAAkB,IAAI,IAAI;IAQnB,cAAc,IAAI,WAAW;IAK7B,uBAAuB,IAAI,oBAAoB;CAItD"}
@@ -56,8 +56,10 @@ class DefaultUserAccountSubscriber {
56
56
  if (!this.isSubscribed) {
57
57
  return;
58
58
  }
59
- yield this.userDataAccountSubscriber.unsubscribe();
60
- yield this.userPositionsAccountSubscriber.unsubscribe();
59
+ yield Promise.all([
60
+ this.userDataAccountSubscriber.unsubscribe(),
61
+ this.userPositionsAccountSubscriber.unsubscribe(),
62
+ ]);
61
63
  this.isSubscribed = false;
62
64
  });
63
65
  }
package/lib/admin.d.ts CHANGED
@@ -12,6 +12,7 @@ export declare class Admin extends ClearingHouse {
12
12
  updateCurveHistory(): Promise<TransactionSignature>;
13
13
  moveAmmToPrice(marketIndex: BN, targetPrice: BN): Promise<TransactionSignature>;
14
14
  repegAmmCurve(newPeg: BN, marketIndex: BN): Promise<TransactionSignature>;
15
+ updateAmmOracleTwap(marketIndex: BN): Promise<TransactionSignature>;
15
16
  withdrawFromInsuranceVault(amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
16
17
  withdrawFees(marketIndex: BN, amount: BN, recipient: PublicKey): Promise<TransactionSignature>;
17
18
  withdrawFromInsuranceVaultToMarket(marketIndex: BN, amount: BN): Promise<TransactionSignature>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
package/lib/admin.js CHANGED
@@ -217,6 +217,23 @@ class Admin extends clearingHouse_1.ClearingHouse {
217
217
  });
218
218
  });
219
219
  }
220
+ updateAmmOracleTwap(marketIndex) {
221
+ return __awaiter(this, void 0, void 0, function* () {
222
+ const state = this.getStateAccount();
223
+ const markets = this.getMarketsAccount();
224
+ const marketData = markets.markets[marketIndex.toNumber()];
225
+ const ammData = marketData.amm;
226
+ return yield this.program.rpc.updateAmmOracleTwap(marketIndex, {
227
+ accounts: {
228
+ state: yield this.getStatePublicKey(),
229
+ admin: this.wallet.publicKey,
230
+ oracle: ammData.oracle,
231
+ markets: state.markets,
232
+ curveHistory: state.extendedCurveHistory,
233
+ },
234
+ });
235
+ });
236
+ }
220
237
  withdrawFromInsuranceVault(amount, recipient) {
221
238
  return __awaiter(this, void 0, void 0, function* () {
222
239
  const state = yield this.getStateAccount();
@@ -1 +1 @@
1
- {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../src/constants/markets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,aAAK,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,EAAE,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,EAiF3B,CAAC"}
1
+ {"version":3,"file":"markets.d.ts","sourceRoot":"","sources":["../../src/constants/markets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,aAAK,MAAM,GAAG;IACb,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,EAAE,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,EAyF3B,CAAC"}
@@ -86,4 +86,12 @@ exports.Markets = [
86
86
  mainnetPythOracle: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
87
87
  launchTs: 1643084413000,
88
88
  },
89
+ {
90
+ symbol: 'mSOL-PERP',
91
+ baseAssetSymbol: 'mSOL',
92
+ marketIndex: new bn_js_1.default(10),
93
+ devnetPythOracle: '9a6RNx3tCu1TSs6TBSfV2XRXEPEZXQ6WB7jRojZRvyeZ',
94
+ mainnetPythOracle: 'E4v1BBgoso9s64TQvmyownAVJbhbEPGyzA3qn4n46qj9',
95
+ launchTs: 1643346125000,
96
+ },
89
97
  ];
@@ -739,6 +739,78 @@
739
739
  }
740
740
  ]
741
741
  },
742
+ {
743
+ "name": "updateAmmOracleTwap",
744
+ "accounts": [
745
+ {
746
+ "name": "state",
747
+ "isMut": false,
748
+ "isSigner": false
749
+ },
750
+ {
751
+ "name": "markets",
752
+ "isMut": true,
753
+ "isSigner": false
754
+ },
755
+ {
756
+ "name": "oracle",
757
+ "isMut": false,
758
+ "isSigner": false
759
+ },
760
+ {
761
+ "name": "admin",
762
+ "isMut": false,
763
+ "isSigner": true
764
+ },
765
+ {
766
+ "name": "curveHistory",
767
+ "isMut": true,
768
+ "isSigner": false
769
+ }
770
+ ],
771
+ "args": [
772
+ {
773
+ "name": "marketIndex",
774
+ "type": "u64"
775
+ }
776
+ ]
777
+ },
778
+ {
779
+ "name": "resetAmmOracleTwap",
780
+ "accounts": [
781
+ {
782
+ "name": "state",
783
+ "isMut": false,
784
+ "isSigner": false
785
+ },
786
+ {
787
+ "name": "markets",
788
+ "isMut": true,
789
+ "isSigner": false
790
+ },
791
+ {
792
+ "name": "oracle",
793
+ "isMut": false,
794
+ "isSigner": false
795
+ },
796
+ {
797
+ "name": "admin",
798
+ "isMut": false,
799
+ "isSigner": true
800
+ },
801
+ {
802
+ "name": "curveHistory",
803
+ "isMut": true,
804
+ "isSigner": false
805
+ }
806
+ ],
807
+ "args": [
808
+ {
809
+ "name": "marketIndex",
810
+ "type": "u64"
811
+ }
812
+ ]
813
+ },
742
814
  {
743
815
  "name": "initializeUser",
744
816
  "accounts": [
@@ -2379,12 +2451,12 @@
2379
2451
  "type": "i64"
2380
2452
  },
2381
2453
  {
2382
- "name": "padding0",
2383
- "type": "u64"
2454
+ "name": "lastOraclePrice",
2455
+ "type": "i128"
2384
2456
  },
2385
2457
  {
2386
2458
  "name": "padding1",
2387
- "type": "u128"
2459
+ "type": "u64"
2388
2460
  },
2389
2461
  {
2390
2462
  "name": "padding2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "0.1.18-master.3",
3
+ "version": "0.1.18-master.7",
4
4
  "main": "lib/index.js",
5
5
  "types": "lib/index.d.ts",
6
6
  "author": "crispheaney",
@@ -78,8 +78,10 @@ export class DefaultUserAccountSubscriber implements UserAccountSubscriber {
78
78
  return;
79
79
  }
80
80
 
81
- await this.userDataAccountSubscriber.unsubscribe();
82
- await this.userPositionsAccountSubscriber.unsubscribe();
81
+ await Promise.all([
82
+ this.userDataAccountSubscriber.unsubscribe(),
83
+ this.userPositionsAccountSubscriber.unsubscribe(),
84
+ ]);
83
85
 
84
86
  this.isSubscribed = false;
85
87
  }
package/src/admin.ts CHANGED
@@ -319,6 +319,25 @@ export class Admin extends ClearingHouse {
319
319
  });
320
320
  }
321
321
 
322
+ public async updateAmmOracleTwap(
323
+ marketIndex: BN
324
+ ): Promise<TransactionSignature> {
325
+ const state = this.getStateAccount();
326
+ const markets = this.getMarketsAccount();
327
+ const marketData = markets.markets[marketIndex.toNumber()];
328
+ const ammData = marketData.amm;
329
+
330
+ return await this.program.rpc.updateAmmOracleTwap(marketIndex, {
331
+ accounts: {
332
+ state: await this.getStatePublicKey(),
333
+ admin: this.wallet.publicKey,
334
+ oracle: ammData.oracle,
335
+ markets: state.markets,
336
+ curveHistory: state.extendedCurveHistory,
337
+ },
338
+ });
339
+ }
340
+
322
341
  public async withdrawFromInsuranceVault(
323
342
  amount: BN,
324
343
  recipient: PublicKey
@@ -90,4 +90,12 @@ export const Markets: Market[] = [
90
90
  mainnetPythOracle: '3pyn4svBbxJ9Wnn3RVeafyLWfzie6yC5eTig2S62v9SC',
91
91
  launchTs: 1643084413000,
92
92
  },
93
+ {
94
+ symbol: 'mSOL-PERP',
95
+ baseAssetSymbol: 'mSOL',
96
+ marketIndex: new BN(10),
97
+ devnetPythOracle: '9a6RNx3tCu1TSs6TBSfV2XRXEPEZXQ6WB7jRojZRvyeZ',
98
+ mainnetPythOracle: 'E4v1BBgoso9s64TQvmyownAVJbhbEPGyzA3qn4n46qj9',
99
+ launchTs: 1643346125000,
100
+ },
93
101
  ];
@@ -739,6 +739,78 @@
739
739
  }
740
740
  ]
741
741
  },
742
+ {
743
+ "name": "updateAmmOracleTwap",
744
+ "accounts": [
745
+ {
746
+ "name": "state",
747
+ "isMut": false,
748
+ "isSigner": false
749
+ },
750
+ {
751
+ "name": "markets",
752
+ "isMut": true,
753
+ "isSigner": false
754
+ },
755
+ {
756
+ "name": "oracle",
757
+ "isMut": false,
758
+ "isSigner": false
759
+ },
760
+ {
761
+ "name": "admin",
762
+ "isMut": false,
763
+ "isSigner": true
764
+ },
765
+ {
766
+ "name": "curveHistory",
767
+ "isMut": true,
768
+ "isSigner": false
769
+ }
770
+ ],
771
+ "args": [
772
+ {
773
+ "name": "marketIndex",
774
+ "type": "u64"
775
+ }
776
+ ]
777
+ },
778
+ {
779
+ "name": "resetAmmOracleTwap",
780
+ "accounts": [
781
+ {
782
+ "name": "state",
783
+ "isMut": false,
784
+ "isSigner": false
785
+ },
786
+ {
787
+ "name": "markets",
788
+ "isMut": true,
789
+ "isSigner": false
790
+ },
791
+ {
792
+ "name": "oracle",
793
+ "isMut": false,
794
+ "isSigner": false
795
+ },
796
+ {
797
+ "name": "admin",
798
+ "isMut": false,
799
+ "isSigner": true
800
+ },
801
+ {
802
+ "name": "curveHistory",
803
+ "isMut": true,
804
+ "isSigner": false
805
+ }
806
+ ],
807
+ "args": [
808
+ {
809
+ "name": "marketIndex",
810
+ "type": "u64"
811
+ }
812
+ ]
813
+ },
742
814
  {
743
815
  "name": "initializeUser",
744
816
  "accounts": [
@@ -2379,12 +2451,12 @@
2379
2451
  "type": "i64"
2380
2452
  },
2381
2453
  {
2382
- "name": "padding0",
2383
- "type": "u64"
2454
+ "name": "lastOraclePrice",
2455
+ "type": "i128"
2384
2456
  },
2385
2457
  {
2386
2458
  "name": "padding1",
2387
- "type": "u128"
2459
+ "type": "u64"
2388
2460
  },
2389
2461
  {
2390
2462
  "name": "padding2",