Skip to content

Commit c60cbea

Browse files
committed
Fix example/history.py
1 parent e03352b commit c60cbea

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

example/history.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
for e in pxsol.rpc.get_signatures_for_address(args.addr, {'limit': args.limit}):
2121
tx_meta = pxsol.rpc.get_transaction(e['signature'], {'encoding': 'base64'})
2222
tx_byte = bytearray(base64.b64decode(tx_meta['transaction'][0]))
23-
tx_verb = tx_byte[1 + tx_byte[0] * 64]
23+
tx_verb = pxsol.core.TransactionClassify.version(tx_byte)
2424
match tx_verb:
25-
case 0x00:
26-
tx = pxsol.core.Transaction.serialize_decode(tx_byte)
27-
print(tx)
2825
case 0x80:
2926
tx = pxsol.core.TransactionV0.serialize_decode(tx_byte)
3027
print(tx)
28+
case _:
29+
tx = pxsol.core.Transaction.serialize_decode(tx_byte)
30+
print(tx)

pxsol/core.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,17 @@ def sign(self, prikey: typing.List[PriKey]) -> None:
565565
self.signatures.append(k.sign(m))
566566

567567

568+
class TransactionClassify:
569+
# Classify the transaction version type.
570+
571+
@classmethod
572+
def version(cls, data: bytearray) -> int:
573+
# Get the transaction version type.
574+
# - n <= 0x7f: transaction legacy
575+
# - n == 0x80: transaction v0
576+
return data[1 + data[0] * 64]
577+
578+
568579
class TokenExtensionMetadataPointer:
569580
# Metadata pointer extension data for mints.
570581

0 commit comments

Comments
 (0)