Skip to content

Commit 66e41cb

Browse files
authored
chore: bump stellar-xdr to v26.0. (#1149)
1 parent f80135e commit 66e41cb

24 files changed

Lines changed: 956 additions & 18 deletions

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ XDRS = xdr/Stellar-SCP.x \
3535
xdr/Stellar-types.x
3636

3737
# Stellar XDR definitions repository commit hash
38-
XDR_COMMIT = 0a621ec7811db000a60efae5b35f78dee3aa2533
38+
XDR_COMMIT = cff714a5ebaaaf2dac343b3546c2df73f0b7a36e
3939

4040
# Command prefix for running Python tools with uv
4141
UV_RUN_CMD = uv run --frozen --all-extras

docs/en/api.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,6 +1402,10 @@ Duration
14021402
--------
14031403
.. autoclass:: stellar_sdk.xdr.duration.Duration
14041404

1405+
EncodedLedgerKey
1406+
----------------
1407+
.. autoclass:: stellar_sdk.xdr.encoded_ledger_key.EncodedLedgerKey
1408+
14051409
EncryptedBody
14061410
-------------
14071411
.. autoclass:: stellar_sdk.xdr.encrypted_body.EncryptedBody
@@ -1474,6 +1478,22 @@ FloodDemand
14741478
-----------
14751479
.. autoclass:: stellar_sdk.xdr.flood_demand.FloodDemand
14761480

1481+
FreezeBypassTxs
1482+
---------------
1483+
.. autoclass:: stellar_sdk.xdr.freeze_bypass_txs.FreezeBypassTxs
1484+
1485+
FreezeBypassTxsDelta
1486+
--------------------
1487+
.. autoclass:: stellar_sdk.xdr.freeze_bypass_txs_delta.FreezeBypassTxsDelta
1488+
1489+
FrozenLedgerKeys
1490+
----------------
1491+
.. autoclass:: stellar_sdk.xdr.frozen_ledger_keys.FrozenLedgerKeys
1492+
1493+
FrozenLedgerKeysDelta
1494+
---------------------
1495+
.. autoclass:: stellar_sdk.xdr.frozen_ledger_keys_delta.FrozenLedgerKeysDelta
1496+
14771497
GeneralizedTransactionSet
14781498
-------------------------
14791499
.. autoclass:: stellar_sdk.xdr.generalized_transaction_set.GeneralizedTransactionSet

stellar_sdk/xdr/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
from .diagnostic_event import *
122122
from .dont_have import *
123123
from .duration import *
124+
from .encoded_ledger_key import *
124125
from .encrypted_body import *
125126
from .end_sponsoring_future_reserves_result import *
126127
from .end_sponsoring_future_reserves_result_code import *
@@ -138,6 +139,10 @@
138139
from .fee_bump_transaction_inner_tx import *
139140
from .flood_advert import *
140141
from .flood_demand import *
142+
from .freeze_bypass_txs import *
143+
from .freeze_bypass_txs_delta import *
144+
from .frozen_ledger_keys import *
145+
from .frozen_ledger_keys_delta import *
141146
from .generalized_transaction_set import *
142147
from .hash import *
143148
from .hash_id_preimage import *

stellar_sdk/xdr/claim_claimable_balance_result.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ class ClaimClaimableBalanceResult:
2626
case CLAIM_CLAIMABLE_BALANCE_LINE_FULL:
2727
case CLAIM_CLAIMABLE_BALANCE_NO_TRUST:
2828
case CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED:
29+
case CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN:
2930
void;
3031
};
3132
"""
@@ -65,6 +66,11 @@ def pack(self, packer: Packer) -> None:
6566
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED
6667
):
6768
return
69+
if (
70+
self.code
71+
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN
72+
):
73+
return
6874
raise ValueError("Invalid code.")
6975

7076
@classmethod
@@ -92,6 +98,11 @@ def unpack(
9298
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED
9399
):
94100
return cls(code=code)
101+
if (
102+
code
103+
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN
104+
):
105+
return cls(code=code)
95106
raise ValueError("Invalid code.")
96107

97108
def to_xdr_bytes(self) -> bytes:
@@ -152,6 +163,11 @@ def to_json_dict(self):
152163
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED
153164
):
154165
return "not_authorized"
166+
if (
167+
self.code
168+
== ClaimClaimableBalanceResultCode.CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN
169+
):
170+
return "trustline_frozen"
155171
raise ValueError(f"Unknown code in ClaimClaimableBalanceResult: {self.code}")
156172

157173
@classmethod
@@ -163,9 +179,10 @@ def from_json_dict(cls, json_value: str) -> ClaimClaimableBalanceResult:
163179
"line_full",
164180
"no_trust",
165181
"not_authorized",
182+
"trustline_frozen",
166183
):
167184
raise ValueError(
168-
f"Unexpected string '{json_value}' for ClaimClaimableBalanceResult, must be one of: success, does_not_exist, cannot_claim, line_full, no_trust, not_authorized"
185+
f"Unexpected string '{json_value}' for ClaimClaimableBalanceResult, must be one of: success, does_not_exist, cannot_claim, line_full, no_trust, not_authorized, trustline_frozen"
169186
)
170187
code = ClaimClaimableBalanceResultCode.from_json_dict(json_value)
171188
return cls(code=code)

stellar_sdk/xdr/claim_claimable_balance_result_code.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
-3: "line_full",
1616
-4: "no_trust",
1717
-5: "not_authorized",
18+
-6: "trustline_frozen",
1819
}
1920
_CLAIM_CLAIMABLE_BALANCE_RESULT_CODE_REVERSE_MAP = {
2021
"success": 0,
@@ -23,6 +24,7 @@
2324
"line_full": -3,
2425
"no_trust": -4,
2526
"not_authorized": -5,
27+
"trustline_frozen": -6,
2628
}
2729
__all__ = ["ClaimClaimableBalanceResultCode"]
2830

@@ -38,7 +40,8 @@ class ClaimClaimableBalanceResultCode(IntEnum):
3840
CLAIM_CLAIMABLE_BALANCE_CANNOT_CLAIM = -2,
3941
CLAIM_CLAIMABLE_BALANCE_LINE_FULL = -3,
4042
CLAIM_CLAIMABLE_BALANCE_NO_TRUST = -4,
41-
CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED = -5
43+
CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED = -5,
44+
CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN = -6
4245
};
4346
"""
4447

