Skip to content

Commit 3a89a7e

Browse files
committed
fix
1 parent 5496edd commit 3a89a7e

5 files changed

Lines changed: 163 additions & 54 deletions

File tree

stellar_sdk/xdr/encoded_ledger_key.py

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,41 @@
44

55
import base64
66
import json
7-
from enum import IntEnum
8-
from typing import List, Optional, TYPE_CHECKING
7+
98
from xdrlib3 import Packer, Unpacker
10-
from .base import DEFAULT_XDR_MAX_DEPTH, Integer, UnsignedInteger, Float, Double, Hyper, UnsignedHyper, Boolean, String, Opaque
11-
from .constants import *
129

13-
__all__ = ['EncodedLedgerKey']
10+
from .base import DEFAULT_XDR_MAX_DEPTH, Opaque
11+
12+
__all__ = ["EncodedLedgerKey"]
13+
14+
1415
class EncodedLedgerKey:
1516
"""
1617
XDR Source Code::
1718
1819
typedef opaque EncodedLedgerKey<>;
1920
"""
21+
2022
def __init__(self, encoded_ledger_key: bytes) -> None:
2123
_expect_max_length = 4294967295
2224
if encoded_ledger_key and len(encoded_ledger_key) > _expect_max_length:
23-
raise ValueError(f"The maximum length of `encoded_ledger_key` should be {_expect_max_length}, but got {len(encoded_ledger_key)}.")
25+
raise ValueError(
26+
f"The maximum length of `encoded_ledger_key` should be {_expect_max_length}, but got {len(encoded_ledger_key)}."
27+
)
2428
self.encoded_ledger_key = encoded_ledger_key
29+
2530
def pack(self, packer: Packer) -> None:
2631
Opaque(self.encoded_ledger_key, 4294967295, False).pack(packer)
32+
2733
@classmethod
28-
def unpack(cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH) -> EncodedLedgerKey:
34+
def unpack(
35+
cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH
36+
) -> EncodedLedgerKey:
2937
if depth_limit <= 0:
3038
raise ValueError("Maximum decoding depth reached")
3139
encoded_ledger_key = Opaque.unpack(unpacker, 4294967295, False)
3240
return cls(encoded_ledger_key)
41+
3342
def to_xdr_bytes(self) -> bytes:
3443
packer = Packer()
3544
self.pack(packer)
@@ -59,16 +68,21 @@ def to_json(self) -> str:
5968
@classmethod
6069
def from_json(cls, json_str: str) -> EncodedLedgerKey:
6170
return cls.from_json_dict(json.loads(json_str))
71+
6272
def to_json_dict(self):
6373
return Opaque.to_json_dict(self.encoded_ledger_key)
74+
6475
@classmethod
6576
def from_json_dict(cls, json_value: str) -> EncodedLedgerKey:
6677
return cls(Opaque.from_json_dict(json_value))
78+
6779
def __hash__(self):
6880
return hash((self.encoded_ledger_key,))
81+
6982
def __eq__(self, other: object):
7083
if not isinstance(other, self.__class__):
7184
return NotImplemented
7285
return self.encoded_ledger_key == other.encoded_ledger_key
86+
7387
def __repr__(self):
7488
return f"<EncodedLedgerKey [encoded_ledger_key={self.encoded_ledger_key}]>"

stellar_sdk/xdr/freeze_bypass_txs.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44

55
import base64
66
import json
7-
from enum import IntEnum
8-
from typing import List, Optional, TYPE_CHECKING
7+
from typing import List
8+
99
from xdrlib3 import Packer, Unpacker
10-
from .base import DEFAULT_XDR_MAX_DEPTH, Integer, UnsignedInteger, Float, Double, Hyper, UnsignedHyper, Boolean, String, Opaque
11-
from .constants import *
1210

