Skip to content

Commit 4629f68

Browse files
authored
Add receive time to the price service (#360)
* Add receive time to the price service * Bump version to 2.1.0
1 parent 3eb2bea commit 4629f68

File tree

9 files changed

+32
-22
lines changed

9 files changed

+32
-22
lines changed

third_party/pyth/p2w-sdk/js/package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

third_party/pyth/p2w-sdk/js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"dependencies": {
4343
"@certusone/wormhole-sdk": "0.2.1",
4444
"@improbable-eng/grpc-web-node-http-transport": "^0.14.1",
45-
"@pythnetwork/pyth-sdk-js": "^1.0.0"
45+
"@pythnetwork/pyth-sdk-js": "^1.1.0"
4646
},
4747
"bugs": {
4848
"url": "https://github.com/pyth-network/pyth-crosschain/issues"

third_party/pyth/price-service/package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

third_party/pyth/price-service/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pythnetwork/pyth-price-service",
3-
"version": "2.0.0",
3+
"version": "2.1.0",
44
"description": "Pyth Price Service",
55
"main": "index.js",
66
"scripts": {
@@ -28,10 +28,10 @@
2828
"typescript": "^4.3.5"
2929
},
3030
"dependencies": {
31-
"@pythnetwork/p2w-sdk-js": "file:../p2w-sdk/js",
3231
"@certusone/wormhole-sdk": "^0.1.4",
3332
"@certusone/wormhole-spydk": "^0.0.1",
34-
"@pythnetwork/pyth-sdk-js": "^1.0.0",
33+
"@pythnetwork/p2w-sdk-js": "file:../p2w-sdk/js",
34+
"@pythnetwork/pyth-sdk-js": "^1.1.0",
3535
"@types/cors": "^2.8.12",
3636
"@types/express": "^4.17.13",
3737
"@types/morgan": "^1.9.3",

third_party/pyth/price-service/src/__tests__/rest.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ function dummyPriceInfoPair(
4343
seqNum,
4444
vaaBytes: Buffer.from(vaa, "hex").toString("binary"),
4545
emitterChainId: 0,
46+
priceServiceReceiveTime: 0,
4647
},
4748
];
4849
}

third_party/pyth/price-service/src/__tests__/ws.test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { HexString, PriceFeed } from "@pythnetwork/pyth-sdk-js";
22
import { Server } from "http";
3+
import { number } from "joi";
34
import { WebSocket, WebSocketServer } from "ws";
45
import { sleep } from "../helpers";
56
import { PriceInfo, PriceStore } from "../listen";
@@ -21,12 +22,14 @@ function expandTo64Len(id: string): string {
2122
function dummyPriceMetadata(
2223
attestationTime: number,
2324
emitterChainId: number,
24-
seqNum: number
25+
seqNum: number,
26+
priceServiceReceiveTime: number
2527
): any {
2628
return {
2729
attestation_time: attestationTime,
2830
emitter_chain: emitterChainId,
2931
sequence_number: seqNum,
32+
price_service_receive_time: priceServiceReceiveTime,
3033
};
3134
}
3235

@@ -41,6 +44,7 @@ function dummyPriceInfo(
4144
emitterChainId: dummyPriceMetadataValue.emitter_chain,
4245
priceFeed: dummyPriceFeed(id),
4346
vaaBytes: Buffer.from(vaa, "hex").toString("binary"),
47+
priceServiceReceiveTime: dummyPriceMetadataValue.price_service_receive_time,
4448
};
4549
}
4650

@@ -92,7 +96,7 @@ async function createSocketClient(): Promise<[WebSocket, any[]]> {
9296
}
9397

9498
beforeAll(async () => {
95-
priceMetadata = dummyPriceMetadata(0, 0, 0);
99+
priceMetadata = dummyPriceMetadata(0, 0, 0, 0);
96100
priceInfos = [
97101
dummyPriceInfo(expandTo64Len("abcd"), "a1b2c3d4", priceMetadata),
98102
dummyPriceInfo(expandTo64Len("ef01"), "a1b2c3d4", priceMetadata),

third_party/pyth/price-service/src/listen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export type PriceInfo = {
3232
attestationTime: TimestampInSec;
3333
priceFeed: PriceFeed;
3434
emitterChainId: number;
35+
priceServiceReceiveTime: number;
3536
};
3637

3738
export interface PriceStore {
@@ -198,6 +199,7 @@ export class Listener implements PriceStore {
198199
attestationTime: priceAttestation.attestationTime,
199200
priceFeed,
200201
emitterChainId: parsedVAA.emitter_chain,
202+
priceServiceReceiveTime: Math.floor(new Date().getTime() / 1000),
201203
};
202204
this.priceFeedVaaMap.set(key, priceInfo);
203205

third_party/pyth/price-service/src/rest.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ export class RestAPI {
179179
emitter_chain: latestPriceInfo.emitterChainId,
180180
attestation_time: latestPriceInfo.attestationTime,
181181
sequence_number: latestPriceInfo.seqNum,
182+
price_service_receive_time:
183+
latestPriceInfo.priceServiceReceiveTime,
182184
},
183185
});
184186
} else {

third_party/pyth/price-service/src/ws.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ export class WebSocketAPI {
109109
emitter_chain: priceInfo.emitterChainId,
110110
attestation_time: priceInfo.attestationTime,
111111
sequence_number: priceInfo.seqNum,
112+
price_service_receive_time: priceInfo.priceServiceReceiveTime,
112113
},
113114
},
114115
}

0 commit comments

Comments
 (0)