From 083f4bd3d827c4358e5c9807a91dbd9c0e666453 Mon Sep 17 00:00:00 2001 From: Stanislav Bezkorovainyi Date: Tue, 5 Oct 2021 10:28:57 +0300 Subject: [PATCH 1/2] Add block to tx result --- zksync_sdk/zksync_provider/transaction.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/zksync_sdk/zksync_provider/transaction.py b/zksync_sdk/zksync_provider/transaction.py index 1db6a5a4..a62d898d 100644 --- a/zksync_sdk/zksync_provider/transaction.py +++ b/zksync_sdk/zksync_provider/transaction.py @@ -2,6 +2,7 @@ from dataclasses import dataclass from enum import Enum, auto from typing import Optional +from zksync_sdk.types.responses import BlockInfo class TransactionStatus(Enum): @@ -14,6 +15,7 @@ class TransactionStatus(Enum): class TransactionResult: status: TransactionStatus fail_reason: str + block: BlockInfo class Transaction: @@ -40,12 +42,12 @@ async def await_committed(self, attempts: Optional[int] = None, attempts_timeout if attempts is not None: attempts -= 1 if "failReason" in transaction_details and transaction_details["failReason"] is not None: - return TransactionResult(TransactionStatus.FAILED, transaction_details['failReason']) + return TransactionResult(TransactionStatus.FAILED, transaction_details['failReason'], transaction_details['block']) if "block" in transaction_details: block = transaction_details["block"] if block is not None and "committed" in block and block["committed"]: - return TransactionResult(TransactionStatus.COMMITTED, "") + return TransactionResult(TransactionStatus.COMMITTED, "", block) if attempts_timeout is not None: await asyncio.sleep(attempts_timeout / 1000) @@ -63,19 +65,19 @@ async def await_verified(self, attempts: Optional[int] = None, attempts_timeout: if attempts is not None: attempts -= 1 if "failReason" in transaction_details and transaction_details["failReason"] is not None: - return TransactionResult(TransactionStatus.FAILED, transaction_details['failReason']) + return TransactionResult(TransactionStatus.FAILED, transaction_details['failReason'], transaction_details['block']) if "block" in transaction_details: block = transaction_details["block"] if block is not None and "committed" in block and block["committed"]: - intermediate_status = TransactionResult(TransactionStatus.COMMITTED, "") + intermediate_status = TransactionResult(TransactionStatus.COMMITTED, "", block) if "block" in transaction_details: block = transaction_details["block"] if block is not None and \ "verified" in block and \ block["verified"]: - return TransactionResult(TransactionStatus.VERIFIED, "") + return TransactionResult(TransactionStatus.VERIFIED, "", block) if attempts_timeout is not None: await asyncio.sleep(attempts_timeout / 1000) From b122da963c01e0e08b8ec8ba45168547ffe0ebb4 Mon Sep 17 00:00:00 2001 From: Stanislav Bezkorovainyi Date: Tue, 5 Oct 2021 11:46:25 +0300 Subject: [PATCH 2/2] optional --- zksync_sdk/zksync_provider/transaction.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zksync_sdk/zksync_provider/transaction.py b/zksync_sdk/zksync_provider/transaction.py index a62d898d..c366f28e 100644 --- a/zksync_sdk/zksync_provider/transaction.py +++ b/zksync_sdk/zksync_provider/transaction.py @@ -15,7 +15,7 @@ class TransactionStatus(Enum): class TransactionResult: status: TransactionStatus fail_reason: str - block: BlockInfo + block: Optional[BlockInfo] class Transaction: