From 938116bb005fd66514628cbb1b1c77a41ba0fe89 Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 9 Mar 2026 17:29:42 -0500 Subject: [PATCH 1/2] contract helpers --- tplus/evm/contracts.py | 12 ++++++++++++ tplus/model/withdrawal.py | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/tplus/evm/contracts.py b/tplus/evm/contracts.py index 406bf17..14aeb37 100644 --- a/tplus/evm/contracts.py +++ b/tplus/evm/contracts.py @@ -27,6 +27,7 @@ from ape.contracts.base import ContractContainer, ContractInstance from ape.managers.project import LocalProject + from tplus.model.withdrawal import WithdrawalDelayParameters from tplus.utils.user import User CHAIN_MAP = { @@ -431,6 +432,17 @@ def set_asset( } return self.contract.setAssetData(data, sender=sender) + def set_pending_withdrawal_delay_parameters( + self, params: "WithdrawalDelayParameters | dict", **kwargs + ) -> "ReceiptAPI": + if not isinstance(params, dict): + params = params.model_dump(mode="python", by_alias=True) + + return self.contract.setPendingWithdrawalDelayParameters(params, **kwargs) + + def apply_pending_withdrawal_delay_parameters(self, **kwargs) -> "ReceiptAPI": + return self.contract.applyPendingWithdrawalDelayParameters(**kwargs) + class DepositVault(TPlusContract): NAME = "DepositVault" diff --git a/tplus/model/withdrawal.py b/tplus/model/withdrawal.py index 7dbbec6..080f879 100644 --- a/tplus/model/withdrawal.py +++ b/tplus/model/withdrawal.py @@ -1,7 +1,7 @@ from typing import TYPE_CHECKING from eth_pydantic_types.hex import HexInt -from pydantic import BaseModel, field_serializer +from pydantic import BaseModel, Field, field_serializer from tplus.model.asset_identifier import AssetIdentifier from tplus.model.types import ChainID, UserPublicKey @@ -57,3 +57,10 @@ def create_signed( def signing_payload(self) -> str: return self.inner.signing_payload() + + +class WithdrawalDelayParameters(BaseModel): + min_delay: int = Field(alias="minDelay") + max_delay: int = Field(alias="maxDelay") + delay_clamps: list[int] = Field(alias="delayClamps") + delay_values: list[int] = Field(alias="delayValues") From 3581a2fba5426da3421e1d97d46d6340677bfb88 Mon Sep 17 00:00:00 2001 From: antazoey Date: Mon, 9 Mar 2026 17:31:16 -0500 Subject: [PATCH 2/2] update client method --- tplus/client/clearingengine/assetregistry.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tplus/client/clearingengine/assetregistry.py b/tplus/client/clearingengine/assetregistry.py index 9c5984e..95ddac0 100644 --- a/tplus/client/clearingengine/assetregistry.py +++ b/tplus/client/clearingengine/assetregistry.py @@ -62,3 +62,9 @@ async def get_fee_account(self) -> str: """ account = await self._get("fee-account") return f"{account}" + + async def update_withdrawal_delay_parameters(self): + """ + Request that the clearing engine updates its registered withdrawal delay parameters. + """ + await self._post("withdrawal-delay-params/update")