@@ -2,13 +2,11 @@ import WebSocket from "isomorphic-ws";
22import { dummyLogger , type Logger } from "ts-log" ;
33
44import {
5- BINARY_UPDATE_FORMAT_MAGIC ,
6- EVM_FORMAT_MAGIC ,
7- PARSED_FORMAT_MAGIC ,
5+ BINARY_UPDATE_FORMAT_MAGIC_LE ,
6+ FORMAT_MAGICS_LE ,
87 type ParsedPayload ,
98 type Request ,
109 type Response ,
11- SOLANA_FORMAT_MAGIC_BE ,
1210} from "./protocol.js" ;
1311import { WebSocketPool } from "./socket/websocket-pool.js" ;
1412
@@ -17,6 +15,8 @@ export type BinaryResponse = {
1715 evm ?: Buffer | undefined ;
1816 solana ?: Buffer | undefined ;
1917 parsed ?: ParsedPayload | undefined ;
18+ leEcdsa ?: Buffer | undefined ;
19+ leUnsigned ?: Buffer | undefined ;
2020} ;
2121export type JsonOrBinaryResponse =
2222 | {
@@ -64,9 +64,9 @@ export class PythLazerClient {
6464 } ) ;
6565 } else if ( Buffer . isBuffer ( data ) ) {
6666 let pos = 0 ;
67- const magic = data . subarray ( pos , pos + UINT32_NUM_BYTES ) . readUint32BE ( ) ;
67+ const magic = data . subarray ( pos , pos + UINT32_NUM_BYTES ) . readUint32LE ( ) ;
6868 pos += UINT32_NUM_BYTES ;
69- if ( magic != BINARY_UPDATE_FORMAT_MAGIC ) {
69+ if ( magic != BINARY_UPDATE_FORMAT_MAGIC_LE ) {
7070 throw new Error ( "binary update format magic mismatch" ) ;
7171 }
7272 // TODO: some uint64 values may not be representable as Number.
@@ -81,12 +81,16 @@ export class PythLazerClient {
8181 pos += UINT16_NUM_BYTES ;
8282 const magic = data
8383 . subarray ( pos , pos + UINT32_NUM_BYTES )
84- . readUint32BE ( ) ;
85- if ( magic == EVM_FORMAT_MAGIC ) {
84+ . readUint32LE ( ) ;
85+ if ( magic == FORMAT_MAGICS_LE . EVM ) {
8686 value . evm = data . subarray ( pos , pos + len ) ;
87- } else if ( magic == SOLANA_FORMAT_MAGIC_BE ) {
87+ } else if ( magic == FORMAT_MAGICS_LE . SOLANA ) {
8888 value . solana = data . subarray ( pos , pos + len ) ;
89- } else if ( magic == PARSED_FORMAT_MAGIC ) {
89+ } else if ( magic == FORMAT_MAGICS_LE . LE_ECDSA ) {
90+ value . leEcdsa = data . subarray ( pos , pos + len ) ;
91+ } else if ( magic == FORMAT_MAGICS_LE . LE_UNSIGNED ) {
92+ value . leUnsigned = data . subarray ( pos , pos + len ) ;
93+ } else if ( magic == FORMAT_MAGICS_LE . JSON ) {
9094 value . parsed = JSON . parse (
9195 data . subarray ( pos + UINT32_NUM_BYTES , pos + len ) . toString ( )
9296 ) as ParsedPayload ;
0 commit comments