@drift-labs/sdk 2.121.0-beta.22 → 2.121.0-beta.24

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.121.0-beta.22
1
+ 2.121.0-beta.24
@@ -84,7 +84,7 @@ exports.DevnetSpotMarkets = [
84
84
  marketIndex: 6,
85
85
  poolId: 1,
86
86
  oracle: new web3_js_1.PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
87
- oracleSource: __1.OracleSource.PYTH_PULL,
87
+ oracleSource: __1.OracleSource.PYTH_STABLE_COIN_PULL,
88
88
  mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
89
89
  precision: new __1.BN(10).pow(numericConstants_1.SIX),
90
90
  precisionExp: numericConstants_1.SIX,
@@ -677,6 +677,32 @@ exports.MainnetSpotMarkets = [
677
677
  pythFeedId: '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
678
678
  launchTs: 1747155600000,
679
679
  },
680
+ {
681
+ symbol: 'USDC-4',
682
+ marketIndex: 47,
683
+ poolId: 4,
684
+ oracle: new web3_js_1.PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
685
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
686
+ mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
687
+ precision: numericConstants_1.QUOTE_PRECISION,
688
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
689
+ pythFeedId: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
690
+ pythLazerId: 7,
691
+ launchTs: 1747494165000,
692
+ },
693
+ {
694
+ symbol: 'USDT-4',
695
+ marketIndex: 48,
696
+ poolId: 4,
697
+ oracle: new web3_js_1.PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
698
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
699
+ mint: new web3_js_1.PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
700
+ precision: numericConstants_1.QUOTE_PRECISION,
701
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
702
+ serumMarket: new web3_js_1.PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
703
+ pythFeedId: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
704
+ pythLazerId: 8,
705
+ },
680
706
  ];
