From 18d352f5a4d36e9f1fbf297bb9f5d035d3f7f92d Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Jan 2025 10:59:21 -0800 Subject: [PATCH 1/8] Remove real time from channel options --- lazer/sdk/js/src/protocol.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazer/sdk/js/src/protocol.ts b/lazer/sdk/js/src/protocol.ts index 3f0b699302..13b052a300 100644 --- a/lazer/sdk/js/src/protocol.ts +++ b/lazer/sdk/js/src/protocol.ts @@ -7,7 +7,7 @@ export type PriceFeedProperty = | "bestAskPrice" | "exponent" | "publisherCount"; -export type Channel = "real_time" | "fixed_rate@50ms" | "fixed_rate@200ms"; +export type Channel = "fixed_rate@1ms" | "fixed_rate@50ms" | "fixed_rate@200ms"; export type Request = | { From 32002ecbc9d45f40f2bafc62d9e283e06ae102dd Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Jan 2025 11:01:39 -0800 Subject: [PATCH 2/8] Bump version --- lazer/sdk/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazer/sdk/js/package.json b/lazer/sdk/js/package.json index a55ab34d18..ac165e0b0c 100644 --- a/lazer/sdk/js/package.json +++ b/lazer/sdk/js/package.json @@ -1,6 +1,6 @@ { "name": "@pythnetwork/pyth-lazer-sdk", - "version": "0.3.2", + "version": "0.4.0", "description": "Pyth Lazer SDK", "publishConfig": { "access": "public" From 0de69a0775a8756216c94893b260e91726fc3579 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Jan 2025 12:24:03 -0800 Subject: [PATCH 3/8] Update enums for payload and use newer payload --- lazer/contracts/evm/src/PythLazerLib.sol | 24 ++++++++++++++++++++++-- lazer/contracts/evm/test/PythLazer.t.sol | 4 ++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/lazer/contracts/evm/src/PythLazerLib.sol b/lazer/contracts/evm/src/PythLazerLib.sol index 1d24ebad87..2048d4ed21 100644 --- a/lazer/contracts/evm/src/PythLazerLib.sol +++ b/lazer/contracts/evm/src/PythLazerLib.sol @@ -8,12 +8,14 @@ library PythLazerLib { enum PriceFeedProperty { Price, BestBidPrice, - BestAskPrice + BestAskPrice, + Exponent, + PublisherCount } enum Channel { Invalid, - RealTime, + FixedRate1, FixedRate50, FixedRate200 } @@ -74,6 +76,24 @@ library PythLazerLib { new_pos = pos; } + function parseFeedValueUint16( + bytes calldata update, + uint16 pos + ) public pure returns (uint16 value, uint16 new_pos) { + value = uint16(bytes2(update[pos:pos + 2])); + pos += 2; + new_pos = pos; + } + + function parseFeedValueInt16( + bytes calldata update, + uint16 pos + ) public pure returns (int16 value, uint16 new_pos) { + value = int16(uint16(bytes2(update[pos:pos + 2]))); + pos += 2; + new_pos = pos; + } + function parseFeedValueUint8( bytes calldata update, uint16 pos diff --git a/lazer/contracts/evm/test/PythLazer.t.sol b/lazer/contracts/evm/test/PythLazer.t.sol index 17a6d73043..da31fa69d1 100644 --- a/lazer/contracts/evm/test/PythLazer.t.sol +++ b/lazer/contracts/evm/test/PythLazer.t.sol @@ -34,11 +34,11 @@ contract PythLazerTest is Test { function test_verify() public { // Prepare dummy update and signer - address trustedSigner = 0xEfEf56cD66896f6799A90A4e4d512C330c094e44; + address trustedSigner = 0xb8d50f0bAE75BF6E03c104903d7C3aFc4a6596Da; vm.prank(address(1)); pythLazer.updateTrustedSigner(trustedSigner, 3000000000000000); bytes - memory update = hex"2a22999a577d3cc0202197939d736bc0dcf71b9dde7b9470e4d16fa8e2120c0787a1c0d744d0c39cc372af4d1ecf2d09e84160ca905f3f597d20e2eec144a446a0459ad600001c93c7d3750006240af373971c01010000000201000000000005f5e100"; + memory update = hex"2a22999aed58a242c6d87eb403d70e5e6fa0ea4df23ed63ce26f22f473b9dff4e90f36c80fd1b8805ea3aa341c02cb3a5a0fb57d429594fc2297aa68d722396cd94f6d0901003493c7d37500062cf1e903393801010000000505000000000000503cc5020000000000503cf7010000000000503c9303000104fff6"; uint256 fee = pythLazer.verification_fee(); From 5cb559f6ffb404518375fd46f6ffeb74f50785e9 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Jan 2025 13:12:40 -0800 Subject: [PATCH 4/8] Change example payload --- lazer/contracts/evm/test/PythLazer.t.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazer/contracts/evm/test/PythLazer.t.sol b/lazer/contracts/evm/test/PythLazer.t.sol index da31fa69d1..a658f72e0a 100644 --- a/lazer/contracts/evm/test/PythLazer.t.sol +++ b/lazer/contracts/evm/test/PythLazer.t.sol @@ -38,7 +38,7 @@ contract PythLazerTest is Test { vm.prank(address(1)); pythLazer.updateTrustedSigner(trustedSigner, 3000000000000000); bytes - memory update = hex"2a22999aed58a242c6d87eb403d70e5e6fa0ea4df23ed63ce26f22f473b9dff4e90f36c80fd1b8805ea3aa341c02cb3a5a0fb57d429594fc2297aa68d722396cd94f6d0901003493c7d37500062cf1e903393801010000000505000000000000503cc5020000000000503cf7010000000000503c9303000104fff6"; + memory update = hex"2a22999a9ee4e2a3df5affd0ad8c7c46c96d3b5ef197dd653bedd8f44a4b6b69b767fbc66341e80b80acb09ead98c60d169b9a99657ebada101f447378f227bffbc69d3d01003493c7d37500062cf28659c1e801010000000605000000000005f5e10002000000000000000001000000000000000003000104fff8"; uint256 fee = pythLazer.verification_fee(); From 1cc64d5a16e84025ff1718ca76d96a58dc2072d0 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Jan 2025 15:06:59 -0800 Subject: [PATCH 5/8] Retain real time --- lazer/contracts/evm/src/PythLazerLib.sol | 2 +- lazer/sdk/js/src/protocol.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lazer/contracts/evm/src/PythLazerLib.sol b/lazer/contracts/evm/src/PythLazerLib.sol index 2048d4ed21..3954bb3682 100644 --- a/lazer/contracts/evm/src/PythLazerLib.sol +++ b/lazer/contracts/evm/src/PythLazerLib.sol @@ -15,7 +15,7 @@ library PythLazerLib { enum Channel { Invalid, - FixedRate1, + RealTime, FixedRate50, FixedRate200 } diff --git a/lazer/sdk/js/src/protocol.ts b/lazer/sdk/js/src/protocol.ts index 13b052a300..3f0b699302 100644 --- a/lazer/sdk/js/src/protocol.ts +++ b/lazer/sdk/js/src/protocol.ts @@ -7,7 +7,7 @@ export type PriceFeedProperty = | "bestAskPrice" | "exponent" | "publisherCount"; -export type Channel = "fixed_rate@1ms" | "fixed_rate@50ms" | "fixed_rate@200ms"; +export type Channel = "real_time" | "fixed_rate@50ms" | "fixed_rate@200ms"; export type Request = | { From 2c8c6451648c76163df64a69a8dbeed46de0c133 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Mon, 3 Feb 2025 07:55:45 -0800 Subject: [PATCH 6/8] Reorder properties --- lazer/contracts/evm/src/PythLazerLib.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazer/contracts/evm/src/PythLazerLib.sol b/lazer/contracts/evm/src/PythLazerLib.sol index 3954bb3682..512efa35f7 100644 --- a/lazer/contracts/evm/src/PythLazerLib.sol +++ b/lazer/contracts/evm/src/PythLazerLib.sol @@ -9,8 +9,8 @@ library PythLazerLib { Price, BestBidPrice, BestAskPrice, - Exponent, PublisherCount + Exponent, } enum Channel { From 38dad4a7bf5be4bb91bd8e38193e7f7ad21e9af0 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Mon, 3 Feb 2025 07:56:34 -0800 Subject: [PATCH 7/8] Comma --- lazer/contracts/evm/src/PythLazerLib.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lazer/contracts/evm/src/PythLazerLib.sol b/lazer/contracts/evm/src/PythLazerLib.sol index 512efa35f7..705ddca5ee 100644 --- a/lazer/contracts/evm/src/PythLazerLib.sol +++ b/lazer/contracts/evm/src/PythLazerLib.sol @@ -9,8 +9,8 @@ library PythLazerLib { Price, BestBidPrice, BestAskPrice, - PublisherCount - Exponent, + PublisherCount, + Exponent } enum Channel { From d305a40406985f37c2ada43cbcb6b55658b7e192 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Mon, 3 Feb 2025 09:09:18 -0800 Subject: [PATCH 8/8] Revert update to JS version --- lazer/sdk/js/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lazer/sdk/js/package.json b/lazer/sdk/js/package.json index ac165e0b0c..a55ab34d18 100644 --- a/lazer/sdk/js/package.json +++ b/lazer/sdk/js/package.json @@ -1,6 +1,6 @@ { "name": "@pythnetwork/pyth-lazer-sdk", - "version": "0.4.0", + "version": "0.3.2", "description": "Pyth Lazer SDK", "publishConfig": { "access": "public"