@@ -2,13 +2,11 @@ import WebSocket from "isomorphic-ws";
2
2
import { dummyLogger , type Logger } from "ts-log" ;
3
3
4
4
import {
5
- BINARY_UPDATE_FORMAT_MAGIC ,
6
- EVM_FORMAT_MAGIC ,
7
- PARSED_FORMAT_MAGIC ,
5
+ BINARY_UPDATE_FORMAT_MAGIC_LE ,
6
+ FORMAT_MAGICS_LE ,
8
7
type ParsedPayload ,
9
8
type Request ,
10
9
type Response ,
11
- SOLANA_FORMAT_MAGIC_BE ,
12
10
} from "./protocol.js" ;
13
11
import { WebSocketPool } from "./socket/websocket-pool.js" ;
14
12
@@ -17,6 +15,8 @@ export type BinaryResponse = {
17
15
evm ?: Buffer | undefined ;
18
16
solana ?: Buffer | undefined ;
19
17
parsed ?: ParsedPayload | undefined ;
18
+ leEcdsa ?: Buffer | undefined ;
19
+ leUnsigned ?: Buffer | undefined ;
20
20
} ;
21
21
export type JsonOrBinaryResponse =
22
22
| {
@@ -64,9 +64,9 @@ export class PythLazerClient {
64
64
} ) ;
65
65
} else if ( Buffer . isBuffer ( data ) ) {
66
66
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 ( ) ;
68
68
pos += UINT32_NUM_BYTES ;
69
- if ( magic != BINARY_UPDATE_FORMAT_MAGIC ) {
69
+ if ( magic != BINARY_UPDATE_FORMAT_MAGIC_LE ) {
70
70
throw new Error ( "binary update format magic mismatch" ) ;
71
71
}
72
72
// TODO: some uint64 values may not be representable as Number.
@@ -81,12 +81,16 @@ export class PythLazerClient {
81
81
pos += UINT16_NUM_BYTES ;
82
82
const magic = data
83
83
. subarray ( pos , pos + UINT32_NUM_BYTES )
84
- . readUint32BE ( ) ;
85
- if ( magic == EVM_FORMAT_MAGIC ) {
84
+ . readUint32LE ( ) ;
85
+ if ( magic == FORMAT_MAGICS_LE . EVM ) {
86
86
value . evm = data . subarray ( pos , pos + len ) ;
87
- } else if ( magic == SOLANA_FORMAT_MAGIC_BE ) {
87
+ } else if ( magic == FORMAT_MAGICS_LE . SOLANA ) {
88
88
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 ) {
90
94
value . parsed = JSON . parse (
91
95
data . subarray ( pos + UINT32_NUM_BYTES , pos + len ) . toString ( )
92
96
) as ParsedPayload ;
0 commit comments