From ee6be42dd69102936057b6435fefed9ac94b7c12 Mon Sep 17 00:00:00 2001 From: Ali Behjati Date: Thu, 4 Jul 2024 21:53:18 +0200 Subject: [PATCH 1/2] fix(apps/price_pusher/solana): make priceUpdates per bundle configurable We are using a fixed priceUpdate per bundle constant but it might need to be changed as the price proof size increases. This change makes it configurable. --- apps/price_pusher/package.json | 2 +- apps/price_pusher/src/solana/command.ts | 9 ++++++++- apps/price_pusher/src/solana/solana.ts | 9 ++++----- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/apps/price_pusher/package.json b/apps/price_pusher/package.json index 0b4bed567c..7842c22304 100644 --- a/apps/price_pusher/package.json +++ b/apps/price_pusher/package.json @@ -1,6 +1,6 @@ { "name": "@pythnetwork/price-pusher", - "version": "7.0.0", + "version": "7.0.1", "description": "Pyth Price Pusher", "homepage": "https://pyth.network", "main": "lib/index.js", diff --git a/apps/price_pusher/src/solana/command.ts b/apps/price_pusher/src/solana/command.ts index 6b972c1622..edefd404be 100644 --- a/apps/price_pusher/src/solana/command.ts +++ b/apps/price_pusher/src/solana/command.ts @@ -66,6 +66,11 @@ export default { type: "number", default: 2, } as Options, + "updates-per-jito-bundle": { + description: "Number of transactions in each bundle", + type: "number", + default: 6, + } as Options, ...options.priceConfigFile, ...options.priceServiceEndpoint, ...options.pythContractAddress, @@ -90,6 +95,7 @@ export default { jitoKeypairFile, jitoTipLamports, jitoBundleSize, + updatesPerJitoBundle, logLevel, priceServiceConnectionLogLevel, controllerLogLevel, @@ -143,7 +149,8 @@ export default { shardId, jitoTipLamports, jitoClient, - jitoBundleSize + jitoBundleSize, + updatesPerJitoBundle ); onBundleResult(jitoClient, logger.child({ module: "JitoClient" })); diff --git a/apps/price_pusher/src/solana/solana.ts b/apps/price_pusher/src/solana/solana.ts index efb56ce42a..97ce5609a0 100644 --- a/apps/price_pusher/src/solana/solana.ts +++ b/apps/price_pusher/src/solana/solana.ts @@ -130,8 +130,6 @@ export class SolanaPricePusher implements IPricePusher { } } -const UPDATES_PER_JITO_BUNDLE = 7; - export class SolanaPricePusherJito implements IPricePusher { constructor( private pythSolanaReceiver: PythSolanaReceiver, @@ -140,7 +138,8 @@ export class SolanaPricePusherJito implements IPricePusher { private shardId: number, private jitoTipLamports: number, private searcherClient: SearcherClient, - private jitoBundleSize: number + private jitoBundleSize: number, + private updatesPerJitoBundle: number ) {} async updatePriceFeed( @@ -158,7 +157,7 @@ export class SolanaPricePusherJito implements IPricePusher { return; } - for (let i = 0; i < priceIds.length; i += UPDATES_PER_JITO_BUNDLE) { + for (let i = 0; i < priceIds.length; i += this.updatesPerJitoBundle) { const transactionBuilder = this.pythSolanaReceiver.newTransactionBuilder({ closeUpdateAccounts: true, }); @@ -167,7 +166,7 @@ export class SolanaPricePusherJito implements IPricePusher { return sliceAccumulatorUpdateData( Buffer.from(x, "base64"), i, - i + UPDATES_PER_JITO_BUNDLE + i + this.updatesPerJitoBundle ).toString("base64"); }), this.shardId From 4265719fb6d0303cae29cb9cb7abf89f6e80b034 Mon Sep 17 00:00:00 2001 From: Ali Behjati Date: Fri, 5 Jul 2024 10:24:01 +0200 Subject: [PATCH 2/2] chore: update sample config --- apps/price_pusher/config.solana.mainnet.sample.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/price_pusher/config.solana.mainnet.sample.json b/apps/price_pusher/config.solana.mainnet.sample.json index ad843613a5..727d205b5e 100644 --- a/apps/price_pusher/config.solana.mainnet.sample.json +++ b/apps/price_pusher/config.solana.mainnet.sample.json @@ -6,6 +6,7 @@ "jito-keypair-file": "./jito.json", "jito-tip-lamports": "100000", "jito-bundle-size": "5", + "updates-per-jito-bundle": "6", "price-config-file": "./price-config.yaml", "price-service-endpoint": "https://hermes.pyth.network/", "pyth-contract-address": "pythWSnswVUd12oZpeFP8e9CVaEqJg25g1Vtc2biRsT",