Eosplayer is a bonding layer of eosjs, which is based on eosjs and provides better usability for the application layer. It can be used on both the node.js server and in a browser or Dapp wallet that already has Scatter installed.
frontd releases : https://github.com/bagaking/eosplayer/releases
LICENSE : Apache 2.0
npm run build
or yarn run build
- clone the repo
- cd into the folder
- install http-server :
npm i http-server -g
- serve the play folder :
http-server ./play
- open the test site in your chrome :
http://localhost:8080
by default - try it in your chrome console
or using the online play ground: http://eosplayer.kihand.com/
Doc site:
eosplayer-doc.kihand.pro
or
playground
you can using
help
commond to show api documents on chrome console
there are 4 levels of log
- verbose
- info
- warning
- error
in the initial situation, the level verbose
is closed, and info|warning|error
are opened.
if you would like to disable all level, set the level filter to
'-'
.when enable called, origin setting will be override (not append).
- open specific level of log :
localStorage.debug = 'warning:*,info:*'
- open all :
localStorage.debug = '*'
then, refresh the broswer
DEBUG=error:* node test.js
set DEBUG=error:* & node app.js
$env:DEBUG = "error:*"
const debug = require('debug');
debug.enable('error:*,warning:*,info:*');
(temporary in beta.11) these code should be placed after the require operation of eosplayer.
you can use call methods of eosplayer.chain by cli
install: npm i -g eosplayer
use: eosplayer --help
ERR_TRANSCAL_FAILED
ERR_TRANSFER_FAILED
ERR_TRANSEND_FAILED
{String} get help // get help info of usage
{String} get version // get the version info
{Chain} get chain // get the chain
{Void} eosplayer.event.setEvent(event, fnCallback, context) //listen to a event
{Eos} get eosplayer.eosClient // get eos instance
{Identity} async eosplayer.getIdentity() // get identity
{AccountInfo} async eosplayer.getAccountInfo(account_name = identity.name)
// get account info for any user
{String} async eosplayer.getBalance(account_name = undefined, code = "eosio.token", symbolName = undefined)
// get balance string of a account. ex. "1.0000 EOS", null means that the account dosen't have any token,
{String} async eosplayer.getBalances(account_name = undefined, code = "eosio.token")
// get balances array of a account. ex. ["1.0000 CT"]
{String} async eosplayer.getBalanceAsset(account_name = undefined, code = "eosio.token")
// get balance structure of a account. ex. {val:1, sym:"EOS", decimal:4}
{Tx} async eosplayer.transfer(target, quantity, memo = "")
// transfer tokens to target
{Tx} async eosplayer.transcal(code, quantity, func, ...args)
// send a action of transcal to contract
{Tx} async eosplayer.transget(code, symbol, func, ...args)
// send a action of trancal (quantity value = 0.0001) to contract
{Contract} async eosplayer.contract(code)
// get contract object
{Tx} async eosplayer.call(code, func, jsonData)
// send a action to contract
{Tx} async eosplayer.newAccount (name, activeKey, ownerKey)
// create a account with public key
{Object} async getInfo() // get info of the chain connected
{Object} async getBlock(blockNumOrId) // get specific block of the chain
{Contract} async getContract(code) // get contract
{Object} async getAbi(code) // get abi of contract
{Object} async getTableAbi(code, tableName) // get table abi of contract
{Object} async abiJsonToBin(code, action, args)
{Object} async getAccountInfo(account_name) // get account info of any user
{string} async getPubKey(account_name, authority = "active") // get the first public key of an account
{Array} async getPubKeys(account_name, authority = "active") // get public keys of an account
{string} async recoverSign(signature, message) // recover sign and to the public key
{string} async validateSign (signature, message, account, authority = 'active', accountsPermisionPlugins)
// validate if signed data is signed by a account. it returns the matched public key
{Number} async getActionCount(account_name) // get a account's action count
{Number} async getActionMaxSeq(account_name) // get a account's max action seq
{Array} async getRecentActions(account_name) // get recent actions
{Array} async getActions(account_name, startPos = 0, offset = 0) // get all actions of an account
{Array} async getAllActionsBatch (account_name, cbReceive, startPos = 0, count = 100, concurrent = 10) // get all actions in bulk
{String} async getBalance(account_name, code = "eosio.token", symbolName = undefined) // get balance of specific account
{Array.<String>} async getBalances(account_name, code = "eosio.token") // get all balance of specific account
{Tx} async transfer(account, target, quantity, memo = "", cbError) // the format of account should be {name, authority}
{Tx} async waitTx(txID, maxRound = 12, timeSpanMS = 1009) // check a transaction info, retry once per sec until success
{Tx} async call(code, func, jsonData, ...authorization) // send action to a contract
{Array} async getTable(code, tableName, scope, lower, upper, ...hint) // get all items in a table
{Array} async checkTable(code, tableName, scope, limit = 10, lower_bound = 0, upper_bound = -1, index_position = 1) // check a table
{Array} async checkTableMore(code, tableName, scope, primaryKey, limit = 9999999, lower_bound = 0, upper_bound = -1, index_position = 1)
{Array} async checkTableRange(code, tableName, scope, from, length = 1, index_position = 1) // check range in table
{Object} async checkTableItem(code, tableName, scope, key = 0) // check a item in a table
{Object} async updateAuth(account, permission, parent, threshold, keys, accounts, waits) // update auth
ERR_GET_SCATTER_FAILED
ERR_GET_IDENTITY_FAILED
ERR_LOGOUT_FAILED
{void} eosplayer.switchNetwork(val) // switch network
{void} eosplayer.setNetConf(network_name, conf) // add a network config at runtime
get {Scatter} eosplayer.scatter // get scatter instance
get {Scatter} async getScatterAsync(maxTry = 100) // get scatter instance
get {string} eosplayer.netName // get current network name
get {string} eosplayer.netConf // get current network config
async {Identity} eosplayer.login() // let user allow you using identity
async {void} eosplayer.logout() // return back the identity
async sign(message) // sign a message with current identity
window.eosjs = Eos; /** the eosjs lib @see {@url https://www.npmjs.com/package/eosjs} */
window.eosjs_ecc = Ecc; /** the eosjs-ecc lib @see {@url https://www.npmjs.com/package/eosjs-ecc} */
window.BigNumber = BigNumber; /** big number library @see {@url https://www.npmjs.com/package/bignumber.js} */
window.env = env; /** {isPc} */
window.idb = idb; /** idb lib for browser storage @see {@url https://www.npmjs.com/package/idb } */
window.eosplayer = new ScatterPlayer(networks);
- install eosplayer
npm i eosplayer --save
oryarn add eosplayer
- import eosplayer
import * from 'eosplayer'
orconst Player = require('eosplayer')
- extend Player to create the glue layer, implement methods : eosClient and getIdentity
see scatterPlayer
import Player from 'eosplayer' import Eos from 'eosjs' class MyPlayer extends Player { get eosClient() { if (!this._eosClient) { this._eosClient = new Eos(myAwsomeConf); } return this._eosClient; } async getIdentity() { return { name: "myawsomename", authority: "active" } } }
- there some out-of-box implementation of player
- if you wanna reading data of the chain or signing and sending messages to the chain.
import { signPlayer } from 'eosplayer'
- if you need the player automatic fuse and switch node, readingPlayer is a good choice
import { readingPlayer } from 'eosplayer'
- have fun
- Class: src/signPlayer
- Class: src/readingPlayer
- Class: helper/kh.js
- Class: utils/log.js
- Event: ERR_TRANSFER_FAILED
- Event: ERR_TRANSEND_FAILED
- Event: ERR_LOGOUT_FAILED
- Method: get eosplayer.kh
- Method: chain.getTable
- Method: chain.getActionCount
- Method: chain.getRecentActions
- Method: chain.getBalances
- Method: chain.getActions
- Method: chain.getAllActionsBatch
- Method: chain.checkTableMore
- Method: chain.transfer
- Method: chain.getPubKey
- Method: chain.getPubKeys
- Method: chain.recoverSign
- Method: chain.validateSign
- Method: player.getBalances
- Method: player.getAuth
- Method: player.newAccount
- Method: the checkTableRange methods deals with 'more' now
- Method: chain.getBalance add param symbolName
- Scatter: bigNumber
- eosplayer.waitTx (eosplayer.chain.waitTx instead)
- eosplayer.checkTable (eosplayer.chain.checkTable instead)
- eosplayer.checkTableRange (eosplayer.chain.checkTableRange instead)
- eosplayer.checkTableItem (eosplayer.chain.checkTableItem instead)
- Class: chain.js
- Method: get eosplayer.chain
in this version, scatter are split from the Player.
- Module: scatterBinder
- Class: src/eosProvider
- Class: scatterBinder/scatterPlayer
- Method: void eventHandler.enableEvents(eventKeys)
- Player.EventNames
- Rename events :
- ERR_TRANSCAL_FAILED
- ERR_GET_SCATTER_FAILED
- ERR_GET_IDENTITY_FAILED
- async eosplayer.transfer(target, quantity, memo)
- async eosplayer.contract(code)
email : kinghand@foxmail.com
issue : https://github.com/bagaking/eosplayer/issues