-
Notifications
You must be signed in to change notification settings - Fork 0
/
checkCreate.ts
78 lines (69 loc) · 2.01 KB
/
checkCreate.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { XrplClient } from "xrpl-client";
import { utils, derive, sign } from "xrpl-accountlib";
const main = async () => {
const client = new XrplClient("wss://s.altnet.rippletest.net:51233/");
if (process.argv.length < 5) {
console.log("create check to destination account");
console.log(
"Usage: node dist/checkCreate <source FamilySeed> <destination: r-address> <XRP amount> [sequence no]"
);
console.log(
"if sequence no is empty, the sequence no queried from blockchain is used."
);
process.exit(1);
}
const account = derive.familySeed(process.argv[2]);
var data = await client.send({
id: 1,
command: "account_info",
account: account.address,
strict: true,
});
if (data.error != null) {
console.log("Error: ", data.result.error_message);
process.exit(1);
}
console.log("account info: ", data);
var sequence = data.account_data.Sequence;
if (process.argv.length >= 6) {
sequence = parseInt(process.argv[5]);
}
var { id, signedTransaction } = sign(
{
TransactionType: "CheckCreate",
Account: account.address,
Destination: process.argv[3],
SendMax: String(parseFloat(process.argv[4]) * 1_000_000),
InvoiceID:
"6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
DestinationTag: 1,
// TicketSequence: 38486526,
Sequence: sequence,
Fee: "12",
},
account
);
console.log("id ", id);
console.log("signedTransaction ", signedTransaction);
var result = await client.send({
command: "submit",
tx_blob: signedTransaction,
});
console.log("submission ", result);
console.log("waiting for finality");
// await sleep(10000);
const subscribeData = await client.send({
command: "subscribe",
accounts: [process.argv[3]],
});
client.on("transaction", (data) => {
console.log("transaction result: ", data);
process.exit(1);
});
};
function sleep(ms: number) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
main();