eosjs使用説明文書
11475 ワード
eosjs使用説明文書
本使用説明はEOIO 1.0.22バージョンに基づいています.最新版の教程はここを参照してください.
バージョンの説明:
Version
EOIO/eosjs
Npm
EOIO/eos
Docker
Node
dawn 4.2
タグ 13.x.x
dawn-v 4.2.0
eosio/eos:20180526
local docker
dawn 4.1
タグ:12 x.x
dawn-v 4.1.0
eosio/eos:20180519
local docker
dawn 4
タグ:11 x.x
dawn-v 4.0.0
eosio/eos:dawn-v 4.0.0
local docker
DAWN-2008-04-23-ACHA
タグ:9.x.x
npm installeosjs@dawn3
DAWN-2008-04-23-ACHA
eosio/eos:DAWN-2008-04-23-A LPHA
Dockerプロファイル
dawn 3
タグ:8.x.x
npm installeosjs@8
dawn-v 3.0
eosio/eos:dawn 3 x
Dockerプロファイル
dawn 2
branch:dawn 2
npm install eosjs
branch:dawn-2.x
eosio/eos:dawn 2 x
Dockerプロファイル
環境をサポート
node v 8+npm 6.1.11現在の最新バージョンのeosjsは「15.0.2」で、eosio 1.0.5-1.0.7 をサポートしています. Coverted some types in format module from unsigned to signed:UDecmalPad->DecimalPad for example(15.0.1) All asset and exteded uasset amounts require exact decimal placces(Change 1 SYS to 1.0000 SYS)(15.0.0) Use config.verbose instead of config.debug(14.1.0) EOSJS
使い方: chain.json account_history.json リンクの設定 mockTransation(オプション) パス:放送しないで、付加取引の仕事 fail:放送しないで、装填取引が失敗しました. null|undefined:ラジオ(デフォルト) トレーンactionHeaders(オプション)は、トランザクションの記録ヘッドを手動で設定し、この方法のcalbackコールバック関数は、取引のたびに呼び出される.ヘッドレコードのドキュメントを参照してください. eosjs-api菗headers オプション
例えば: authorization 書かない場合は、デフォルトのライセンスを使用します. ライセンスアカウントを提供すると、他のアカウントは に追加できません.複数のアカウントはアカウント名に従って並べ替えられます.
使い方
テストネットワークを使用する場合は、キーProviderに秘密鍵を設定する必要があります.
【翻訳者注】投票者の情報を取得して使う場合
署名の高級な使い方について、調べてみます.
略字ルール(Shothand)
いくつかの特殊な場合には、例えば、アセットクラスAsetおよびライセンスクラスAuthoritなどの簡略化が使用されてもよい. deposit: owner: recover: に変更します.
npm [email protected]
ブロックチェーンレベルの原子動作例:
メリット、柔軟性が高い
以下のこれらのライブラリは、シームレスに
var{appi,ecc,json,Fcbuffer,format}=Eos.modulesフォーマット ./フォーマット.md ブロックチェーン名検証 資産類名称フォーマット eosjs-appi[ Github NPM] EOSブロックチェーンノード(nodeos)のAPI にリモートアクセスする.は、このAPIを使用して、ブロックチェーン上の読み取り専用データに直接アクセスすることができる(取引署名は不要) eosjs-ecc[ Github NPM] は、秘密鍵、公開鍵、署名管理、AES、暗号化と復号 を提供する.公開鍵/秘密鍵 を検証する. EOS対応のchecksumsを用いて暗号化/復号化する 共有のための秘密を計算します.
json{appi} achema はブロックチェーンのjsonデータ操作API を定義している.
eosjs-keygen[ Github NPM ] 秘密鍵と鍵管理 Fcbuffer[ Github NPM ] バイナリデータプログレッシブ クライアント対取引バイナリコード署名 により、お客様に現在の署名状況を知ることができます.
ブロックチェーンブラウザ
ブロックチェーンブラウザを取得してインストールし、EOSテストチェーンのブロックチェーンブラウザを以下のようにインストールします.
本使用説明はEOIO 1.0.22バージョンに基づいています.最新版の教程はここを参照してください.
バージョンの説明:
Version
EOIO/eosjs
Npm
EOIO/eos
Docker
Node
dawn 4.2
タグ 13.x.x
npm install eosjs
(version 13)dawn-v 4.2.0
eosio/eos:20180526
local docker
dawn 4.1
タグ:12 x.x
npm install eosjs
(version 12)dawn-v 4.1.0
eosio/eos:20180519
local docker
dawn 4
タグ:11 x.x
npm install eosjs@dawn4
(version 11)dawn-v 4.0.0
eosio/eos:dawn-v 4.0.0
local docker
DAWN-2008-04-23-ACHA
タグ:9.x.x
npm installeosjs@dawn3
DAWN-2008-04-23-ACHA
eosio/eos:DAWN-2008-04-23-A LPHA
Dockerプロファイル
dawn 3
タグ:8.x.x
npm installeosjs@8
dawn-v 3.0
eosio/eos:dawn 3 x
Dockerプロファイル
dawn 2
branch:dawn 2
npm install eosjs
branch:dawn-2.x
eosio/eos:dawn 2 x
Dockerプロファイル
環境をサポート
node v 8+npm 6.1.11
使い方:
Eos = require('eosjs') // Eos = require('./src')
// eos = Eos.Localnet() // 127.0.0.1:8888
eos = Eos.Testnet() // eos.io testnet at eos.io
// All API methods print help when called with no-arguments.
eos.getBlock() //
// Next, your going to need nodeos running on localhost:8888
// If a callback is not provided, a Promise is returned
eos.getBlock(1).then(result => {console.log(result)})
// Parameters can be sequential or an object
eos.getBlock({block_num_or_id: 1}).then(result => console.log(result))
// Callbacks are similar
callback = (err, res) => {err ? console.error(err) : console.log(res)}
eos.getBlock(1, callback)
eos.getBlock({block_num_or_id: 1}, callback)
// Provide an empty object or a callback if an API call has no arguments
eos.getInfo({}).then(result => {console.log(result)})
APIで呼び出したドキュメントを参照してください.Eos = require('eosjs') // Eos = require('./src')
// Optional configuration..
config = {
keyProvider: ['PrivateKeys...'], // WIF string or array of keys..
httpEndpoint: 'http://127.0.0.1:8888',
mockTransactions: () => 'pass', // or 'fail'
transactionHeaders: (expireInSeconds, callback) => {
callback(null/*error*/, headers)
},
expireInSeconds: 60,
broadcast: true,
debug: false,
sign: true
}
eos = Eos.Localnet(config)
パラメータの説明:例えば:
eos.transfer(params, options)
options = {
broadcast: true,
sign: true,
authorization: null
}
{array|auth}
- このパラメータは、マルチ署名の場合、署名アカウントと権限を識別するために使用されます.文字列形式で、例えば:account@permission
またはオブジェクトを使用して、例えば:object
テストネットワークを使用する場合は、キーProviderに秘密鍵を設定する必要があります.
Eos = require('eosjs') // Eos = require('./src')
eos = Eos.Localnet({keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'})
// Run with no arguments to print usage.
eos.transfer() //
// Usage with options (options are always optional)
options = {broadcast: false} //
eos.transfer({from: 'inita', to: 'initb', quantity: '1 EOS', memo: ''}, options) // inita 1 EOS initb
// Object or ordered args may be used.
eos.transfer('inita', 'initb', '2 EOS', 'memo', options)
// A broadcast boolean may be provided as a shortcut for {broadcast: false}
eos.transfer('inita', 'initb', '1 EOS', '', false)
APIメソッドのパラメータを参照してください. エオロオsystem【翻訳者注】投票者の情報を取得して使う場合
voter_info
、ブロックノード情報を取得して使用する. producer_info
、資産使用を発表する. issue
、ブロックチェーンパラメータを取得して使用する blockchain_parameters
等署名の高級な使い方について、調べてみます.
keyProvider
、eosjs-keygen または unit test略字ルール(Shothand)
いくつかの特殊な場合には、例えば、アセットクラスAsetおよびライセンスクラスAuthoritなどの簡略化が使用されてもよい.
'1 eos'
はい、 1.0000 EOS
の略字'EOS6MRy..'
はい、 {threshold: 1, keys: [key: 'EOS6MRy..', weight: 1]}
の略字inita
または inita@active
それぞれ以下の略字形式です.{{threshold: 1, accounts: [..actor: inita, permission: active, weight: 1]}}
inita@other
active
権限をother
Eos = require('eosjs') // Eos = require('./src')
initaPrivate = '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'
initaPublic = 'EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV'
keyProvider = initaPrivate
eos = Eos.Localnet({keyProvider})
eos.newaccount({
creator: 'inita',
name: 'mynewacct',
owner: initaPublic,
active: initaPublic,
recovery: 'inita'
})
インテリジェント契約の展開setcode
コマンドは、署名と放送前にWASMのテキスト知能契約をバイナリファイルにコンパイルし、npmのテキストを使用します. binaryen
ライブラリは、デフォルトの場合、ライブラリファイルが大きいので、eosjs
に含まれていません.binaryen
ライブラリをインストールする:npm [email protected]
binaryen
バージョンがEOSバージョンと互換性がない場合は、参照してください. problematic jsソースでbinaryenを導入します.binaryen = require('binaryen');
eos = Eos.Testnet({..., binaryen});
一つはeosjsを通じてトークン発行の完全コードを作っています.Eos = require('eosjs')
let {ecc} = Eos.modules
initaPrivate = '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3';//inita
currencyPrivate = ecc.seedPrivate('currency');
currencyPublic = ecc.privateToPublic(currencyPrivate);
keyProvider = [initaPrivate, currencyPrivate];
binaryen = require('binaryen');//
eos = Eos.Localnet({keyProvider, binaryen});
eos.newaccount({
creator: 'inita',
name: 'currency',
owner: currencyPublic,
active: currencyPublic,
recovery: 'inita'
});
contractDir = `${process.env.HOME}/eosio/dawn3/build/contracts/currency`; //
wast = fs.readFileSync(`${contractDir}/currency.wast`);// wast ,wast eosiocpp
abi = fs.readFileSync(`${contractDir}/currency.abi`);// abi
//
eos.setcode('currency', 0, 0, wast);
eos.setabi('currency', JSON.parse(abi));
currency = null;
// eos.contract(account, [options], [callback]);
eos.contract('currency').then(contract => currency = contract);//
// inita , CUR
currency.issue('inita', '10000.0000 CUR', {authorization: 'currency'});
原子操作ブロックチェーンレベルの原子動作例:
Eos = require('eosjs')
keyProvider = [
'5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3',
Eos.modules.ecc.seedPrivate('currency')
]; //keyProvider
eos = Eos.Localnet({keyProvider});
// ,
eos.transaction(eos =>
{
eos.transfer('inita', 'initb', '1 EOS', '');
eos.transfer('inita', 'initc', '1 EOS', '');
}
// [options],
// [callback]
);
// currency
eos.transaction('currency', currency => {
currency.transfer('inita', 'initb', '1 CUR', '');
});
//
eos.transaction(['currency', 'eosio'], ({currency, eosio}) => {
currency.transfer('inita', 'initb', '1 CUR', '');
eosio.transfer('inita', 'initb', '1 EOS', '');
});
//
eos.contract('currency').then(currency => {
currency.transaction(cur => {
cur.transfer('inita', 'initb', '1 CUR', '');
cur.transfer('initb', 'inita', '1 CUR', '');
});
currency.transfer('inita', 'initb', '1 CUR', '');
});
マニュアル配置でトランスポートメリット、柔軟性が高い
Eos = require('eosjs')
eos = Eos.Localnet({keyProvider: '5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'});
eos.transaction({
actions: [
{
account: 'eosio',
name: 'transfer',
authorization: [{
actor: 'inita',
permission: 'active'
}],
data: {
from: 'inita',
to: 'initb',
quantity: '7 EOS',
memo: 'testing'
}
}
]
});
後続開発の更新eosjs
とnodeos
のバイナリフォーマットは継続的に更新されるので、nodeos
を実行するときはパラメータを追加する必要があります.また、パッケージ構成ファイルのコンパイルに注意してください. --skip-transaction-signatures
におけるディレクトリ構造の指向性 package.json
、もしテストするなら、./lib
からimportを導入する必要があります.Eos = require('./src');
eos = Eos.Localnet(...);
上記に加えて、./src
例は、多くの情報を提供することができる.// 'nonce' is a struct but could be any type or struct like: uint8 or transaction
nonce = {value: '..'}
nonceBuffer = eos.fc.toBuffer('nonce', nonce)
assert.deepEqual(nonce, eos.fc.fromBuffer('nonce', nonceBuffer))
// Serialization for a smart-contract's Abi:
eos.contract('currency', (error, c) => currency = c)
issue = {to: 'inita', quantity: '1.0000 CUR', memo: 'memo'}
issueBuffer = currency.fc.toBuffer('issue', issue)
assert.deepEqual(issue, currency.fc.fromBuffer('issue', issueBuffer))
関連ライブラリファイルの参考以下のこれらのライブラリは、シームレスに
eos
に統合されており、別に持ち出して使用することができるかもしれない.var{appi,ecc,json,Fcbuffer,format}=Eos.modules
ブロックチェーンブラウザを取得してインストールし、EOSテストチェーンのブロックチェーンブラウザを以下のようにインストールします.
git clone https://github.com/EOSIO/eosjs.git
cd eosjs
npm install
npm run build_browser
ウェブファイルを編集
var eos = Eos.Testnet()
//...