Sending Transaction
Any operation contracting with AIXCHAIN network is a transaction. A transaction can be Aixchain transfer, ARC-10 transfer, freezing & unfreezing, voting, Etc.
The routine for sending
A normal routine for sending a transaction is:
Create -> Sign -> Broadcast -> (wait) -> Lookup and get receipt
Aixchain SDK defines the same protobufs include all RPC APIs and transaction related classes, also, Aixchain SDK wraps the functions in AixcClient.class.
An simple example
public static void sendTrx()
{
System.out.println("============= TRC transfer =============");
AixcClient client = new AixcClient("172.104.51.182:16669","172.104.51.182:16669","private key");
try {
TransactionExtention transactionExtention = client.transfer("414203485a535a4072C9FBFaADDfe2A010AD0BcdB0", "41a9c46373aEB4749E3CE45acA242b027A46f486f9", 20_000_000);
Transaction signedTxn = client.signTransaction(transactionExtention);
String ret = client.broadcastTransaction(signedTxn);
System.out.println("======== Result ========\n" + ret.toString());
}
catch (Exception e) {
System.out.println("error: " + e);
}
}
result:
public static void sendTrx()
============= TRC transfer =============
transactionExtention
transaction {
raw_data {
ref_block_bytes: "\355<"
ref_block_hash: "\325\003\3051\266\232\236\025"
expiration: 1641471042000
contract {
type: TransferContract
parameter {
type_url: "type.googleapis.com/protocol.TransferContract"
value: "\n\025AB\003HZSZ@r\311\373\372\255\337\342\240\020\255\v\315\260\022\025A\251\304cs\256\264t\236<\344Z\312$+\002zF\364\206\371\030\200\332\304\t"
}
}
timestamp: 1641470984417
}
}
txid: "\266\360\025\326\270<O\364j\vla$D\315I\314\207{\334\363\276\331:6[\200\216A\227\361%"
result {
result: true
}
signedTxn
raw_data {
ref_block_bytes: "\355<"
ref_block_hash: "\325\003\3051\266\232\236\025"
expiration: 1641471042000
contract {
type: TransferContract
parameter {
type_url: "type.googleapis.com/protocol.TransferContract"
value: "\n\025AB\003HZSZ@r\311\373\372\255\337\342\240\020\255\v\315\260\022\025A\251\304cs\256\264t\236<\344Z\312$+\002zF\364\206\371\030\200\332\304\t"
}
}
timestamp: 1641470984417
}
signature: "\304\3763\"\265\257y\203\376\237\372\304\342\215>\247\\wj\326\355\345\232\022\216\006\233F4\356\350\322$I\\\312v\330\r\177\256\003\372\253\311\3151\373kF\212Lm\266&f\3506L\234\270\355\224\256\000"
======== Result ========
b6f015d6b83c4ff46a0b6c612444cd49cc877bdcf3bed93a365b808e4197f125
In Aixchain SDK, the routine is:
Create a AixcClient object with your private key.
Obtain a TransactionExtention object from AixcClient.transfer().
Call AixcClient.signTransaction()to sign the transaction with your private key binding with the AixcClient object.
Call AixcClient
.
broadcastTransaction() to broadcast the transaction and get a TransactionReturn
Last updated