Quranium Chain Transaction Signing
How It Works:
Transaction Creation:
Users input recipient address, amount, and gas fees.
The wallet converts values to hexadecimal and fetches dynamic gas prices from the Quranium node.
SLHDSA Signing:
A 49,856-byte signature is generated using the SLH-DSA algorithm.
The user’s public key is appended to the signature for Quranium-specific verification.
Transaction Structure:
Quranium uses a RLP encoding with 7 fields (nonce, gas price, gas limit, to-address, value, data, and signature+publicKey).
const finalTxFields = [
hexTxData.nonce, // Nonce (transaction count)
hexTxData.gasPrice, // Gas price in Wei
hexTxData.gas, // Gas limit
hexTxData.to, // Recipient address
hexTxData.value, // Amount in Wei
hexTxData.data, // Transaction data (empty for transfers)
sig // Signature + Public Key
];
const rawTx = '0x' + rlp.encode(finalTxFields).toString('hex');
This structure ensures compatibility with Quranium nodes.
Broadcasting:
The signed transaction is sent to the Quranium network for processing.
const response = await axios.post('http://20.19.88.188:8545', {
jsonrpc: '2.0',
method: 'eth_sendRawTransaction',
params: [rawTx], // Raw signed transaction
id: 1,
});
Code Flow Summary
User Input → Transaction Data:
addressTo
,amount
,gasFee
→hexTxData
.
Signing:
hexTxData
→ RLP encode + Keccak-256 →msgHash
→ SLHDSA signature.
Final Transaction:
signature + publicKey
→ RLP encode →rawTx
.
Broadcast:
eth_sendRawTransaction
→ Quranium node.
Last updated