forked from aeternity/aepp-sdk-js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaewallet.js
More file actions
executable file
·53 lines (47 loc) · 2.12 KB
/
aewallet.js
File metadata and controls
executable file
·53 lines (47 loc) · 2.12 KB
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
#!/usr/bin/env node
// # Simple AE Token Spending Script
//
// This script shows how to use the `Wallet` module from the SDK to send AE to
// other addresses.
/*
* ISC License (ISC)
* Copyright (c) 2018 aeternity developers
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
'use strict'
// We'll need the main client module `Ae` in the `Universal` flavor from the SDK.
const { Universal: Ae, Node } = require('@aeternity/aepp-sdk')
const program = require('commander')
async function spend (receiver, amount, { host, debug }) {
// This code is relatively simple: We create the Ae client asynchronously and
// invoke the spend method on it. Passing in `process` from nodejs will make
// the implementation grab the key pair from the `WALLET_PRIV` and
// `WALLET_PUB` environment variables, respectively.
const node = await Node({ url: host })
Ae({ nodes: [{ name: 'local', instance: node }], debug, process })
.then(ae => ae.spend(parseInt(amount), receiver))
.then(tx => console.log('Transaction mined', tx))
.catch(e => console.log(e.message))
}
// ## Command Line Interface
//
// The `commander` library provides maximum command line parsing convenience.
program.version('0.1.0')
program
.command('spend <receiver> <amount>')
.option('-H, --host [hostname]', 'Node to connect to', 'http://localhost:3013')
.option('--debug', 'Switch on debugging')
.action(spend)
program.parse(process.argv)
if (program.args.length === 0) program.help()