11+
from .base import DEFAULT_XDR_MAX_DEPTH
1312
from .hash import Hash
14-
__all__ = ['FreezeBypassTxs']
13+
14+
__all__ = ["FreezeBypassTxs"]
15+
16+
1517
class FreezeBypassTxs:
1618
"""
1719
XDR Source Code::
@@ -20,32 +22,42 @@ class FreezeBypassTxs:
2022
Hash txHashes<>;
2123
};
2224
"""
25+
2326
def __init__(
2427
self,
2528
tx_hashes: List[Hash],
2629
) -> None:
2730
_expect_max_length = 4294967295
2831
if tx_hashes and len(tx_hashes) > _expect_max_length:
29-
raise ValueError(f"The maximum length of `tx_hashes` should be {_expect_max_length}, but got {len(tx_hashes)}.")
32+
raise ValueError(
33+
f"The maximum length of `tx_hashes` should be {_expect_max_length}, but got {len(tx_hashes)}."
34+
)
3035
self.tx_hashes = tx_hashes
36+
3137
def pack(self, packer: Packer) -> None:
3238
packer.pack_uint(len(self.tx_hashes))
3339
for tx_hashes_item in self.tx_hashes:
3440
tx_hashes_item.pack(packer)
41+
3542
@classmethod
36-
def unpack(cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH) -> FreezeBypassTxs:
43+
def unpack(
44+
cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH
45+
) -> FreezeBypassTxs:
3746
if depth_limit <= 0:
3847
raise ValueError("Maximum decoding depth reached")
3948
length = unpacker.unpack_uint()
4049
_remaining = len(unpacker.get_buffer()) - unpacker.get_position()
4150
if _remaining < length:
42-
raise ValueError(f"tx_hashes length {length} exceeds remaining input length {_remaining}")
51+
raise ValueError(
52+
f"tx_hashes length {length} exceeds remaining input length {_remaining}"
53+
)
4354
tx_hashes = []
4455
for _ in range(length):
4556
tx_hashes.append(Hash.unpack(unpacker, depth_limit - 1))
4657
return cls(
4758
tx_hashes=tx_hashes,
4859
)
60+
4961
def to_xdr_bytes(self) -> bytes:
5062
packer = Packer()
5163
self.pack(packer)
@@ -75,24 +87,29 @@ def to_json(self) -> str:
7587
@classmethod
7688
def from_json(cls, json_str: str) -> FreezeBypassTxs:
7789
return cls.from_json_dict(json.loads(json_str))
90+
7891
def to_json_dict(self) -> dict:
7992
return {
8093
"tx_hashes": [item.to_json_dict() for item in self.tx_hashes],
8194
}
95+
8296
@classmethod
8397
def from_json_dict(cls, json_dict: dict) -> FreezeBypassTxs:
8498
tx_hashes = [Hash.from_json_dict(item) for item in json_dict["tx_hashes"]]
8599
return cls(
86100
tx_hashes=tx_hashes,
87101
)
102+
88103
def __hash__(self):
89104
return hash((self.tx_hashes,))
105+
90106
def __eq__(self, other: object):
91107
if not isinstance(other, self.__class__):
92108
return NotImplemented
93109
return self.tx_hashes == other.tx_hashes
110+
94111
def __repr__(self):
95112
out = [
96-
f'tx_hashes={self.tx_hashes}',
113+
f"tx_hashes={self.tx_hashes}",
97114
]
98115
return f"<FreezeBypassTxs [{', '.join(out)}]>"

stellar_sdk/xdr/freeze_bypass_txs_delta.py

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44

55
import base64
66
import json
7-
from enum import IntEnum
8-
from typing import List, Optional, TYPE_CHECKING
7+
from typing import List
8+
99
from xdrlib3 import Packer, Unpacker
10-
from .base import DEFAULT_XDR_MAX_DEPTH, Integer, UnsignedInteger, Float, Double, Hyper, UnsignedHyper, Boolean, String, Opaque
11-
from .constants import *
1210

