/
cli.js
87 lines (82 loc) · 2.17 KB
/
cli.js
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
79
80
81
82
83
84
85
86
87
var ask = require('./ask');
var Toolchain = require('./toolchain');
var toolchain = null;
var loop = async () => {
if (!toolchain) {
var network = await ask('network:');
try {
toolchain = new Toolchain(network);
} catch (err) {
console.log(err.message);
process.exit();
}
}
var command = await ask('>>>');
try {
switch(command) {
case 'create':
console.log(await toolchain.createAddress());
break;
case 'lookupt':
console.log(await toolchain.tx(await ask('txid:')));
break;
case 'lookupa':
case 'inspect':
await toolchain.inspect(await ask('address?'));
break;
case 'send':
var hex = await toolchain.send(
await ask('sender address:'),
await ask('sender secret:'),
await ask('recipient address:'),
parseFloat(await ask('amount:'))
);
if ((await ask('broadcast?')).startsWith('y')) {
console.log(await toolchain.broadcast(hex));
} else {
console.log(hex);
}
break;
case 'drain':
var hex = await toolchain.drain(
await ask('draining address:'),
await ask('draining secret:'),
await ask('recipient address:'),
);
if ((await ask('broadcast?')).startsWith('y')) {
console.log(await toolchain.broadcast(hex));
} else {
console.log(hex);
}
break;
case 'consolidate':
var hex = await toolchain.consolidate(
await ask('address:'),
await ask('secret:'),
);
if ((await ask('broadcast?')).startsWith('y')) {
console.log(await toolchain.broadcast(hex));
} else {
console.log(hex);
}
break;
case 'broadcast':
console.log(await toolchain.broadcast(await ask('hex:')));
break;
case 'cl':
case 'clear':
process.stdout.write('\033c');
break;
case 'q':
case 'quit':
console.log('bye');
process.exit();
default:
console.log('what?');
}
} catch(err) {
console.log(err.message);
}
loop();
}
loop();