From 3396d80e3f6b8f84c6486f4e73d102c5fd4ff859 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Thu, 2 Feb 2023 19:34:16 +0000 Subject: [PATCH 1/3] Make the README better --- price_service/server/README.md | 14 +++++++++++++- price_service/server/docker-compose.mainnet.yaml | 2 ++ price_service/server/docker-compose.testnet.yaml | 2 ++ third_party/pyth/p2w-relay/src/listen.ts | 6 +++--- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/price_service/server/README.md b/price_service/server/README.md index d9bd3ca4f9..68811ddf1d 100644 --- a/price_service/server/README.md +++ b/price_service/server/README.md @@ -35,7 +35,19 @@ both the price service and spy. To run the mainnet docker compose file run the following command: ``` -docker-compose up -f docker-compose.mainnet.yaml +docker-compose -f docker-compose.mainnet.yaml up +``` + +Now your own instance of the price service is up and running! Running the following command should give you the Pyth price of ETH/USD : + +``` +curl localhost:4200/api/latest_price_feeds?ids[]=0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace +``` + +If everything is working, you should get an output like this : + +``` +[{"ema_price":{"conf":"52359655","expo":-8,"price":"169041770000","publish_time":1675365813},"id":"ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace","price":{"conf":"64041644","expo":-8,"price":"167043958356","publish_time":1675365813}}] ``` The compose files use a public release of Pyth price service and spy. If you wish to change the diff --git a/price_service/server/docker-compose.mainnet.yaml b/price_service/server/docker-compose.mainnet.yaml index 7220604c81..528bfcddf3 100644 --- a/price_service/server/docker-compose.mainnet.yaml +++ b/price_service/server/docker-compose.mainnet.yaml @@ -41,6 +41,8 @@ services: REMOVE_EXPIRED_VALUES_INTERVAL_SECONDS: "60" CACHE_TTL_SECONDS: "300" DB_API_ENDPOINT: "https://web-api.pyth.network" + ports: + - "4200:4200" healthcheck: test: [ diff --git a/price_service/server/docker-compose.testnet.yaml b/price_service/server/docker-compose.testnet.yaml index 59ba0bb545..dacfcd24f4 100644 --- a/price_service/server/docker-compose.testnet.yaml +++ b/price_service/server/docker-compose.testnet.yaml @@ -41,6 +41,8 @@ services: REMOVE_EXPIRED_VALUES_INTERVAL_SECONDS: "60" CACHE_TTL_SECONDS: "300" DB_API_ENDPOINT: "https://web-api.pyth.network" + ports: + - "4200:4200" healthcheck: test: [ diff --git a/third_party/pyth/p2w-relay/src/listen.ts b/third_party/pyth/p2w-relay/src/listen.ts index 8414f0543a..8d689979ad 100644 --- a/third_party/pyth/p2w-relay/src/listen.ts +++ b/third_party/pyth/p2w-relay/src/listen.ts @@ -94,7 +94,7 @@ export async function run(pm: PromHelper) { ); stream = await subscribeSignedVAA(client, filter); - stream.on("data", ({ vaaBytes }: { vaaBytes: string }) => { + stream.on("data", ({ vaaBytes }: { vaaBytes: Buffer }) => { processVaa(vaaBytes); }); @@ -140,10 +140,10 @@ async function encodeEmitterAddress( return getEmitterAddressEth(emitterAddressStr); } -async function processVaa(vaaBytes: string) { +async function processVaa(vaaBytes: Buffer) { let receiveTime = new Date(); const { parse_vaa } = await importCoreWasm(); - const parsedVAA = parse_vaa(hexToUint8Array(vaaBytes)); + const parsedVAA = parse_vaa(vaaBytes); // logger.debug( // "processVaa, vaa len: " + // vaaBytes.length + From 9c73bb155d667a562a65a66516f8836897af0d76 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Thu, 2 Feb 2023 19:36:07 +0000 Subject: [PATCH 2/3] Now fix p2wrelay --- third_party/pyth/p2w-relay/src/listen.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/third_party/pyth/p2w-relay/src/listen.ts b/third_party/pyth/p2w-relay/src/listen.ts index 8d689979ad..8414f0543a 100644 --- a/third_party/pyth/p2w-relay/src/listen.ts +++ b/third_party/pyth/p2w-relay/src/listen.ts @@ -94,7 +94,7 @@ export async function run(pm: PromHelper) { ); stream = await subscribeSignedVAA(client, filter); - stream.on("data", ({ vaaBytes }: { vaaBytes: Buffer }) => { + stream.on("data", ({ vaaBytes }: { vaaBytes: string }) => { processVaa(vaaBytes); }); @@ -140,10 +140,10 @@ async function encodeEmitterAddress( return getEmitterAddressEth(emitterAddressStr); } -async function processVaa(vaaBytes: Buffer) { +async function processVaa(vaaBytes: string) { let receiveTime = new Date(); const { parse_vaa } = await importCoreWasm(); - const parsedVAA = parse_vaa(vaaBytes); + const parsedVAA = parse_vaa(hexToUint8Array(vaaBytes)); // logger.debug( // "processVaa, vaa len: " + // vaaBytes.length + From 024991b0947a8e071c2e726069f613a5e2804e22 Mon Sep 17 00:00:00 2001 From: Guillermo Bescos Date: Thu, 2 Feb 2023 19:36:52 +0000 Subject: [PATCH 3/3] Space in docker compose --- price_service/server/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/price_service/server/README.md b/price_service/server/README.md index 68811ddf1d..dea7faa488 100644 --- a/price_service/server/README.md +++ b/price_service/server/README.md @@ -35,7 +35,7 @@ both the price service and spy. To run the mainnet docker compose file run the following command: ``` -docker-compose -f docker-compose.mainnet.yaml up +docker compose -f docker-compose.mainnet.yaml up ``` Now your own instance of the price service is up and running! Running the following command should give you the Pyth price of ETH/USD :