diff --git a/governance/xc_admin/packages/xc_admin_common/src/price_store.ts b/governance/xc_admin/packages/xc_admin_common/src/price_store.ts index 9a6448e19d..1cf23e67c9 100644 --- a/governance/xc_admin/packages/xc_admin_common/src/price_store.ts +++ b/governance/xc_admin/packages/xc_admin_common/src/price_store.ts @@ -331,3 +331,11 @@ export async function isPriceStorePublisherInitialized( const response = await connection.getAccountInfo(publisherConfigKey); return response !== null; } + +export async function isPriceStoreInitialized( + connection: Connection +): Promise { + const configKey = findPriceStoreConfigAddress()[0]; + const response = await connection.getAccountInfo(configKey); + return response !== null; +} diff --git a/governance/xc_admin/packages/xc_admin_frontend/components/tabs/General.tsx b/governance/xc_admin/packages/xc_admin_frontend/components/tabs/General.tsx index 400d9e17bd..e373c831f0 100644 --- a/governance/xc_admin/packages/xc_admin_frontend/components/tabs/General.tsx +++ b/governance/xc_admin/packages/xc_admin_frontend/components/tabs/General.tsx @@ -21,6 +21,7 @@ import { PRICE_FEED_OPS_KEY, getMessageBufferAddressForPrice, getMaximumNumberOfPublishers, + isPriceStoreInitialized, isPriceStorePublisherInitialized, createDetermisticPriceStoreInitializePublisherInstruction, } from '@pythnetwork/xc-admin-common' @@ -302,8 +303,8 @@ const General = ({ proposerServerUrl }: { proposerServerUrl: string }) => { : multisigAuthority const initPublisherInPriceStore = async (publisherKey: PublicKey) => { - // Price store is only available in Pythnet and Pythtest-crosschain - if (cluster !== 'pythnet' && cluster !== 'pythtest-crosschain') { + // Ignore this step if Price Store is not initialized (or not deployed) + if (!(await isPriceStoreInitialized(connection))) { return }