11+
from .base import DEFAULT_XDR_MAX_DEPTH
1312
from .hash import Hash
14-
__all__ = ['FreezeBypassTxsDelta']
13+
14+
__all__ = ["FreezeBypassTxsDelta"]
15+
16+
1517
class FreezeBypassTxsDelta:
1618
"""
1719
XDR Source Code::
@@ -21,48 +23,62 @@ class FreezeBypassTxsDelta:
2123
Hash removeTxs<>;
2224
};
2325
"""
26+
2427
def __init__(
2528
self,
2629
add_txs: List[Hash],
2730
remove_txs: List[Hash],
2831
) -> None:
2932
_expect_max_length = 4294967295
3033
if add_txs and len(add_txs) > _expect_max_length:
31-
raise ValueError(f"The maximum length of `add_txs` should be {_expect_max_length}, but got {len(add_txs)}.")
34+
raise ValueError(
35+
f"The maximum length of `add_txs` should be {_expect_max_length}, but got {len(add_txs)}."
36+
)
3237
_expect_max_length = 4294967295
3338
if remove_txs and len(remove_txs) > _expect_max_length:
34-
raise ValueError(f"The maximum length of `remove_txs` should be {_expect_max_length}, but got {len(remove_txs)}.")
39+
raise ValueError(
40+
f"The maximum length of `remove_txs` should be {_expect_max_length}, but got {len(remove_txs)}."
41+
)
3542
self.add_txs = add_txs
3643
self.remove_txs = remove_txs
44+
3745
def pack(self, packer: Packer) -> None:
3846
packer.pack_uint(len(self.add_txs))
3947
for add_txs_item in self.add_txs:
4048
add_txs_item.pack(packer)
4149
packer.pack_uint(len(self.remove_txs))
4250
for remove_txs_item in self.remove_txs:
4351
remove_txs_item.pack(packer)
52+
4453
@classmethod
45-
def unpack(cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH) -> FreezeBypassTxsDelta:
54+
def unpack(
55+
cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH
56+
) -> FreezeBypassTxsDelta:
4657
if depth_limit <= 0:
4758
raise ValueError("Maximum decoding depth reached")
4859
length = unpacker.unpack_uint()
4960
_remaining = len(unpacker.get_buffer()) - unpacker.get_position()
5061
if _remaining < length:
51-
raise ValueError(f"add_txs length {length} exceeds remaining input length {_remaining}")
62+
raise ValueError(
63+
f"add_txs length {length} exceeds remaining input length {_remaining}"
64+
)
5265
add_txs = []
5366
for _ in range(length):
5467
add_txs.append(Hash.unpack(unpacker, depth_limit - 1))
5568
length = unpacker.unpack_uint()
5669
_remaining = len(unpacker.get_buffer()) - unpacker.get_position()
5770
if _remaining < length:
58-
raise ValueError(f"remove_txs length {length} exceeds remaining input length {_remaining}")
71+
raise ValueError(
72+
f"remove_txs length {length} exceeds remaining input length {_remaining}"
73+
)
5974
remove_txs = []
6075
for _ in range(length):
6176
remove_txs.append(Hash.unpack(unpacker, depth_limit - 1))
6277
return cls(
6378
add_txs=add_txs,
6479
remove_txs=remove_txs,
6580
)
81+
6682
def to_xdr_bytes(self) -> bytes:
6783
packer = Packer()
6884
self.pack(packer)
@@ -92,11 +108,13 @@ def to_json(self) -> str:
92108
@classmethod
93109
def from_json(cls, json_str: str) -> FreezeBypassTxsDelta:
94110
return cls.from_json_dict(json.loads(json_str))
111+
95112
def to_json_dict(self) -> dict:
96113
return {
97114
"add_txs": [item.to_json_dict() for item in self.add_txs],
98115
"remove_txs": [item.to_json_dict() for item in self.remove_txs],
99116
}
117+
100118
@classmethod
101119
def from_json_dict(cls, json_dict: dict) -> FreezeBypassTxsDelta:
102120
add_txs = [Hash.from_json_dict(item) for item in json_dict["add_txs"]]
@@ -105,15 +123,23 @@ def from_json_dict(cls, json_dict: dict) -> FreezeBypassTxsDelta:
105123
add_txs=add_txs,
106124
remove_txs=remove_txs,
107125
)
126+
108127
def __hash__(self):
109-
return hash((self.add_txs, self.remove_txs,))
128+
return hash(
129+
(
130+
self.add_txs,
131+
self.remove_txs,
132+
)
133+
)
134+
110135
def __eq__(self, other: object):
111136
if not isinstance(other, self.__class__):
112137
return NotImplemented
113138
return self.add_txs == other.add_txs and self.remove_txs == other.remove_txs
139+
114140
def __repr__(self):
115141
out = [
116-
f'add_txs={self.add_txs}',
117-
f'remove_txs={self.remove_txs}',
142+
f"add_txs={self.add_txs}",
143+
f"remove_txs={self.remove_txs}",
118144
]
119145
return f"<FreezeBypassTxsDelta [{', '.join(out)}]>"