@@ -48,6 +51,7 @@ class ClaimClaimableBalanceResultCode(IntEnum):
4851
CLAIM_CLAIMABLE_BALANCE_LINE_FULL = -3
4952
CLAIM_CLAIMABLE_BALANCE_NO_TRUST = -4
5053
CLAIM_CLAIMABLE_BALANCE_NOT_AUTHORIZED = -5
54+
CLAIM_CLAIMABLE_BALANCE_TRUSTLINE_FROZEN = -6
5155

5256
def pack(self, packer: Packer) -> None:
5357
packer.pack_int(self.value)

stellar_sdk/xdr/config_setting_entry.py

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@
2929
from .config_setting_scp_timing import ConfigSettingSCPTiming
3030
from .contract_cost_params import ContractCostParams
3131
from .eviction_iterator import EvictionIterator
32+
from .freeze_bypass_txs import FreezeBypassTxs
33+
from .freeze_bypass_txs_delta import FreezeBypassTxsDelta
34+
from .frozen_ledger_keys import FrozenLedgerKeys
35+
from .frozen_ledger_keys_delta import FrozenLedgerKeysDelta
3236
from .state_archival_settings import StateArchivalSettings
3337
from .uint32 import Uint32
3438
from .uint64 import Uint64
@@ -76,6 +80,14 @@ class ConfigSettingEntry:
7680
ConfigSettingContractLedgerCostExtV0 contractLedgerCostExt;
7781
case CONFIG_SETTING_SCP_TIMING:
7882
ConfigSettingSCPTiming contractSCPTiming;
83+
case CONFIG_SETTING_FROZEN_LEDGER_KEYS:
84+
FrozenLedgerKeys frozenLedgerKeys;
85+
case CONFIG_SETTING_FROZEN_LEDGER_KEYS_DELTA:
86+
FrozenLedgerKeysDelta frozenLedgerKeysDelta;
87+
case CONFIG_SETTING_FREEZE_BYPASS_TXS:
88+
FreezeBypassTxs freezeBypassTxs;
89+
case CONFIG_SETTING_FREEZE_BYPASS_TXS_DELTA:
90+
FreezeBypassTxsDelta freezeBypassTxsDelta;
7991
};
8092
"""
8193

@@ -105,6 +117,10 @@ def __init__(
105117
] = None,
106118
contract_ledger_cost_ext: Optional[ConfigSettingContractLedgerCostExtV0] = None,
107119
contract_scp_timing: Optional[ConfigSettingSCPTiming] = None,
120+
frozen_ledger_keys: Optional[FrozenLedgerKeys] = None,
121+
frozen_ledger_keys_delta: Optional[FrozenLedgerKeysDelta] = None,
122+
freeze_bypass_txs: Optional[FreezeBypassTxs] = None,
123+
freeze_bypass_txs_delta: Optional[FreezeBypassTxsDelta] = None,
108124
) -> None:
109125
_expect_max_length = 4294967295
110126
if (
@@ -132,6 +148,10 @@ def __init__(
132148
self.contract_parallel_compute = contract_parallel_compute
133149
self.contract_ledger_cost_ext = contract_ledger_cost_ext
134150
self.contract_scp_timing = contract_scp_timing
151+
self.frozen_ledger_keys = frozen_ledger_keys
152+
self.frozen_ledger_keys_delta = frozen_ledger_keys_delta
153+
self.freeze_bypass_txs = freeze_bypass_txs
154+
self.freeze_bypass_txs_delta = freeze_bypass_txs_delta
135155

136156
def pack(self, packer: Packer) -> None:
137157
self.config_setting_id.pack(packer)
@@ -260,6 +280,32 @@ def pack(self, packer: Packer) -> None:
260280
raise ValueError("contract_scp_timing should not be None.")
261281
self.contract_scp_timing.pack(packer)
262282
return
283+
if self.config_setting_id == ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS:
284+
if self.frozen_ledger_keys is None:
285+
raise ValueError("frozen_ledger_keys should not be None.")
286+
self.frozen_ledger_keys.pack(packer)
287+
return
288+
if (
289+
self.config_setting_id
290+
== ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS_DELTA
291+
):
292+
if self.frozen_ledger_keys_delta is None:
293+
raise ValueError("frozen_ledger_keys_delta should not be None.")
294+
self.frozen_ledger_keys_delta.pack(packer)
295+
return
296+
if self.config_setting_id == ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS:
297+
if self.freeze_bypass_txs is None:
298+
raise ValueError("freeze_bypass_txs should not be None.")
299+
self.freeze_bypass_txs.pack(packer)
300+
return
301+
if (
302+
self.config_setting_id
303+
== ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS_DELTA
304+
):
305+
if self.freeze_bypass_txs_delta is None:
306+
raise ValueError("freeze_bypass_txs_delta should not be None.")
307+
self.freeze_bypass_txs_delta.pack(packer)
308+
return
263309
raise ValueError("Invalid config_setting_id.")
264310

265311
@classmethod
@@ -426,6 +472,33 @@ def unpack(
426472
config_setting_id=config_setting_id,
427473
contract_scp_timing=contract_scp_timing,
428474
)
475+
if config_setting_id == ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS:
476+
frozen_ledger_keys = FrozenLedgerKeys.unpack(unpacker, depth_limit - 1)
477+
return cls(
478+
config_setting_id=config_setting_id,
479+
frozen_ledger_keys=frozen_ledger_keys,
480+
)
481+
if config_setting_id == ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS_DELTA:
482+
frozen_ledger_keys_delta = FrozenLedgerKeysDelta.unpack(
483+
unpacker, depth_limit - 1
484+
)
485+
return cls(
486+
config_setting_id=config_setting_id,
487+
frozen_ledger_keys_delta=frozen_ledger_keys_delta,
488+
)
489+
if config_setting_id == ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS:
490+
freeze_bypass_txs = FreezeBypassTxs.unpack(unpacker, depth_limit - 1)
491+
return cls(
492+
config_setting_id=config_setting_id, freeze_bypass_txs=freeze_bypass_txs
493+
)
494+
if config_setting_id == ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS_DELTA:
495+
freeze_bypass_txs_delta = FreezeBypassTxsDelta.unpack(
496+
unpacker, depth_limit - 1
497+
)
498+
return cls(
499+
config_setting_id=config_setting_id,
500+
freeze_bypass_txs_delta=freeze_bypass_txs_delta,
501+
)
429502
raise ValueError("Invalid config_setting_id.")
430503

431504
def to_xdr_bytes(self) -> bytes:
@@ -568,6 +641,28 @@ def to_json_dict(self):
568641
if self.config_setting_id == ConfigSettingID.CONFIG_SETTING_SCP_TIMING:
569642
assert self.contract_scp_timing is not None
570643
return {"scp_timing": self.contract_scp_timing.to_json_dict()}
644+
if self.config_setting_id == ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS:
645+
assert self.frozen_ledger_keys is not None
646+
return {"frozen_ledger_keys": self.frozen_ledger_keys.to_json_dict()}
647+
if (
648+
self.config_setting_id
649+
== ConfigSettingID.CONFIG_SETTING_FROZEN_LEDGER_KEYS_DELTA
650+
):
651+
assert self.frozen_ledger_keys_delta is not None
652+
return {
653+
"frozen_ledger_keys_delta": self.frozen_ledger_keys_delta.to_json_dict()
654+
}
655+
if self.config_setting_id == ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS:
656+
assert self.freeze_bypass_txs is not None
657+
return {"freeze_bypass_txs": self.freeze_bypass_txs.to_json_dict()}
658+
if (
659+
self.config_setting_id
660+
== ConfigSettingID.CONFIG_SETTING_FREEZE_BYPASS_TXS_DELTA
661+
):
662+
assert self.freeze_bypass_txs_delta is not None
663+
return {
664+
"freeze_bypass_txs_delta": self.freeze_bypass_txs_delta.to_json_dict()
665+
}
571666
raise ValueError(
572667
f"Unknown config_setting_id in ConfigSettingEntry: {self.config_setting_id}"
573668
)
@@ -722,6 +817,37 @@ def from_json_dict(cls, json_value: dict) -> ConfigSettingEntry:
722817
config_setting_id=config_setting_id,
723818
contract_scp_timing=contract_scp_timing,
724819
)
820+
if key == "frozen_ledger_keys":
821+
frozen_ledger_keys = FrozenLedgerKeys.from_json_dict(
822+
json_value["frozen_ledger_keys"]
823+
)
824+
return cls(
825+
config_setting_id=config_setting_id,
826+
frozen_ledger_keys=frozen_ledger_keys,
827+
)
828+
if key == "frozen_ledger_keys_delta":
829+
frozen_ledger_keys_delta = FrozenLedgerKeysDelta.from_json_dict(
830+
json_value["frozen_ledger_keys_delta"]
831+
)
832+
return cls(
833+
config_setting_id=config_setting_id,
834+
frozen_ledger_keys_delta=frozen_ledger_keys_delta,
835+
)
836+
if key == "freeze_bypass_txs":
837+
freeze_bypass_txs = FreezeBypassTxs.from_json_dict(
838+
json_value["freeze_bypass_txs"]
839+
)
840+
return cls(
841+
config_setting_id=config_setting_id, freeze_bypass_txs=freeze_bypass_txs
842+
)
843+
if key == "freeze_bypass_txs_delta":
844+
freeze_bypass_txs_delta = FreezeBypassTxsDelta.from_json_dict(
845+
json_value["freeze_bypass_txs_delta"]
846+
)
847+
return cls(
848+
config_setting_id=config_setting_id,
849+
freeze_bypass_txs_delta=freeze_bypass_txs_delta,
850+
)
725851
raise ValueError(f"Unknown key '{key}' for ConfigSettingEntry")
726852

727853
def __hash__(self):
@@ -745,6 +871,10 @@ def __hash__(self):
745871
self.contract_parallel_compute,
746872
self.contract_ledger_cost_ext,
747873
self.contract_scp_timing,
874+
self.frozen_ledger_keys,
875+
self.frozen_ledger_keys_delta,
876+
self.freeze_bypass_txs,
877+
self.freeze_bypass_txs_delta,
748878
)
749879
)
750880

@@ -774,6 +904,10 @@ def __eq__(self, other: object):
774904
and self.contract_parallel_compute == other.contract_parallel_compute
775905
and self.contract_ledger_cost_ext == other.contract_ledger_cost_ext
776906
and self.contract_scp_timing == other.contract_scp_timing
907+
and self.frozen_ledger_keys == other.frozen_ledger_keys
908+
and self.frozen_ledger_keys_delta == other.frozen_ledger_keys_delta
909+
and self.freeze_bypass_txs == other.freeze_bypass_txs
910+
and self.freeze_bypass_txs_delta == other.freeze_bypass_txs_delta
777911
)
778912

779913
def __repr__(self):
@@ -823,4 +957,12 @@ def __repr__(self):
823957
out.append(f"contract_ledger_cost_ext={self.contract_ledger_cost_ext}")
824958
if self.contract_scp_timing is not None:
825959
out.append(f"contract_scp_timing={self.contract_scp_timing}")
960+
if self.frozen_ledger_keys is not None:
961+
out.append(f"frozen_ledger_keys={self.frozen_ledger_keys}")
962+
if self.frozen_ledger_keys_delta is not None:
963+
out.append(f"frozen_ledger_keys_delta={self.frozen_ledger_keys_delta}")
964+
if self.freeze_bypass_txs is not None:
965+
out.append(f"freeze_bypass_txs={self.freeze_bypass_txs}")
966+
if self.freeze_bypass_txs_delta is not None:
967+
out.append(f"freeze_bypass_txs_delta={self.freeze_bypass_txs_delta}")
826968
return f"<ConfigSettingEntry [{', '.join(out)}]>"

0 commit comments

Comments
 (0)