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
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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user