diff --git a/derive_client/_clients/rest/async_http/account.py b/derive_client/_clients/rest/async_http/account.py index b7be400f..67911726 100644 --- a/derive_client/_clients/rest/async_http/account.py +++ b/derive_client/_clients/rest/async_http/account.py @@ -27,9 +27,11 @@ PrivateRegisterScopedSessionKeyResultSchema, PrivateSessionKeysParamsSchema, PrivateSessionKeysResultSchema, + PrivateSetCancelOnDisconnectParamsSchema, PublicBuildRegisterSessionKeyTxResultSchema, PublicDeregisterSessionKeyResultSchema, PublicRegisterSessionKeyResultSchema, + Result, Scope, ) @@ -342,5 +344,15 @@ async def get(self) -> PrivateGetAccountResultSchema: result = await self._private_api.rpc.get_account(params) return result + async def set_cancel_on_disconnect(self, enabled: bool = True) -> Result: + """Enables cancel on disconnect for the account.""" + + params = PrivateSetCancelOnDisconnectParamsSchema( + wallet=self.address, + enabled=enabled, + ) + result = await self._private_api.rpc.set_cancel_on_disconnect(params) + return result + def __repr__(self) -> str: return f"<{self.__class__.__qualname__}({self.address}) object at {hex(id(self))}>" diff --git a/derive_client/_clients/rest/http/account.py b/derive_client/_clients/rest/http/account.py index 99105fc1..20b2de95 100644 --- a/derive_client/_clients/rest/http/account.py +++ b/derive_client/_clients/rest/http/account.py @@ -27,9 +27,11 @@ PrivateRegisterScopedSessionKeyResultSchema, PrivateSessionKeysParamsSchema, PrivateSessionKeysResultSchema, + PrivateSetCancelOnDisconnectParamsSchema, PublicBuildRegisterSessionKeyTxResultSchema, PublicDeregisterSessionKeyResultSchema, PublicRegisterSessionKeyResultSchema, + Result, Scope, ) @@ -342,5 +344,15 @@ def get(self) -> PrivateGetAccountResultSchema: result = self._private_api.rpc.get_account(params) return result + def set_cancel_on_disconnect(self, enabled: bool = True) -> Result: + """Enables cancel on disconnect for the account.""" + + params = PrivateSetCancelOnDisconnectParamsSchema( + wallet=self.address, + enabled=enabled, + ) + result = self._private_api.rpc.set_cancel_on_disconnect(params) + return result + def __repr__(self) -> str: return f"<{self.__class__.__qualname__}({self.address}) object at {hex(id(self))}>" diff --git a/docs/reference/accounts/lightaccount.md b/docs/reference/accounts/lightaccount.md index e45f4d07..5dc4150a 100644 --- a/docs/reference/accounts/lightaccount.md +++ b/docs/reference/accounts/lightaccount.md @@ -5,7 +5,7 @@ show_root_heading: false heading_level: 2 members_order: source - members: ['__init__', 'address', 'build_register_session_key_tx', 'create_subaccount', 'deregister_session_key', 'edit_session_key', 'from_api', 'get', 'get_all_portfolios', 'get_subaccounts', 'refresh', 'register_scoped_session_key', 'register_session_key', 'session_keys', 'state'] + members: ['__init__', 'address', 'build_register_session_key_tx', 'create_subaccount', 'deregister_session_key', 'edit_session_key', 'from_api', 'get', 'get_all_portfolios', 'get_subaccounts', 'refresh', 'register_scoped_session_key', 'register_session_key', 'session_keys', 'set_cancel_on_disconnect', 'state'] show_bases: false show_source: false inherited_members: false diff --git a/tests/test_clients/test_rest/test_async_http/test_account.py b/tests/test_clients/test_rest/test_async_http/test_account.py index 6edfec09..1fa70c6c 100644 --- a/tests/test_clients/test_rest/test_async_http/test_account.py +++ b/tests/test_clients/test_rest/test_async_http/test_account.py @@ -12,6 +12,7 @@ PrivateGetSubaccountsResultSchema, PrivateRegisterScopedSessionKeyResultSchema, PrivateSessionKeysResultSchema, + Result, Scope, ) @@ -68,3 +69,9 @@ async def test_account_get(client_admin_wallet): async def test_account_create_subaccount(client_admin_wallet): create_subaccount_result = await client_admin_wallet.account.create_subaccount() assert isinstance(create_subaccount_result, PrivateCreateSubaccountResultSchema) + + +@pytest.mark.asyncio +async def test_account_set_cancel_on_disconnect(client_admin_wallet): + result = await client_admin_wallet.account.set_cancel_on_disconnect() + assert isinstance(result, Result) diff --git a/tests/test_clients/test_rest/test_http/test_account.py b/tests/test_clients/test_rest/test_http/test_account.py index 2c0a767b..3aa8d62d 100644 --- a/tests/test_clients/test_rest/test_http/test_account.py +++ b/tests/test_clients/test_rest/test_http/test_account.py @@ -12,6 +12,7 @@ PrivateGetSubaccountsResultSchema, PrivateRegisterScopedSessionKeyResultSchema, PrivateSessionKeysResultSchema, + Result, Scope, ) @@ -61,3 +62,8 @@ def test_account_get(client_admin_wallet): def test_account_create_subaccount(client_admin_wallet): create_subaccount_result = client_admin_wallet.account.create_subaccount() assert isinstance(create_subaccount_result, PrivateCreateSubaccountResultSchema) + + +def test_account_set_cancel_on_disconnect(client_admin_wallet): + result = client_admin_wallet.account.set_cancel_on_disconnect() + assert isinstance(result, Result) diff --git a/tests/test_clients/test_websocket/test_account.py b/tests/test_clients/test_websocket/test_account.py index 6edfec09..1fa70c6c 100644 --- a/tests/test_clients/test_websocket/test_account.py +++ b/tests/test_clients/test_websocket/test_account.py @@ -12,6 +12,7 @@ PrivateGetSubaccountsResultSchema, PrivateRegisterScopedSessionKeyResultSchema, PrivateSessionKeysResultSchema, + Result, Scope, ) @@ -68,3 +69,9 @@ async def test_account_get(client_admin_wallet): async def test_account_create_subaccount(client_admin_wallet): create_subaccount_result = await client_admin_wallet.account.create_subaccount() assert isinstance(create_subaccount_result, PrivateCreateSubaccountResultSchema) + + +@pytest.mark.asyncio +async def test_account_set_cancel_on_disconnect(client_admin_wallet): + result = await client_admin_wallet.account.set_cancel_on_disconnect() + assert isinstance(result, Result)