@pythnetwork/price-pusher 9.3.3 → 9.3.5
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/README.md +5 -5
- package/lib/aptos/aptos.d.ts.map +1 -1
- package/lib/aptos/aptos.js +1 -0
- package/lib/evm/command.d.ts.map +1 -1
- package/lib/evm/command.js +0 -1
- package/lib/evm/evm.js +5 -5
- package/lib/fuel/fuel.d.ts.map +1 -1
- package/lib/fuel/fuel.js +1 -0
- package/lib/injective/injective.d.ts.map +1 -1
- package/lib/injective/injective.js +1 -0
- package/lib/near/near.d.ts.map +1 -1
- package/lib/near/near.js +1 -0
- package/lib/price-config.d.ts.map +1 -1
- package/lib/price-config.js +4 -3
- package/lib/pyth-price-listener.d.ts +1 -0
- package/lib/pyth-price-listener.d.ts.map +1 -1
- package/lib/pyth-price-listener.js +15 -8
- package/lib/solana/command.d.ts +1 -1
- package/lib/solana/command.d.ts.map +1 -1
- package/lib/solana/command.js +16 -6
- package/lib/solana/solana.d.ts +3 -3
- package/lib/solana/solana.d.ts.map +1 -1
- package/lib/solana/solana.js +9 -29
- package/lib/sui/sui.d.ts.map +1 -1
- package/lib/sui/sui.js +1 -0
- package/lib/ton/ton.d.ts.map +1 -1
- package/lib/ton/ton.js +1 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ It then pushes a price update to an on-chain Pyth contract if any of the followi
|
|
|
27
27
|
- Price deviation: The latest Pyth price feed has changed more than `price_deviation` percent
|
|
28
28
|
from the on-chain price feed price.
|
|
29
29
|
- Confidence ratio: The latest Pyth price feed has confidence to price ratio of more than
|
|
30
|
-
`confidence_ratio`.
|
|
30
|
+
`confidence_ratio`. *We discourage using low values for this because it triggers push for every update in high confidence periods.*
|
|
31
31
|
|
|
32
32
|
The parameters above are configured per price feed in a price configuration YAML file. The structure looks like this:
|
|
33
33
|
|
|
@@ -36,7 +36,7 @@ The parameters above are configured per price feed in a price configuration YAML
|
|
|
36
36
|
id: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef # id of a price feed, a 32-byte hex string.
|
|
37
37
|
time_difference: 60 # Time difference threshold (in seconds) to push a newer price feed.
|
|
38
38
|
price_deviation: 0.5 # The price deviation (%) threshold to push a newer price feed.
|
|
39
|
-
confidence_ratio:
|
|
39
|
+
confidence_ratio: 50 # The confidence/price (%) threshold to push a newer price feed.
|
|
40
40
|
|
|
41
41
|
# Optional block to configure whether this feed can be early updated. If at least one feed meets the
|
|
42
42
|
# triggering conditions above, all other feeds who meet the early update conditions will be included in
|
|
@@ -46,7 +46,7 @@ The parameters above are configured per price feed in a price configuration YAML
|
|
|
46
46
|
early_update:
|
|
47
47
|
time_difference: 30
|
|
48
48
|
price_deviation: 0.1
|
|
49
|
-
confidence_ratio:
|
|
49
|
+
confidence_ratio: 5
|
|
50
50
|
- ...
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -65,7 +65,7 @@ the feed.
|
|
|
65
65
|
early_update:
|
|
66
66
|
time_difference: 30
|
|
67
67
|
price_deviation: 0.1
|
|
68
|
-
confidence_ratio:
|
|
68
|
+
confidence_ratio: 5
|
|
69
69
|
```
|
|
70
70
|
|
|
71
71
|
Two sample YAML configuration files are available in the root of this repo.
|
|
@@ -159,7 +159,7 @@ pnpm run start solana \
|
|
|
159
159
|
--endpoint https://api.mainnet-beta.solana.com \
|
|
160
160
|
--keypair-file ./id.json \
|
|
161
161
|
--shard-id 1 \
|
|
162
|
-
--jito-
|
|
162
|
+
--jito-endpoints mainnet.block-engine.jito.wtf,ny.mainnet.block-engine.jito.wtf \
|
|
163
163
|
--jito-keypair-file ./jito.json \
|
|
164
164
|
--jito-tip-lamports 100000 \
|
|
165
165
|
--jito-bundle-size 5 \
|
package/lib/aptos/aptos.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptos.d.ts","sourceRoot":"","sources":["../../src/aptos/aptos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,qBAAa,kBAAmB,SAAQ,kBAAkB;IAEtD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,MAAM;gBAHN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACxB,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA6C3E;AAGD,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IAOjD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,0BAA0B;IAVpC,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,oBAAoB,CAAU;gBAG5B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,0BAA0B,EAAE,MAAM;IAK5C;;;;;;OAMG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"aptos.d.ts","sourceRoot":"","sources":["../../src/aptos/aptos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,qBAAa,kBAAmB,SAAQ,kBAAkB;IAEtD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAEhB,OAAO,CAAC,MAAM;gBAHN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACxB,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA6C3E;AAGD,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D;;;;;;;;;GASG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IAOjD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,0BAA0B;IAVpC,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,oBAAoB,CAAU;gBAG5B,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,0BAA0B,EAAE,MAAM;IAK5C;;;;;;OAMG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAUhE,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;YA+DF,8BAA8B;YAwB9B,wBAAwB;CA+BvC"}
|
package/lib/aptos/aptos.js
CHANGED
|
@@ -85,6 +85,7 @@ class AptosPricePusher {
|
|
|
85
85
|
async getPriceFeedsUpdateData(priceIds) {
|
|
86
86
|
const response = await this.hermesClient.getLatestPriceUpdates(priceIds, {
|
|
87
87
|
encoding: "base64",
|
|
88
|
+
ignoreInvalidPriceIds: true,
|
|
88
89
|
});
|
|
89
90
|
return response.binary.data.map((data) => Array.from(Buffer.from(data, "base64")));
|
|
90
91
|
}
|
package/lib/evm/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/evm/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;;;;;;;;;;;;;;;kBA2BvB,OAAO;8BAMP,OAAO;oBAMP,OAAO;yCAUP,OAAO;6CAQP,OAAO;qBAKP,OAAO;qBAKP,OAAO;iCASP,OAAO;;oBAYiB,GAAG;;AA1EpC,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/evm/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;;;;;;;;;;;;;;;kBA2BvB,OAAO;8BAMP,OAAO;oBAMP,OAAO;yCAUP,OAAO;6CAQP,OAAO;qBAKP,OAAO;qBAKP,OAAO;iCASP,OAAO;;oBAYiB,GAAG;;AA1EpC,wBA6ME"}
|
package/lib/evm/command.js
CHANGED
|
@@ -121,7 +121,6 @@ exports.default = {
|
|
|
121
121
|
handler: async function (argv) {
|
|
122
122
|
// FIXME: type checks for this
|
|
123
123
|
const { endpoint, priceConfigFile, priceServiceEndpoint, mnemonicFile, pythContractAddress, pushingFrequency, pollingFrequency, customGasStation, txSpeed, overrideGasPriceMultiplier, overrideGasPriceMultiplierCap, gasLimit, gasPrice, updateFeeMultiplier, logLevel, controllerLogLevel, enableMetrics, metricsPort, } = argv;
|
|
124
|
-
console.log("***** priceServiceEndpoint *****", priceServiceEndpoint);
|
|
125
124
|
const logger = (0, pino_1.default)({
|
|
126
125
|
level: logLevel,
|
|
127
126
|
});
|
package/lib/evm/evm.js
CHANGED
|
@@ -148,6 +148,11 @@ class EvmPricePusher {
|
|
|
148
148
|
this.logger.debug(`Using gas price: ${gasPrice} and nonce: ${txNonce}`);
|
|
149
149
|
const pubTimesToPushParam = pubTimesToPush.map((pubTime) => BigInt(pubTime));
|
|
150
150
|
const priceIdsWith0x = priceIds.map((priceId) => (0, utils_1.addLeading0x)(priceId));
|
|
151
|
+
// Update lastAttempt
|
|
152
|
+
this.lastPushAttempt = {
|
|
153
|
+
nonce: txNonce,
|
|
154
|
+
gasPrice: gasPrice,
|
|
155
|
+
};
|
|
151
156
|
try {
|
|
152
157
|
const { request } = await this.pythContract.simulate.updatePriceFeedsIfNecessary([priceFeedUpdateDataWith0x, priceIdsWith0x, pubTimesToPushParam], {
|
|
153
158
|
value: updateFee,
|
|
@@ -234,11 +239,6 @@ class EvmPricePusher {
|
|
|
234
239
|
"Please review this error and file an issue if it is a bug.");
|
|
235
240
|
throw err;
|
|
236
241
|
}
|
|
237
|
-
// Update lastAttempt
|
|
238
|
-
this.lastPushAttempt = {
|
|
239
|
-
nonce: txNonce,
|
|
240
|
-
gasPrice: gasPrice,
|
|
241
|
-
};
|
|
242
242
|
}
|
|
243
243
|
async waitForTransactionReceipt(hash) {
|
|
244
244
|
try {
|
package/lib/fuel/fuel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fuel.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAA+B,MAAM,EAAM,MAAM,OAAO,CAAC;AAc1E,qBAAa,iBAAkB,SAAQ,kBAAkB;IAIrD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IAEtB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAAW;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,MAAM,EAC9B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAUG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA6B3E;AAED,qBAAa,eAAgB,YAAW,YAAY;IAIhD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAAW;gBAGjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IASlB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAElB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fuel.d.ts","sourceRoot":"","sources":["../../src/fuel/fuel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAA+B,MAAM,EAAM,MAAM,OAAO,CAAC;AAc1E,qBAAa,iBAAkB,SAAQ,kBAAkB;IAIrD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IAEtB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAAW;gBAGjB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,MAAM,EAC9B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAUG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA6B3E;AAED,qBAAa,eAAgB,YAAW,YAAY;IAIhD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAAW;gBAGjB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IASlB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAElB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAuCjB"}
|
package/lib/fuel/fuel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injective.d.ts","sourceRoot":"","sources":["../../src/injective/injective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAa7C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAmB9B,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAGF,qBAAa,sBAAuB,SAAQ,kBAAkB;IAE1D,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,MAAM;gBAHN,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EAC5B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CACvB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA4BlC;AAED,qBAAa,oBAAqB,YAAW,YAAY;IAOrD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CACX,CAAC,2BAA2B;gBAGvB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAaxC,OAAO,CAAC,SAAS;YAWH,mBAAmB;IA+C3B,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;YAuBF,oBAAoB;IA+ClC;;;;;OAKG;YACW,SAAS;IA0CvB;;OAEG;YACW,wBAAwB;
|
|
1
|
+
{"version":3,"file":"injective.d.ts","sourceRoot":"","sources":["../../src/injective/injective.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,kBAAkB,EACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAa7C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAmB9B,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAGF,qBAAa,sBAAuB,SAAQ,kBAAkB;IAE1D,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,MAAM;gBAHN,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EAC5B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CACvB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA4BlC;AAED,qBAAa,oBAAqB,YAAW,YAAY;IAOrD,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CACX,CAAC,2BAA2B;gBAGvB,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAaxC,OAAO,CAAC,SAAS;YAWH,mBAAmB;IA+C3B,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;YAuBF,oBAAoB;IA+ClC;;;;;OAKG;YACW,SAAS;IA0CvB;;OAEG;YACW,wBAAwB;IAuBtC;;OAEG;YACW,YAAY;CAwB3B"}
|
package/lib/near/near.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/near/near.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAa,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAGL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,qBAAa,iBAAkB,SAAQ,kBAAkB;IAErD,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,MAAM;gBAFN,OAAO,EAAE,WAAW,EAC5B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAwB3E;AAED,qBAAa,eAAgB,YAAW,YAAY;IAEhD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;gBAFN,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAGlB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;YA0DF,uBAAuB;
|
|
1
|
+
{"version":3,"file":"near.d.ts","sourceRoot":"","sources":["../../src/near/near.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAa,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7C,OAAO,EAGL,qBAAqB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,qBAAa,iBAAkB,SAAQ,kBAAkB;IAErD,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,MAAM;gBAFN,OAAO,EAAE,WAAW,EAC5B,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAKG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAwB3E;AAED,qBAAa,eAAgB,YAAW,YAAY;IAEhD,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;gBAFN,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAGlB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;YA0DF,uBAAuB;CAStC;AAED,qBAAa,WAAW;IAQpB,OAAO,CAAC,aAAa;IAPvB,OAAO,CAAC,OAAO,CAAU;gBAGvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,MAAM;IAWzB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAU7C,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAUhD,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,qBAAqB,CAAC;IAYjC,OAAO,CAAC,aAAa;CAkCtB"}
|
package/lib/near/near.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price-config.d.ts","sourceRoot":"","sources":["../src/price-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuBxC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,SAAS,CAAC;IACd,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAU3B,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,yBAAyB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzD,yBAAyB,EAAE,SAAS,GAAG,SAAS,CAAC;IACjD,0BAA0B,EAAE,SAAS,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAuB/D;AAED,oBAAY,eAAe;IAEzB,GAAG,IAAA;IAEH,KAAK,IAAA;IAEL,EAAE,IAAA;CACH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,SAAS,GAAG,SAAS,EACxC,iBAAiB,EAAE,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,eAAe,
|
|
1
|
+
{"version":3,"file":"price-config.d.ts","sourceRoot":"","sources":["../src/price-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAIvD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAmB,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuBxC,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,SAAS,CAAC;IACd,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,SAAS,CAAC;IAC1B,eAAe,EAAE,SAAS,CAAC;IAU3B,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,yBAAyB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzD,yBAAyB,EAAE,SAAS,GAAG,SAAS,CAAC;IACjD,0BAA0B,EAAE,SAAS,GAAG,SAAS,CAAC;CACnD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAuB/D;AAED,oBAAY,eAAe;IAEzB,GAAG,IAAA;IAEH,KAAK,IAAA;IAEL,EAAE,IAAA;CACH;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,SAAS,GAAG,SAAS,EACxC,iBAAiB,EAAE,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,eAAe,CAyEjB"}
|
package/lib/price-config.js
CHANGED
|
@@ -66,9 +66,10 @@ var UpdateCondition;
|
|
|
66
66
|
*/
|
|
67
67
|
function shouldUpdate(priceConfig, sourceLatestPrice, targetLatestPrice, logger) {
|
|
68
68
|
const priceId = priceConfig.id;
|
|
69
|
-
// There is no price to update the target with.
|
|
69
|
+
// There is no price to update the target with. So we should not update it.
|
|
70
70
|
if (sourceLatestPrice === undefined) {
|
|
71
|
-
|
|
71
|
+
logger.info(`${priceConfig.alias} (${priceId}) is not available on the source network. Ignoring it.`);
|
|
72
|
+
return UpdateCondition.NO;
|
|
72
73
|
}
|
|
73
74
|
// It means that price never existed there. So we should push the latest price feed.
|
|
74
75
|
if (targetLatestPrice === undefined) {
|
|
@@ -91,7 +92,7 @@ function shouldUpdate(priceConfig, sourceLatestPrice, targetLatestPrice, logger)
|
|
|
91
92
|
}, `Analyzing price ${priceConfig.alias} (${priceId}). ` +
|
|
92
93
|
`Time difference: ${timeDifference} (< ${priceConfig.timeDifference}? / early: < ${priceConfig.earlyUpdateTimeDifference}) OR ` +
|
|
93
94
|
`Price deviation: ${priceDeviationPct.toFixed(5)}% (< ${priceConfig.priceDeviation}%? / early: < ${priceConfig.earlyUpdatePriceDeviation}%?) OR ` +
|
|
94
|
-
`Confidence ratio: ${confidenceRatioPct.toFixed(5)}% (< ${priceConfig.confidenceRatio}%? / early: < ${priceConfig.
|
|
95
|
+
`Confidence ratio: ${confidenceRatioPct.toFixed(5)}% (< ${priceConfig.confidenceRatio}%? / early: < ${priceConfig.earlyUpdateConfidenceRatio}%?)`);
|
|
95
96
|
if (timeDifference >= priceConfig.timeDifference ||
|
|
96
97
|
priceDeviationPct >= priceConfig.priceDeviation ||
|
|
97
98
|
confidenceRatioPct >= priceConfig.confidenceRatio) {
|
|
@@ -11,6 +11,7 @@ export declare class PythPriceListener implements IPriceListener {
|
|
|
11
11
|
private healthCheckInterval?;
|
|
12
12
|
constructor(hermesClient: HermesClient, priceItems: PriceItem[], logger: Logger);
|
|
13
13
|
start(): Promise<void>;
|
|
14
|
+
startListening(): Promise<void>;
|
|
14
15
|
getLatestPriceInfo(priceId: HexString): PriceInfo | undefined;
|
|
15
16
|
cleanup(): void;
|
|
16
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyth-price-listener.d.ts","sourceRoot":"","sources":["../src/pyth-price-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pyth-price-listener.d.ts","sourceRoot":"","sources":["../src/pyth-price-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EAEb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAK9B,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,mBAAmB,CAAC,CAAiB;gBAG3C,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,MAAM;IAaV,KAAK;IAcL,cAAc;IAkDpB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAI7D,OAAO;CAKR"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PythPriceListener = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
4
5
|
class PythPriceListener {
|
|
5
6
|
hermesClient;
|
|
6
7
|
priceIds;
|
|
@@ -19,6 +20,17 @@ class PythPriceListener {
|
|
|
19
20
|
// This method should be awaited on and once it finishes it has the latest value
|
|
20
21
|
// for the given price feeds (if they exist).
|
|
21
22
|
async start() {
|
|
23
|
+
this.startListening();
|
|
24
|
+
// Store health check interval reference
|
|
25
|
+
this.healthCheckInterval = setInterval(() => {
|
|
26
|
+
if (this.lastUpdated === undefined ||
|
|
27
|
+
this.lastUpdated < Date.now() - 30 * 1000) {
|
|
28
|
+
throw new Error("Hermes Price feeds are not updating.");
|
|
29
|
+
}
|
|
30
|
+
}, 5000);
|
|
31
|
+
}
|
|
32
|
+
async startListening() {
|
|
33
|
+
this.logger.info(`Starting to listen for price updates from Hermes for ${this.priceIds.length} price feeds.`);
|
|
22
34
|
const eventSource = await this.hermesClient.getPriceUpdatesStream(this.priceIds, {
|
|
23
35
|
parsed: true,
|
|
24
36
|
ignoreInvalidPriceIds: true,
|
|
@@ -44,17 +56,12 @@ class PythPriceListener {
|
|
|
44
56
|
this.lastUpdated = Date.now();
|
|
45
57
|
});
|
|
46
58
|
};
|
|
47
|
-
eventSource.onerror = (error) => {
|
|
59
|
+
eventSource.onerror = async (error) => {
|
|
48
60
|
console.error("Error receiving updates from Hermes:", error);
|
|
49
61
|
eventSource.close();
|
|
62
|
+
await (0, utils_1.sleep)(5000); // Wait a bit before trying to reconnect
|
|
63
|
+
this.startListening(); // Attempt to restart the listener
|
|
50
64
|
};
|
|
51
|
-
// Store health check interval reference
|
|
52
|
-
this.healthCheckInterval = setInterval(() => {
|
|
53
|
-
if (this.lastUpdated === undefined ||
|
|
54
|
-
this.lastUpdated < Date.now() - 30 * 1000) {
|
|
55
|
-
throw new Error("Hermes Price feeds are not updating.");
|
|
56
|
-
}
|
|
57
|
-
}, 5000);
|
|
58
65
|
}
|
|
59
66
|
getLatestPriceInfo(priceId) {
|
|
60
67
|
return this.latestPriceInfo.get(priceId);
|
package/lib/solana/command.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ declare const _default: {
|
|
|
18
18
|
"keypair-file": Options;
|
|
19
19
|
"shard-id": Options;
|
|
20
20
|
"compute-unit-price-micro-lamports": Options;
|
|
21
|
-
"jito-
|
|
21
|
+
"jito-endpoints": Options;
|
|
22
22
|
"jito-keypair-file": Options;
|
|
23
23
|
"jito-tip-lamports": Options;
|
|
24
24
|
"dynamic-jito-tips": Options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/solana/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAehC,OAAO,EACL,cAAc,EAEf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;kBAerB,OAAO;wBAKP,OAAO;oBAKP,OAAO;6CAKP,OAAO;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/solana/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAehC,OAAO,EACL,cAAc,EAEf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;;;;;;;;;;;;;;kBAerB,OAAO;wBAKP,OAAO;oBAKP,OAAO;6CAKP,OAAO;0BAKP,OAAO;6BAMP,OAAO;6BAKP,OAAO;6BAKP,OAAO;iCAKP,OAAO;4BAKP,OAAO;mCAKP,OAAO;wCAKP,OAAO;uBAMP,OAAO;;oBAWiB,GAAG;;AAjFpC,wBAwPE;AAEF,eAAO,MAAM,cAAc,GAAI,GAAG,cAAc,EAAE,QAAQ,MAAM,SAO/D,CAAC"}
|
package/lib/solana/command.js
CHANGED
|
@@ -77,8 +77,8 @@ exports.default = {
|
|
|
77
77
|
type: "number",
|
|
78
78
|
default: 50000,
|
|
79
79
|
},
|
|
80
|
-
"jito-
|
|
81
|
-
description: "Jito endpoint",
|
|
80
|
+
"jito-endpoints": {
|
|
81
|
+
description: "Jito endpoint(s) - comma-separated list of endpoints",
|
|
82
82
|
type: "string",
|
|
83
83
|
optional: true,
|
|
84
84
|
},
|
|
@@ -133,7 +133,7 @@ exports.default = {
|
|
|
133
133
|
...options.metricsPort,
|
|
134
134
|
},
|
|
135
135
|
handler: async function (argv) {
|
|
136
|
-
const { endpoint, keypairFile, shardId, computeUnitPriceMicroLamports, priceConfigFile, priceServiceEndpoint, pythContractAddress, pushingFrequency, pollingFrequency,
|
|
136
|
+
const { endpoint, keypairFile, shardId, computeUnitPriceMicroLamports, priceConfigFile, priceServiceEndpoint, pythContractAddress, pushingFrequency, pollingFrequency, jitoEndpoints, jitoKeypairFile, jitoTipLamports, dynamicJitoTips, maxJitoTipLamports, jitoBundleSize, updatesPerJitoBundle, addressLookupTableAccount, treasuryId, logLevel, controllerLogLevel, enableMetrics, metricsPort, } = argv;
|
|
137
137
|
const logger = (0, pino_1.default)({ level: logLevel });
|
|
138
138
|
const priceConfigs = (0, price_config_1.readPriceConfigFile)(priceConfigFile);
|
|
139
139
|
const hermesClient = new hermes_client_1.HermesClient(priceServiceEndpoint);
|
|
@@ -185,9 +185,19 @@ exports.default = {
|
|
|
185
185
|
let solanaPricePusher;
|
|
186
186
|
if (jitoTipLamports) {
|
|
187
187
|
const jitoKeypair = web3_js_1.Keypair.fromSecretKey(Uint8Array.from(JSON.parse(fs_1.default.readFileSync(jitoKeypairFile, "ascii"))));
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
188
|
+
const jitoEndpointsList = jitoEndpoints
|
|
189
|
+
.split(",")
|
|
190
|
+
.map((endpoint) => endpoint.trim());
|
|
191
|
+
const jitoClients = jitoEndpointsList.map((endpoint) => {
|
|
192
|
+
logger.info(`Constructing Jito searcher client from endpoint ${endpoint}`);
|
|
193
|
+
return (0, searcher_1.searcherClient)(endpoint, jitoKeypair);
|
|
194
|
+
});
|
|
195
|
+
solanaPricePusher = new solana_1.SolanaPricePusherJito(pythSolanaReceiver, hermesClient, logger.child({ module: "SolanaPricePusherJito" }), shardId, jitoTipLamports, dynamicJitoTips, maxJitoTipLamports, jitoClients, jitoBundleSize, updatesPerJitoBundle,
|
|
196
|
+
// Set max retry time to pushing frequency, since we want to stop retrying before the next push attempt
|
|
197
|
+
pushingFrequency * 1000, lookupTableAccount);
|
|
198
|
+
jitoClients.forEach((client, index) => {
|
|
199
|
+
(0, exports.onBundleResult)(client, logger.child({ module: `JitoClient-${index}` }));
|
|
200
|
+
});
|
|
191
201
|
}
|
|
192
202
|
else {
|
|
193
203
|
solanaPricePusher = new solana_1.SolanaPricePusher(pythSolanaReceiver, hermesClient, logger.child({ module: "SolanaPricePusher" }), shardId, computeUnitPriceMicroLamports, lookupTableAccount);
|
package/lib/solana/solana.d.ts
CHANGED
|
@@ -34,13 +34,13 @@ export declare class SolanaPricePusherJito implements IPricePusher {
|
|
|
34
34
|
private defaultJitoTipLamports;
|
|
35
35
|
private dynamicJitoTips;
|
|
36
36
|
private maxJitoTipLamports;
|
|
37
|
-
private
|
|
37
|
+
private searcherClients;
|
|
38
38
|
private jitoBundleSize;
|
|
39
39
|
private updatesPerJitoBundle;
|
|
40
|
+
private maxRetryTimeMs;
|
|
40
41
|
private addressLookupTableAccount?;
|
|
41
|
-
constructor(pythSolanaReceiver: PythSolanaReceiver, hermesClient: HermesClient, logger: Logger, shardId: number, defaultJitoTipLamports: number, dynamicJitoTips: boolean, maxJitoTipLamports: number,
|
|
42
|
+
constructor(pythSolanaReceiver: PythSolanaReceiver, hermesClient: HermesClient, logger: Logger, shardId: number, defaultJitoTipLamports: number, dynamicJitoTips: boolean, maxJitoTipLamports: number, searcherClients: SearcherClient[], jitoBundleSize: number, updatesPerJitoBundle: number, maxRetryTimeMs: number, addressLookupTableAccount?: AddressLookupTableAccount | undefined);
|
|
42
43
|
getRecentJitoTipLamports(): Promise<number | undefined>;
|
|
43
|
-
private sleep;
|
|
44
44
|
updatePriceFeed(priceIds: string[]): Promise<void>;
|
|
45
45
|
}
|
|
46
46
|
//# sourceMappingURL=solana.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAoB,MAAM,iBAAiB,CAAC;AAI9E,qBAAa,mBAAoB,SAAQ,kBAAkB;IAEvD,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,MAAM;gBAHN,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,MAAM,EACvB,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;YAOW,WAAW;IAsBnB,KAAK;IAOL,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA0B3E;AAED,qBAAa,iBAAkB,YAAW,YAAY;IAElD,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,6BAA6B;IACrC,OAAO,CAAC,yBAAyB,CAAC;gBAL1B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,6BAA6B,EAAE,MAAM,EACrC,yBAAyB,CAAC,EAAE,yBAAyB,YAAA;IAGzD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/solana/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK1D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAoB,MAAM,iBAAiB,CAAC;AAI9E,qBAAa,mBAAoB,SAAQ,kBAAkB;IAEvD,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,OAAO;IAEf,OAAO,CAAC,MAAM;gBAHN,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,MAAM,EACvB,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;YAOW,WAAW;IAsBnB,KAAK;IAOL,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA0B3E;AAED,qBAAa,iBAAkB,YAAW,YAAY;IAElD,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,6BAA6B;IACrC,OAAO,CAAC,yBAAyB,CAAC;gBAL1B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,6BAA6B,EAAE,MAAM,EACrC,yBAAyB,CAAC,EAAE,yBAAyB,YAAA;IAGzD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAuDzD;AAED,qBAAa,qBAAsB,YAAW,YAAY;IAEtD,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,yBAAyB,CAAC;gBAX1B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,OAAO,EACxB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,cAAc,EAAE,EACjC,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,EAC5B,cAAc,EAAE,MAAM,EACtB,yBAAyB,CAAC,EAAE,yBAAyB,YAAA;IAGzD,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAsBvD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAwDzD"}
|
package/lib/solana/solana.js
CHANGED
|
@@ -89,6 +89,7 @@ class SolanaPricePusher {
|
|
|
89
89
|
try {
|
|
90
90
|
const response = await this.hermesClient.getLatestPriceUpdates(shuffledPriceIds, {
|
|
91
91
|
encoding: "base64",
|
|
92
|
+
ignoreInvalidPriceIds: true,
|
|
92
93
|
});
|
|
93
94
|
priceFeedUpdateData = response.binary.data;
|
|
94
95
|
}
|
|
@@ -123,11 +124,12 @@ class SolanaPricePusherJito {
|
|
|
123
124
|
defaultJitoTipLamports;
|
|
124
125
|
dynamicJitoTips;
|
|
125
126
|
maxJitoTipLamports;
|
|
126
|
-
|
|
127
|
+
searcherClients;
|
|
127
128
|
jitoBundleSize;
|
|
128
129
|
updatesPerJitoBundle;
|
|
130
|
+
maxRetryTimeMs;
|
|
129
131
|
addressLookupTableAccount;
|
|
130
|
-
constructor(pythSolanaReceiver, hermesClient, logger, shardId, defaultJitoTipLamports, dynamicJitoTips, maxJitoTipLamports,
|
|
132
|
+
constructor(pythSolanaReceiver, hermesClient, logger, shardId, defaultJitoTipLamports, dynamicJitoTips, maxJitoTipLamports, searcherClients, jitoBundleSize, updatesPerJitoBundle, maxRetryTimeMs, addressLookupTableAccount) {
|
|
131
133
|
this.pythSolanaReceiver = pythSolanaReceiver;
|
|
132
134
|
this.hermesClient = hermesClient;
|
|
133
135
|
this.logger = logger;
|
|
@@ -135,9 +137,10 @@ class SolanaPricePusherJito {
|
|
|
135
137
|
this.defaultJitoTipLamports = defaultJitoTipLamports;
|
|
136
138
|
this.dynamicJitoTips = dynamicJitoTips;
|
|
137
139
|
this.maxJitoTipLamports = maxJitoTipLamports;
|
|
138
|
-
this.
|
|
140
|
+
this.searcherClients = searcherClients;
|
|
139
141
|
this.jitoBundleSize = jitoBundleSize;
|
|
140
142
|
this.updatesPerJitoBundle = updatesPerJitoBundle;
|
|
143
|
+
this.maxRetryTimeMs = maxRetryTimeMs;
|
|
141
144
|
this.addressLookupTableAccount = addressLookupTableAccount;
|
|
142
145
|
}
|
|
143
146
|
async getRecentJitoTipLamports() {
|
|
@@ -155,9 +158,6 @@ class SolanaPricePusherJito {
|
|
|
155
158
|
return undefined;
|
|
156
159
|
}
|
|
157
160
|
}
|
|
158
|
-
async sleep(ms) {
|
|
159
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
160
|
-
}
|
|
161
161
|
async updatePriceFeed(priceIds) {
|
|
162
162
|
const recentJitoTip = await this.getRecentJitoTipLamports();
|
|
163
163
|
const jitoTip = this.dynamicJitoTips && recentJitoTip !== undefined
|
|
@@ -188,29 +188,9 @@ class SolanaPricePusherJito {
|
|
|
188
188
|
tightComputeBudget: true,
|
|
189
189
|
jitoBundleSize: this.jitoBundleSize,
|
|
190
190
|
});
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
await (0, solana_utils_1.sendTransactionsJito)(transactions, this.searcherClient, this.pythSolanaReceiver.wallet);
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
catch (err) {
|
|
198
|
-
if (err.code === 8 && err.details?.includes("Rate limit exceeded")) {
|
|
199
|
-
this.logger.warn("Rate limit hit, waiting before retry...");
|
|
200
|
-
await this.sleep(1100); // Wait slightly more than 1 second
|
|
201
|
-
retries--;
|
|
202
|
-
if (retries === 0) {
|
|
203
|
-
this.logger.error("Max retries reached for rate limit");
|
|
204
|
-
throw err;
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
throw err;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// Add a delay between bundles to avoid rate limiting
|
|
213
|
-
await this.sleep(1100);
|
|
191
|
+
await (0, solana_utils_1.sendTransactionsJito)(transactions, this.searcherClients, this.pythSolanaReceiver.wallet, {
|
|
192
|
+
maxRetryTimeMs: this.maxRetryTimeMs,
|
|
193
|
+
}, this.logger);
|
|
214
194
|
}
|
|
215
195
|
}
|
|
216
196
|
}
|
package/lib/sui/sui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/sui/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,KAAK,QAAQ,GAAG,MAAM,CAAC;AAGvB,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAGrB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAYG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA4C3E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,YAAY;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;gBAND,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,SAAS,EAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,aAAa;IAGnC;;;;;;OAMG;WACU,YAAY,CACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC;IAyBpB;;;OAGG;WACU,0BAA0B,CACrC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,cAAc,CAAC;IAkCpB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/sui/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM1D,KAAK,QAAQ,GAAG,MAAM,CAAC;AAGvB,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAGrB,WAAW,EAAE,QAAQ,EACrB,eAAe,EAAE,QAAQ,EACzB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAYG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CA4C3E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,YAAW,YAAY;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;gBAND,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,SAAS,EAC5B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,aAAa;IAGnC;;;;;;OAMG;WACU,YAAY,CACvB,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC;IAyBpB;;;OAGG;WACU,0BAA0B,CACrC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,cAAc,CAAC;IAkCpB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;IA8ChB,iGAAiG;YACnF,qBAAqB;IAInC,sEAAsE;YACxD,oBAAoB;mBAyDb,iBAAiB;mBAsDjB,yBAAyB;mBAgBzB,cAAc;mBAiCd,mBAAmB;mBAwCnB,oBAAoB;CAiE1C"}
|
package/lib/sui/sui.js
CHANGED
|
@@ -143,6 +143,7 @@ class SuiPricePusher {
|
|
|
143
143
|
await Promise.all(priceIdChunks.map(async (priceIdChunk) => {
|
|
144
144
|
const response = await this.hermesClient.getLatestPriceUpdates(priceIdChunk, {
|
|
145
145
|
encoding: "base64",
|
|
146
|
+
ignoreInvalidPriceIds: true,
|
|
146
147
|
});
|
|
147
148
|
if (response.binary.data.length !== 1) {
|
|
148
149
|
throw new Error(`Expected a single VAA for all priceIds ${priceIdChunk} but received ${response.binary.data.length} VAAs: ${response.binary.data}`);
|
package/lib/ton/ton.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/ton/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EACL,OAAO,EACP,gBAAgB,EAGhB,SAAS,EAEV,MAAM,UAAU,CAAC;AAOlB,qBAAa,gBAAiB,SAAQ,kBAAkB;IAIpD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IAEvB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAA+B;gBAGrC,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,OAAO,EAChC,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAQG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAqB3E;AAED,qBAAa,cAAe,YAAW,YAAY;IAK/C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAS;gBAGb,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAclB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAElB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/ton/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EACL,OAAO,EACP,gBAAgB,EAGhB,SAAS,EAEV,MAAM,UAAU,CAAC;AAOlB,qBAAa,gBAAiB,SAAQ,kBAAkB;IAIpD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IAEvB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,QAAQ,CAA+B;gBAGrC,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,OAAO,EAChC,UAAU,EAAE,SAAS,EAAE,EACf,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE;QACN,gBAAgB,EAAE,iBAAiB,CAAC;KACrC;IAQG,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;CAqB3E;AAED,qBAAa,cAAe,YAAW,YAAY;IAK/C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAS;gBAGb,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM;IAclB,eAAe,CACnB,QAAQ,EAAE,MAAM,EAAE,EAElB,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC;CAqCjB"}
|
package/lib/ton/ton.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pythnetwork/price-pusher",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.5",
|
|
4
4
|
"description": "Pyth Price Pusher",
|
|
5
5
|
"homepage": "https://pyth.network",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
"yaml": "^2.1.1",
|
|
72
72
|
"yargs": "^17.5.1",
|
|
73
73
|
"@pythnetwork/pyth-fuel-js": "1.0.7",
|
|
74
|
+
"@pythnetwork/pyth-sdk-solidity": "4.1.0",
|
|
74
75
|
"@pythnetwork/price-service-sdk": "^1.8.0",
|
|
75
76
|
"@pythnetwork/pyth-solana-receiver": "0.10.1",
|
|
76
|
-
"@pythnetwork/pyth-sdk-solidity": "4.1.0",
|
|
77
77
|
"@pythnetwork/pyth-ton-js": "0.1.2",
|
|
78
|
-
"@pythnetwork/
|
|
79
|
-
"@pythnetwork/
|
|
78
|
+
"@pythnetwork/solana-utils": "0.4.5",
|
|
79
|
+
"@pythnetwork/pyth-sui-js": "2.1.0"
|
|
80
80
|
},
|
|
81
81
|
"scripts": {
|
|
82
82
|
"build": "tsc",
|