@pythnetwork/price-pusher 7.0.2 → 8.0.0-alpha
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 +1 -1
- package/lib/evm/command.d.ts +1 -1
- package/lib/evm/command.d.ts.map +1 -1
- package/lib/evm/command.js +13 -7
- package/lib/evm/custom-gas-station.d.ts +1 -1
- package/lib/evm/custom-gas-station.d.ts.map +1 -1
- package/lib/evm/custom-gas-station.js +3 -7
- package/lib/evm/evm.d.ts +9 -33
- package/lib/evm/evm.d.ts.map +1 -1
- package/lib/evm/evm.js +147 -178
- package/lib/evm/pyth-abi.d.ts +1001 -0
- package/lib/evm/pyth-abi.d.ts.map +1 -0
- package/lib/evm/pyth-abi.js +660 -0
- package/lib/evm/pyth-contract.d.ts +6 -0
- package/lib/evm/pyth-contract.d.ts.map +1 -0
- package/lib/evm/pyth-contract.js +11 -0
- package/lib/evm/super-wallet.d.ts +4 -0
- package/lib/evm/super-wallet.d.ts.map +1 -0
- package/lib/evm/super-wallet.js +63 -0
- package/lib/sui/command.js +1 -1
- package/lib/sui/sui.d.ts +2 -2
- package/lib/sui/sui.d.ts.map +1 -1
- package/lib/sui/sui.js +13 -13
- package/lib/utils.d.ts +2 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +12 -7
- package/package.json +7 -10
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createClient = void 0;
|
|
27
|
+
const viem_1 = require("viem");
|
|
28
|
+
const accounts_1 = require("viem/accounts");
|
|
29
|
+
const chains = __importStar(require("viem/chains"));
|
|
30
|
+
const utils_1 = require("../utils");
|
|
31
|
+
const UNKNOWN_CHAIN_CONFIG = {
|
|
32
|
+
name: "Unknown",
|
|
33
|
+
nativeCurrency: {
|
|
34
|
+
name: "Unknown",
|
|
35
|
+
symbol: "Unknown",
|
|
36
|
+
decimals: 18,
|
|
37
|
+
},
|
|
38
|
+
rpcUrls: {
|
|
39
|
+
default: {
|
|
40
|
+
http: [],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
// Get the transport based on the endpoint
|
|
45
|
+
const getTransport = (endpoint) => (0, utils_1.isWsEndpoint)(endpoint) ? (0, viem_1.webSocket)(endpoint) : (0, viem_1.http)(endpoint);
|
|
46
|
+
// Get the chain corresponding to the chainId. If the chain is not found, it will return
|
|
47
|
+
// an unknown chain which should work fine in most of the cases. We might need to update
|
|
48
|
+
// the viem package to support new chains if they don't work as expected with the unknown
|
|
49
|
+
// chain.
|
|
50
|
+
const getChainById = (chainId) => Object.values(chains).find((chain) => chain.id === chainId) ||
|
|
51
|
+
(0, viem_1.defineChain)({ id: chainId, ...UNKNOWN_CHAIN_CONFIG });
|
|
52
|
+
const createClient = async (endpoint, mnemonic) => {
|
|
53
|
+
const transport = getTransport(endpoint);
|
|
54
|
+
const chainId = await (0, viem_1.createPublicClient)({
|
|
55
|
+
transport,
|
|
56
|
+
}).getChainId();
|
|
57
|
+
return (0, viem_1.createWalletClient)({
|
|
58
|
+
transport,
|
|
59
|
+
account: (0, accounts_1.mnemonicToAccount)(mnemonic),
|
|
60
|
+
chain: getChainById(chainId),
|
|
61
|
+
}).extend(viem_1.publicActions);
|
|
62
|
+
};
|
|
63
|
+
exports.createClient = createClient;
|
package/lib/sui/command.js
CHANGED
|
@@ -33,7 +33,7 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
33
33
|
const pyth_price_listener_1 = require("../pyth-price-listener");
|
|
34
34
|
const controller_1 = require("../controller");
|
|
35
35
|
const sui_1 = require("./sui");
|
|
36
|
-
const ed25519_1 = require("@mysten/sui
|
|
36
|
+
const ed25519_1 = require("@mysten/sui/keypairs/ed25519");
|
|
37
37
|
const pino_1 = __importDefault(require("pino"));
|
|
38
38
|
exports.default = {
|
|
39
39
|
command: "sui",
|
package/lib/sui/sui.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import { ChainPriceListener, IPricePusher, PriceInfo, PriceItem } from "../inter
|
|
|
2
2
|
import { DurationInSeconds } from "../utils";
|
|
3
3
|
import { PriceServiceConnection } from "@pythnetwork/price-service-client";
|
|
4
4
|
import { SuiPythClient } from "@pythnetwork/pyth-sui-js";
|
|
5
|
-
import { Ed25519Keypair } from "@mysten/sui
|
|
6
|
-
import { SuiClient, SuiObjectRef } from "@mysten/sui
|
|
5
|
+
import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
|
|
6
|
+
import { SuiClient, SuiObjectRef } from "@mysten/sui/client";
|
|
7
7
|
import { Logger } from "pino";
|
|
8
8
|
type ObjectId = string;
|
|
9
9
|
export declare class SuiPriceListener extends ChainPriceListener {
|
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,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
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,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,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;AAO9B,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;CA6C3E;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,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;gBAND,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,SAAS,EAC5B,MAAM,EAAE,MAAM,EACd,sBAAsB,EAAE,sBAAsB,EAC9C,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,sBAAsB,EAAE,sBAAsB,EAC9C,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;IA0ChB,iGAAiG;YACnF,qBAAqB;IAInC,sEAAsE;YACxD,oBAAoB;mBAyDb,iBAAiB;mBAsDjB,yBAAyB;mBAgBzB,cAAc;mBAiCd,mBAAmB;mBAwCnB,oBAAoB;CAiE1C"}
|
package/lib/sui/sui.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SuiPricePusher = exports.SuiPriceListener = void 0;
|
|
4
4
|
const interface_1 = require("../interface");
|
|
5
5
|
const pyth_sui_js_1 = require("@pythnetwork/pyth-sui-js");
|
|
6
|
-
const transactions_1 = require("@mysten/sui
|
|
7
|
-
const client_1 = require("@mysten/sui
|
|
6
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
7
|
+
const client_1 = require("@mysten/sui/client");
|
|
8
8
|
const GAS_FEE_FOR_SPLIT = 2_000_000_000;
|
|
9
9
|
// TODO: read this from on chain config
|
|
10
10
|
const MAX_NUM_GAS_OBJECTS_IN_PTB = 256;
|
|
@@ -146,7 +146,7 @@ class SuiPricePusher {
|
|
|
146
146
|
throw new Error(`Expected a single VAA for all priceIds ${priceIdChunk} but received ${vaas.length} VAAs: ${vaas}`);
|
|
147
147
|
}
|
|
148
148
|
const vaa = vaas[0];
|
|
149
|
-
const tx = new transactions_1.
|
|
149
|
+
const tx = new transactions_1.Transaction();
|
|
150
150
|
await this.pythClient.updatePriceFeeds(tx, [Buffer.from(vaa, "base64")], priceIdChunk);
|
|
151
151
|
txBlocks.push(tx);
|
|
152
152
|
}));
|
|
@@ -167,9 +167,9 @@ class SuiPricePusher {
|
|
|
167
167
|
try {
|
|
168
168
|
tx.setGasPayment([gasObject]);
|
|
169
169
|
tx.setGasBudget(this.gasBudget);
|
|
170
|
-
const result = await this.provider.
|
|
170
|
+
const result = await this.provider.signAndExecuteTransaction({
|
|
171
171
|
signer: this.signer,
|
|
172
|
-
|
|
172
|
+
transaction: tx,
|
|
173
173
|
options: {
|
|
174
174
|
showEffects: true,
|
|
175
175
|
},
|
|
@@ -266,13 +266,13 @@ class SuiPricePusher {
|
|
|
266
266
|
}
|
|
267
267
|
static async splitGasCoinEqually(signer, provider, signerAddress, splitAmount, numGasObjects, gasCoin) {
|
|
268
268
|
// TODO: implement chunking if numGasObjects exceeds MAX_NUM_CREATED_OBJECTS
|
|
269
|
-
const tx = new transactions_1.
|
|
270
|
-
const coins = tx.splitCoins(tx.gas, Array.from({ length: numGasObjects }, () => tx.pure(splitAmount)));
|
|
271
|
-
tx.transferObjects(Array.from({ length: numGasObjects }, (_, i) => coins[i]), tx.pure(signerAddress));
|
|
269
|
+
const tx = new transactions_1.Transaction();
|
|
270
|
+
const coins = tx.splitCoins(tx.gas, Array.from({ length: numGasObjects }, () => tx.pure.u64(splitAmount)));
|
|
271
|
+
tx.transferObjects(Array.from({ length: numGasObjects }, (_, i) => coins[i]), tx.pure.address(signerAddress));
|
|
272
272
|
tx.setGasPayment([gasCoin]);
|
|
273
|
-
const result = await provider.
|
|
273
|
+
const result = await provider.signAndExecuteTransaction({
|
|
274
274
|
signer,
|
|
275
|
-
|
|
275
|
+
transaction: tx,
|
|
276
276
|
options: { showEffects: true },
|
|
277
277
|
});
|
|
278
278
|
const error = result?.effects?.status.error;
|
|
@@ -296,7 +296,7 @@ class SuiPricePusher {
|
|
|
296
296
|
const lockedAddresses = new Set();
|
|
297
297
|
initialLockedAddresses.forEach((value) => lockedAddresses.add(value));
|
|
298
298
|
for (let i = 0; i < gasCoinsChunks.length; i++) {
|
|
299
|
-
const mergeTx = new transactions_1.
|
|
299
|
+
const mergeTx = new transactions_1.Transaction();
|
|
300
300
|
let coins = gasCoinsChunks[i];
|
|
301
301
|
coins = coins.filter((coin) => !lockedAddresses.has(coin.objectId));
|
|
302
302
|
if (finalCoin) {
|
|
@@ -305,9 +305,9 @@ class SuiPricePusher {
|
|
|
305
305
|
mergeTx.setGasPayment(coins);
|
|
306
306
|
let mergeResult;
|
|
307
307
|
try {
|
|
308
|
-
mergeResult = await provider.
|
|
308
|
+
mergeResult = await provider.signAndExecuteTransaction({
|
|
309
309
|
signer,
|
|
310
|
-
|
|
310
|
+
transaction: mergeTx,
|
|
311
311
|
options: { showEffects: true },
|
|
312
312
|
});
|
|
313
313
|
}
|
package/lib/utils.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export declare const customGasChainIds: readonly [137];
|
|
|
7
7
|
export type CustomGasChainId = typeof customGasChainIds[number];
|
|
8
8
|
export declare function sleep(ms: number): Promise<void>;
|
|
9
9
|
export declare function removeLeading0x(id: HexString): HexString;
|
|
10
|
-
export declare
|
|
10
|
+
export declare const addLeading0x: (id: HexString) => `0x${string}`;
|
|
11
11
|
export declare function isWsEndpoint(endpoint: string): boolean;
|
|
12
12
|
export declare function verifyValidOption<options extends Readonly<Array<any>>, validOption extends options[number]>(option: any, validOptions: options): validOption;
|
|
13
|
+
export declare const assertDefined: <T>(value: T | undefined) => T;
|
|
13
14
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACvC,eAAO,MAAM,QAAQ,uCAAwC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9C,eAAO,MAAM,iBAAiB,gBAAiB,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEhE,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAKxD;AAED,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACvC,eAAO,MAAM,QAAQ,uCAAwC,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9C,eAAO,MAAM,iBAAiB,gBAAiB,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEhE,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAKxD;AAED,eAAO,MAAM,YAAY,OAAQ,SAAS,KAAG,KAAK,MAAM,EACrB,CAAC;AAKpC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAStD;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,SAAS,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACpC,WAAW,SAAS,OAAO,CAAC,MAAM,CAAC,EACnC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,eAOnC;AAED,eAAO,MAAM,aAAa,aAAc,CAAC,GAAG,SAAS,KAAG,CAMvD,CAAC"}
|
package/lib/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.verifyValidOption = exports.isWsEndpoint = exports.addLeading0x = exports.removeLeading0x = exports.sleep = exports.customGasChainIds = exports.txSpeeds = void 0;
|
|
3
|
+
exports.assertDefined = exports.verifyValidOption = exports.isWsEndpoint = exports.addLeading0x = exports.removeLeading0x = exports.sleep = exports.customGasChainIds = exports.txSpeeds = void 0;
|
|
4
4
|
exports.txSpeeds = ["slow", "standard", "fast"];
|
|
5
5
|
exports.customGasChainIds = [137];
|
|
6
6
|
async function sleep(ms) {
|
|
@@ -14,13 +14,9 @@ function removeLeading0x(id) {
|
|
|
14
14
|
return id;
|
|
15
15
|
}
|
|
16
16
|
exports.removeLeading0x = removeLeading0x;
|
|
17
|
-
|
|
18
|
-
if (id.startsWith("0x")) {
|
|
19
|
-
return id;
|
|
20
|
-
}
|
|
21
|
-
return "0x" + id;
|
|
22
|
-
}
|
|
17
|
+
const addLeading0x = (id) => hasLeading0x(id) ? id : `0x${id}`;
|
|
23
18
|
exports.addLeading0x = addLeading0x;
|
|
19
|
+
const hasLeading0x = (input) => input.startsWith("0x");
|
|
24
20
|
function isWsEndpoint(endpoint) {
|
|
25
21
|
const url = new URL(endpoint);
|
|
26
22
|
const protocol = url.protocol;
|
|
@@ -38,3 +34,12 @@ function verifyValidOption(option, validOptions) {
|
|
|
38
34
|
throw new Error(errorString);
|
|
39
35
|
}
|
|
40
36
|
exports.verifyValidOption = verifyValidOption;
|
|
37
|
+
const assertDefined = (value) => {
|
|
38
|
+
if (value === undefined) {
|
|
39
|
+
throw new Error("Assertion failed: value was undefined");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports.assertDefined = assertDefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pythnetwork/price-pusher",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-alpha",
|
|
4
4
|
"description": "Pyth Price Pusher",
|
|
5
5
|
"homepage": "https://pyth.network",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -56,26 +56,23 @@
|
|
|
56
56
|
"@coral-xyz/anchor": "^0.30.0",
|
|
57
57
|
"@injectivelabs/networks": "^1.14.6",
|
|
58
58
|
"@injectivelabs/sdk-ts": "1.10.72",
|
|
59
|
-
"@mysten/sui
|
|
59
|
+
"@mysten/sui": "^1.3.0",
|
|
60
60
|
"@pythnetwork/price-service-client": "1.9.0",
|
|
61
61
|
"@pythnetwork/price-service-sdk": "^1.7.1",
|
|
62
|
-
"@pythnetwork/pyth-sdk-solidity": "
|
|
63
|
-
"@pythnetwork/pyth-solana-receiver": "0.8.
|
|
64
|
-
"@pythnetwork/pyth-sui-js": "2.
|
|
62
|
+
"@pythnetwork/pyth-sdk-solidity": "4.0.0",
|
|
63
|
+
"@pythnetwork/pyth-solana-receiver": "0.8.1",
|
|
64
|
+
"@pythnetwork/pyth-sui-js": "2.1.0",
|
|
65
65
|
"@pythnetwork/solana-utils": "0.4.2",
|
|
66
66
|
"@solana/web3.js": "^1.93.0",
|
|
67
|
-
"@truffle/hdwallet-provider": "^2.1.3",
|
|
68
67
|
"@types/pino": "^7.0.5",
|
|
69
68
|
"aptos": "^1.8.5",
|
|
70
69
|
"jito-ts": "^3.0.1",
|
|
71
70
|
"joi": "^17.6.0",
|
|
72
71
|
"near-api-js": "^3.0.2",
|
|
73
72
|
"pino": "^9.2.0",
|
|
74
|
-
"
|
|
75
|
-
"web3-core": "^1.8.1",
|
|
76
|
-
"web3-eth-contract": "^1.8.1",
|
|
73
|
+
"viem": "^2.19.4",
|
|
77
74
|
"yaml": "^2.1.1",
|
|
78
75
|
"yargs": "^17.5.1"
|
|
79
76
|
},
|
|
80
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "4eb89564385717bdfa9c84ac7b484312ee001d22"
|
|
81
78
|
}
|