@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 +1 -1
- package/lib/browser/constants/spotMarkets.js +27 -1
- package/lib/browser/oracles/switchboardOnDemandClient.js +2 -1
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +27 -1
- package/lib/node/oracles/switchboardOnDemandClient.d.ts.map +1 -1
- package/lib/node/oracles/switchboardOnDemandClient.js +2 -1
- package/package.json +1 -1
- package/src/constants/spotMarkets.ts +29 -1
- package/src/oracles/switchboardOnDemandClient.ts +9 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.121.0-beta.
|
|
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.
|
|
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:
|
|
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,
|
|
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.
|
|
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;
|
|
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:
|
|
27
|
+
slot: landedAt,
|
|
27
28
|
confidence: pullFeedAccountData.result.range.div(SB_PRECISION),
|
|
28
29
|
hasSufficientNumberOfDataPoints: true,
|
|
29
30
|
};
|
package/package.json
CHANGED
|
@@ -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.
|
|
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:
|
|
59
|
+
slot: landedAt,
|
|
52
60
|
confidence: pullFeedAccountData.result.range.div(SB_PRECISION),
|
|
53
61
|
hasSufficientNumberOfDataPoints: true,
|
|
54
62
|
};
|