Package for work with Karma blockchain
This library can be obtained through npm:
# npm install karmachain
karmachain package contain class Karma
:
const Karma = require("karmachain")
Kamra
contains static methods for work with public API, and dynamic methods for work with wallet API.
Example initialization:
Karma.init('wss://node.karma.red')
After initialization, you can connect:
Karma.connect()
Karma.connect()
return Promise, resolve it when connection consists.
You may to subscribe to connection event:
Karma.subscribe('connected',functionToCall)
After connection, you may call public api methods. For example Karma.db
return wrapper for database API:
Karma.db.get_objects(["1.3.0"])
Kamra.db.list_assets("krm",100)
Karma.history
is wrapper for history API:
Karma.history.get_account_history("<account_id>", "1.11.0", 10, "1.11.0")
If you want access to private API, you need create object from Karma
class:
let account = new Karma("accountName","privateActiveKey")
or
let account = Karma.login("accountName","password")
account
have transfer
method:
await account.transfer(toName, assetSymbol, amount, memo)
const Karma = require('karmachain')
KEY = 'privateActiveKey'
Karma.init('wss://node.karma.red')
Karma.subscribe('connected', startAfterConnected)
async function startAfterConnected() {
let bot = new Karma('test-acc',KEY)
let iam = await Karma.accounts['test-acc'];
let info = await Karma.db.get_full_accounts([iam.id],false);
console.log(info)
}
If you install karmachan
-package in global storage, you may start karma
exec script:
$ karma
>|
This command try autoconnect to mainnet karmachain. If you want to connect on testnet, try this:
$ karma --testnet
>|
It is nodejs REPL with several variables:
karma
, main classkarmachain
packagelogin
, function to create object of classKarma
generateKeys
, to generateKeys from login and passwordaccounts
, is analogKarma.accounts
assets
, is analogKarma.assets
db
, is analogKarma.db
history
, is analogKarma.hostory
network
, is analogKarma.network
fees
, is analogKarma.fees
$ karma
> assets["krm"].then(console.log)
If need call only one request, you may use --account
, --asset
, --block
, --object
, --history
, --balance
or --transfer
keys in command-line:
$ karma --account <'name' or 'id' or 'last number in id'>
{
"id": "1.2.5992",
"membership_expiration_date": "1970-01-01T00:00:00",
"registrar": "1.2.37",
"referrer": "1.2.21",
...
}
$ karma --asset <'symbol' or 'id' or 'last number in id'>
{
"id": "1.3.0",
"symbol": "KRM",
"precision": 5,
...
}
$ karma --block [<number>]
block_num: 4636380
{
"previous": "0046bedba1317d146dd6afbccff94412d76bf094",
"timestamp": "2018-10-01T13:09:40",
"witness": "1.6.41",
...
}
$ karma --object 1.2.3
{
"id": "1.2.3",
"membership_expiration_date": "1969-12-31T23:59:59",
"registrar": "1.2.3",
"referrer": "1.2.3",
...
}
$ karma --history <account> [<limit>] [<start>] [<stop>]
[
{
"id": "1.11.98179",
"op": [
0,
...
}]
$ karma --balance <account or accounts> [<asset or assets>]
account
KRM: 1234.567
$ karma --transfer <from> <to> <amount> <asset> [--key]
Transfered <amount> <asset> from '<from>' to '<to>' with memo '<memo>'
Bug reports and pull requests are welcome on GitHub.
The package is available as open source under the terms of the MIT License.