fix: restructure transaction with nested payload and proper signing
Some checks failed
CLI Tests / test-cli (push) Has been cancelled
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled

- Move transaction data into nested payload object
- Sign only the payload, not the entire request
- Submit as {"payload": {...}, "signature": "..."}
- Matches RPC server expectation for nested structure
- Ensures Ed25519 signature is properly included
This commit is contained in:
aitbc
2026-05-26 14:16:13 +02:00
parent fe1525cc05
commit f70b7e691c

View File

@@ -103,22 +103,26 @@ def _send_transaction_impl(from_wallet: str, to_address: str, amount: float, fee
except Exception:
actual_nonce = 0
# Create transaction
# Match RPC server schema (TransactionRequest in apps/blockchain-node/src/aitbc_chain/rpc/transactions.py)
transaction = {
# Create transaction payload
# RPC expects nested structure: {"payload": {...}, "signature": "..."}
transaction_payload = {
"type": "TRANSFER",
"from": sender_address,
"to": to_address,
"amount": int(amount),
"fee": int(fee),
"nonce": actual_nonce,
"payload": {}
"nonce": actual_nonce
}
# Sign transaction
message = json.dumps(transaction, sort_keys=True).encode()
# Sign transaction payload
message = json.dumps(transaction_payload, sort_keys=True).encode()
signature = private_key.sign(message)
transaction["signature"] = signature.hex()
# Submit to blockchain with nested structure
transaction = {
"payload": transaction_payload,
"signature": signature.hex()
}
# Submit to blockchain
try: