File tree 3 files changed +26
-2
lines changed
3 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -390,9 +390,25 @@ def parse_price_attestation(bytes_):
390
390
}
391
391
392
392
393
+ def is_accumulator_update (vaa , encoding = DEFAULT_VAA_ENCODING ) -> bool :
394
+ """
395
+ This function checks if a given VAA is an accumulator update.
396
+
397
+ Parameters:
398
+ vaa (str): The VAA to check.
399
+ encoding (str, optional): The encoding of the VAA. Defaults to hex.
400
+
401
+ Returns:
402
+ bool: True if the VAA is an accumulator update, False otherwise.
403
+ """
404
+ if encode_vaa_for_chain (vaa , encoding , buffer = True )[:4 ].hex () == ACCUMULATOR_MAGIC :
405
+ return True
406
+ return False
407
+
408
+
393
409
# Referenced from https://github.com/pyth-network/pyth-crosschain/blob/110caed6be3be7885773d2f6070b143cc13fb0ee/price_service/server/src/rest.ts#L139
394
410
def vaa_to_price_infos (vaa , encoding = DEFAULT_VAA_ENCODING ) -> List [PriceInfo ]:
395
- if encode_vaa_for_chain (vaa , encoding , buffer = True )[: 4 ]. hex () == ACCUMULATOR_MAGIC :
411
+ if is_accumulator_update (vaa , encoding ) :
396
412
return extract_price_info_from_accumulator_update (vaa , encoding )
397
413
parsed_vaa = parse_vaa (vaa , encoding )
398
414
batch_attestation = parse_batch_price_attestation (parsed_vaa ["payload" ])
Original file line number Diff line number Diff line change 7
7
8
8
setup (
9
9
name = 'pythclient' ,
10
- version = '0.1.13 ' ,
10
+ version = '0.1.14 ' ,
11
11
packages = ['pythclient' ],
12
12
author = 'Pyth Developers' ,
13
13
Original file line number Diff line number Diff line change 6
6
MerkleUpdate ,
7
7
compress_accumulator_update ,
8
8
encode_vaa_for_chain ,
9
+ is_accumulator_update ,
9
10
parse_accumulator_update ,
10
11
serialize_accumulator_update ,
11
12
vaa_to_price_info ,
36
37
ACCUMULATOR_UPDATE_DATA_SOL_DIFFERENT_VAA = "UE5BVQEAAAADuAEAAAADDQBKFAm5gZxQZ89PDktXvCHe7kD0oYCU0YfEEeMsHJ4IQW8A5g0qe0wESIGKcEcA6OPic12DE1tdp6YARgviIpFGAQH+1Lm+9Kd/9rKx0ExQ8Attr2+clx4Inv5fCUSAmLSoeX85Ozs8YsACeenITjLX5luKSNWgm21Wu9AajvgUSKyDAAJ76AwXmW2pJ2ga2ZpiQERAr6v66VM5Mrvjp5UiewmSbVv/7kf3yM2ARr6WppbBvnwVdpnN/JdQFRomAl9mZS/SAANPCkWipzos+ioWE5Zzk+xO10kmR7sLPWvalGOjqPMjJld8dxfN66QVqYvVIKNdQgyfcKKLEnfw1PKY1lyjPuYjAQSK25cVWNC8akycRKhjawoP0baF9xtbLWnYSAFBgiJjnlHdlXBEHYrJW7mB1b6ALjglMkEXcrCZsRULpWgQtMbyAQs13nvw502cMVFYXB6L82R5NcYyH4Xq4wW1Ra+x86B+ZCRgyvuH+ALP3j1/iA8ObB43eki55h83JINUyPiySTsbAQw1r4gtKmnAmKtK4Ge8e+iJyExww5huK48nqlWQZBBMcxIu0aQZDZO37Ysaa6jbHy6YgvMn1iHzh8reH2vfS/lyAQ1HVCPSzrTtOjF3ZF8BJqGWedNhdnffyvRI0g9EWqQRvXoPwy7w/41jnfKUrxcrhGpRzcNutlbPNN9kPtmUEq5gAA4QwFhqNPqzWy/hY2qp3RGHjV8i9zx4I0aJyOi7NB+1ewmm3yOZk4nvBqizGBtxdFKITNag0OHh4IbO8zON/6vnAA/qBsZEltyzDy/OJnqsX8gyOUm53/pFieXa23lSODPi9mYbwSCTjb03X3bLVjKqrHi71F5+qlbCqer7wfXNzSrgARDIhOeEsgcWUmfKfes/ln9OV4i8XAKQzlDaC4BRUnAO0yIPJZATE3rOq/UcXdHfQUJiI/BBzh+KNZTi7QsvDP1mABFZLX4GkPz92o6eLQro8y1RFNiP1w1yDf0Td7PBtE86ujHwQY3QqCHp2Q9hiVox7go1wDWEG6H0rzOKQfKTC9oyABLd6Fb+2ThyhiFtreyc/0lLmSfi3ZClZiC7eVOvg32ybmNtZWunfYuxojVdM6e3ETeHoZ8Xzsetab3iBKzOInmEAWTxKYEAAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAijllAUFVV1YAAAAAAAWKvXUAACcQ3HvATwZJhOMXUOpsxl3js3cJ2UoBAFUA7w2Lb9os66QdoV1AldHaOSoNL47Qxse8D0z6yMKAtW0AAAAAdZyz4QAAAAAAGzQd////+AAAAABk8SmBAAAAAGTxKYAAAAAAdajBegAAAAAAGDQdCX7POyhhbRE0fZPLbyONUAJ+6eS8CUz89ZmOaX9iCON0AzYTqrcpKZe189sKyhdvV8wZPkdHj8K7sNCWVP77y4K8q0eIHSbEbiAZv3GQxptsAP/yBqn4QmvmKA8tqiNp2ZwyMvTreSVyWhDVPo+acVFaI5WQHw45KwMm3/L7zcEKr8+pzQl8FKfnH1wy3Tjw2hj8sPfq1NHeVttsBEK5SIPSXMgExPoP1vmy7SymxxR8JIM3ug=="
37
38
38
39
40
+ def test_is_accumulator_update ():
41
+ # Test that a price service VAA is not an accumulator update
42
+ assert is_accumulator_update (HEX_VAA , "hex" ) == False
43
+ # Test that an accumulator update VAA is an accumulator update
44
+ assert is_accumulator_update (ACCUMULATOR_UPDATE_DATA_BTC_SAME_VAA , "base64" ) == True
45
+
46
+
39
47
def test_valid_hex_vaa_to_price_info ():
40
48
price_info = vaa_to_price_info (BTC_ID , HEX_VAA )
41
49
assert price_info .seq_num == 558149954
You can’t perform that action at this time.
0 commit comments