stellar_sdk/xdr/frozen_ledger_keys.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44

55
import base64
66
import json
7-
from enum import IntEnum
8-
from typing import List, Optional, TYPE_CHECKING
7+
from typing import List
8+
99
from xdrlib3 import Packer, Unpacker
10-
from .base import DEFAULT_XDR_MAX_DEPTH, Integer, UnsignedInteger, Float, Double, Hyper, UnsignedHyper, Boolean, String, Opaque
11-
from .constants import *
1210

11+
from .base import DEFAULT_XDR_MAX_DEPTH
1312
from .encoded_ledger_key import EncodedLedgerKey
14-
__all__ = ['FrozenLedgerKeys']
13+
14+
__all__ = ["FrozenLedgerKeys"]
15+
16+
1517
class FrozenLedgerKeys:
1618
"""
1719
XDR Source Code::
@@ -20,32 +22,42 @@ class FrozenLedgerKeys:
2022
EncodedLedgerKey keys<>;
2123
};
2224
"""
25+
2326
def __init__(
2427
self,
2528
keys: List[EncodedLedgerKey],
2629
) -> None:
2730
_expect_max_length = 4294967295
2831
if keys and len(keys) > _expect_max_length:
29-
raise ValueError(f"The maximum length of `keys` should be {_expect_max_length}, but got {len(keys)}.")
32+
raise ValueError(
33+
f"The maximum length of `keys` should be {_expect_max_length}, but got {len(keys)}."
34+
)
3035
self.keys = keys
36+
3137
def pack(self, packer: Packer) -> None:
3238
packer.pack_uint(len(self.keys))
3339
for keys_item in self.keys:
3440
keys_item.pack(packer)
41+
3542
@classmethod
36-
def unpack(cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH) -> FrozenLedgerKeys:
43+
def unpack(
44+
cls, unpacker: Unpacker, depth_limit: int = DEFAULT_XDR_MAX_DEPTH
45+
) -> FrozenLedgerKeys:
3746
if depth_limit <= 0:
3847
raise ValueError("Maximum decoding depth reached")
3948
length = unpacker.unpack_uint()
4049
_remaining = len(unpacker.get_buffer()) - unpacker.get_position()
4150
if _remaining < length:
42-
raise ValueError(f"keys length {length} exceeds remaining input length {_remaining}")
51+
raise ValueError(
52+
f"keys length {length} exceeds remaining input length {_remaining}"
53+
)
4354
keys = []
4455
for _ in range(length):
4556
keys.append(EncodedLedgerKey.unpack(unpacker, depth_limit - 1))
4657
return cls(
4758
keys=keys,
4859
)
60+
4961
def to_xdr_bytes(self) -> bytes:
5062
packer = Packer()
5163
self.pack(packer)
@@ -75,24 +87,29 @@ def to_json(self) -> str:
7587
@classmethod
7688
def from_json(cls, json_str: str) -> FrozenLedgerKeys:
7789
return cls.from_json_dict(json.loads(json_str))
90+
7891
def to_json_dict(self) -> dict:
7992
return {
8093
"keys": [item.to_json_dict() for item in self.keys],
8194
}
95+
8296
@classmethod
8397
def from_json_dict(cls, json_dict: dict) -> FrozenLedgerKeys:
8498
keys = [EncodedLedgerKey.from_json_dict(item) for item in json_dict["keys"]]
8599
return cls(
86100
keys=keys,
87101
)
102+
88103
def __hash__(self):
89104
return hash((self.keys,))
105+
90106
def __eq__(self, other: object):
91107
if not isinstance(other, self.__class__):
92108
return NotImplemented
93109
return self.keys == other.keys
110+
94111
def __repr__(self):
95112
out = [
96-
f'keys={self.keys}',
113+
f"keys={self.keys}",
97114
]
98115
return f"<FrozenLedgerKeys [{', '.join(out)}]>"

0 commit comments

Comments
 (0)