From df50b14b046df137691a0bfd3d53a68d150db26d Mon Sep 17 00:00:00 2001 From: aitbc Date: Sat, 25 Apr 2026 20:09:26 +0200 Subject: [PATCH] fix: prioritize top-level value field over payload.amount in transaction submission Added logic to use tx_data.value when present instead of payload.amount for transaction amount field. Updated comment to clarify payload.amount is a fallback value. --- apps/blockchain-node/src/aitbc_chain/rpc/router.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/blockchain-node/src/aitbc_chain/rpc/router.py b/apps/blockchain-node/src/aitbc_chain/rpc/router.py index 5be7f98a..255e3b57 100755 --- a/apps/blockchain-node/src/aitbc_chain/rpc/router.py +++ b/apps/blockchain-node/src/aitbc_chain/rpc/router.py @@ -301,7 +301,7 @@ async def submit_transaction(tx_data: TransactionRequest) -> Dict[str, Any]: tx_data_dict = { "from": tx_data.sender, "to": tx_data.payload.get("to"), # Get to from payload (required field) - "amount": tx_data.payload.get("amount", 0), # Get amount from payload + "amount": tx_data.payload.get("amount", 0), # Get amount from payload (fallback) "fee": tx_data.fee, "nonce": tx_data.nonce, "payload": tx_data.payload, @@ -309,6 +309,10 @@ async def submit_transaction(tx_data: TransactionRequest) -> Dict[str, Any]: "signature": tx_data.sig } + # If value is provided at top level, use it instead of payload.amount + if hasattr(tx_data, 'value') and tx_data.value is not None: + tx_data_dict["amount"] = tx_data.value + tx_data_dict = _normalize_transaction_data(tx_data_dict, chain_id) _validate_transaction_admission(tx_data_dict, mempool)