karmachain v0.5.4
karmachain
Package for work with Karma blockchain
Setup
This library can be obtained through npm:
# npm install karmachainUsage
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.
Initialization
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)Public API
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")Private API
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)Some examples:
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)
}Karma in REPL
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 classkarmachainpackagelogin, function to create object of classKarmagenerateKeys, to generateKeys from login and passwordaccounts, is analogKarma.accountsassets, is analogKarma.assetsdb, is analogKarma.dbhistory, is analogKarma.hostorynetwork, is analogKarma.networkfees, is analogKarma.fees
For example
$ karma
> assets["krm"].then(console.log)Shot request
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>'Contributing
Bug reports and pull requests are welcome on GitHub.
License
The package is available as open source under the terms of the MIT License.
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago