2929from .config_setting_scp_timing import ConfigSettingSCPTiming
3030from .contract_cost_params import ContractCostParams
3131from .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
3236from .state_archival_settings import StateArchivalSettings
3337from .uint32 import Uint32
3438from .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