UNPKG

@aeternity/aepp-sdk

Version:
125 lines (54 loc) 2.17 kB
```js #!/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. ```js /* * 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. ```js const { Universal: Ae } = require('@aeternity/aepp-sdk') const program = require('commander') 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. ```js Ae({ url: host, 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. ```js 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() ```