Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions tplus/client/clearingengine/assetregistry.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
12 changes: 12 additions & 0 deletions tplus/evm/contracts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down Expand Up @@ -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"
Expand Down
9 changes: 8 additions & 1 deletion tplus/model/withdrawal.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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")