681
707
  exports.SpotMarkets = {
682
708
  devnet: exports.DevnetSpotMarkets,
@@ -21,9 +21,10 @@ class SwitchboardOnDemandClient {
21
21
  }
22
22
  getOraclePriceDataFromBuffer(buffer) {
23
23
  const pullFeedAccountData = this.coder.decodeUnchecked('PullFeedAccountData', buffer);
24
+ const landedAt = pullFeedAccountData.submissions.reduce((max, s) => anchor_1.BN.max(max, s.landed_at), new anchor_1.BN(0));
24
25
  return {
25
26
  price: pullFeedAccountData.result.value.div(SB_PRECISION),
26
- slot: pullFeedAccountData.result.slot,
27
+ slot: landedAt,
27
28
  confidence: pullFeedAccountData.result.range.div(SB_PRECISION),
28
29
  hasSufficientNumberOfDataPoints: true,
29
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAYjD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+F/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAmpBhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
1
+ {"version":3,"file":"spotMarkets.d.ts","sourceRoot":"","sources":["../../../src/constants/spotMarkets.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,KAAK,CAAC;AAYjD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,gBAAgB,EA+F/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EA+qBhD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE;KAAG,GAAG,IAAI,QAAQ,GAAG,gBAAgB,EAAE;CAGhE,CAAC"}
@@ -84,7 +84,7 @@ exports.DevnetSpotMarkets = [
84
84
  marketIndex: 6,
85
85
  poolId: 1,
86
86
  oracle: new web3_js_1.PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
87
- oracleSource: __1.OracleSource.PYTH_PULL,
87
+ oracleSource: __1.OracleSource.PYTH_STABLE_COIN_PULL,
88
88
  mint: new web3_js_1.PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
89
89
  precision: new __1.BN(10).pow(numericConstants_1.SIX),
90
90
  precisionExp: numericConstants_1.SIX,
@@ -677,6 +677,32 @@ exports.MainnetSpotMarkets = [
677
677
  pythFeedId: '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
678
678
  launchTs: 1747155600000,
679
679
  },
680
+ {
681
+ symbol: 'USDC-4',
682
+ marketIndex: 47,
683
+ poolId: 4,
684
+ oracle: new web3_js_1.PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
685
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
686
+ mint: new web3_js_1.PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
687
+ precision: numericConstants_1.QUOTE_PRECISION,
688
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
689
+ pythFeedId: '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
690
+ pythLazerId: 7,
691
+ launchTs: 1747494165000,
692
+ },
693
+ {
694
+ symbol: 'USDT-4',
695
+ marketIndex: 48,
696
+ poolId: 4,
697
+ oracle: new web3_js_1.PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
698
+ oracleSource: __1.OracleSource.PYTH_LAZER_STABLE_COIN,
699
+ mint: new web3_js_1.PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
700
+ precision: numericConstants_1.QUOTE_PRECISION,
701
+ precisionExp: numericConstants_1.QUOTE_PRECISION_EXP,
702
+ serumMarket: new web3_js_1.PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
703
+ pythFeedId: '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
704
+ pythLazerId: 8,
705
+ },
680
706
  ];
681
707
  exports.SpotMarkets = {
682
708
  devnet: exports.DevnetSpotMarkets,
@@ -1 +1 @@
1
- {"version":3,"file":"switchboardOnDemandClient.d.ts","sourceRoot":"","sources":["../../../src/oracles/switchboardOnDemandClient.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAIxD,OAAO,EACN,kBAAkB,IAAI,oBAAoB,EAE1C,MAAM,sBAAsB,CAAC;AAkB9B,qBAAa,yBAA0B,YAAW,YAAY;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,oBAAoB,CAAC;gBAET,UAAU,EAAE,UAAU;IAK5B,kBAAkB,CAC9B,cAAc,EAAE,SAAS,GACvB,OAAO,CAAC,eAAe,CAAC;IAKpB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;CAapE"}
1
+ {"version":3,"file":"switchboardOnDemandClient.d.ts","sourceRoot":"","sources":["../../../src/oracles/switchboardOnDemandClient.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAIxD,OAAO,EACN,kBAAkB,IAAI,oBAAoB,EAE1C,MAAM,sBAAsB,CAAC;AAsB9B,qBAAa,yBAA0B,YAAW,YAAY;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,oBAAoB,CAAC;gBAET,UAAU,EAAE,UAAU;IAK5B,kBAAkB,CAC9B,cAAc,EAAE,SAAS,GACvB,OAAO,CAAC,eAAe,CAAC;IAKpB,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;CAiBpE"}
@@ -21,9 +21,10 @@ class SwitchboardOnDemandClient {
21
21
  }
22
22
  getOraclePriceDataFromBuffer(buffer) {
23
23
  const pullFeedAccountData = this.coder.decodeUnchecked('PullFeedAccountData', buffer);
24
+ const landedAt = pullFeedAccountData.submissions.reduce((max, s) => anchor_1.BN.max(max, s.landed_at), new anchor_1.BN(0));
24
25
  return {
25
26
  price: pullFeedAccountData.result.value.div(SB_PRECISION),
26
- slot: pullFeedAccountData.result.slot,
27
+ slot: landedAt,
27
28
  confidence: pullFeedAccountData.result.range.div(SB_PRECISION),
28
29
  hasSufficientNumberOfDataPoints: true,
29
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk",
3
- "version": "2.121.0-beta.22",
3
+ "version": "2.121.0-beta.24",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "browser": "./lib/browser/index.js",
@@ -119,7 +119,7 @@ export const DevnetSpotMarkets: SpotMarketConfig[] = [
119
119
  marketIndex: 6,
120
120
  poolId: 1,
121
121
  oracle: new PublicKey('En8hkHLkRe9d9DraYmBTrus518BvmVH448YcvmrFM6Ce'),
122
- oracleSource: OracleSource.PYTH_PULL,
122
+ oracleSource: OracleSource.PYTH_STABLE_COIN_PULL,
123
123
  mint: new PublicKey('8zGuJQqwhZafTah7Uc7Z4tXRnguqkn5KLFAP8oV6PHe2'),
124
124
  precision: new BN(10).pow(SIX),
125
125
  precisionExp: SIX,
@@ -788,6 +788,34 @@ export const MainnetSpotMarkets: SpotMarketConfig[] = [
788
788
  '0x31558e9ccb18c151af6c52bf78afd03098a7aca1b9cf171a65b693b464c2f066',
789
789
  launchTs: 1747155600000,
790
790
  },
791
+ {
792
+ symbol: 'USDC-4',
793
+ marketIndex: 47,
794
+ poolId: 4,
795
+ oracle: new PublicKey('9VCioxmni2gDLv11qufWzT3RDERhQE4iY5Gf7NTfYyAV'),
796
+ oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
797
+ mint: new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'),
798
+ precision: QUOTE_PRECISION,
799
+ precisionExp: QUOTE_PRECISION_EXP,
800
+ pythFeedId:
801
+ '0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
802
+ pythLazerId: 7,
803
+ launchTs: 1747494165000,
804
+ },
805
+ {
806
+ symbol: 'USDT-4',
807
+ marketIndex: 48,
808
+ poolId: 4,
809
+ oracle: new PublicKey('JDKJSkxjasBGL3ce1pkrN6tqDzuVUZPWzzkGuyX8m9yN'),
810
+ oracleSource: OracleSource.PYTH_LAZER_STABLE_COIN,
811
+ mint: new PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'),
812
+ precision: QUOTE_PRECISION,
813
+ precisionExp: QUOTE_PRECISION_EXP,
814
+ serumMarket: new PublicKey('B2na8Awyd7cpC59iEU43FagJAPLigr3AP3s38KM982bu'),
815
+ pythFeedId:
816
+ '0x2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
817
+ pythLazerId: 8,
818
+ },
791
819
  ];
792
820
 
793
821
  export const SpotMarkets: { [key in DriftEnv]: SpotMarketConfig[] } = {
@@ -12,6 +12,10 @@ const SB_PRECISION_EXP = new BN(18);
12
12
  const SB_PRECISION = new BN(10).pow(SB_PRECISION_EXP.sub(PRICE_PRECISION_EXP));
13
13
 
14
14
  type PullFeedAccountData = {
15
+ submissions: {
16
+ landed_at: BN;
17
+ value: BN;
18
+ }[];
15
19
  result: {
16
20
  value: BN;
17
21
  std_dev: BN;
@@ -46,9 +50,13 @@ export class SwitchboardOnDemandClient implements OracleClient {
46
50
  buffer
47
51
  ) as PullFeedAccountData;
48
52
 
53
+ const landedAt = pullFeedAccountData.submissions.reduce(
54
+ (max, s) => BN.max(max, s.landed_at),
55
+ new BN(0)
56
+ );
49
57
  return {
50
58
  price: pullFeedAccountData.result.value.div(SB_PRECISION),
51
- slot: pullFeedAccountData.result.slot,
59
+ slot: landedAt,
52
60
  confidence: pullFeedAccountData.result.range.div(SB_PRECISION),
53
61
  hasSufficientNumberOfDataPoints: true,
54
62
  };