Add documentation and examples (#145)

* Add documentation

* Justification u8a decoding and json encoding (#146)

* Decode Justifications

* Json encoding for justifications

* Bump deps

* Allow extrinsic length encoding to operate on u8a[] (#148)

* Fix config and move generated doc to a subfolder

* Cleanup extrinsic encoding (#150)

* Cleanup extrinsic encoding

* Removed now-defunct type

* Add uncheckedLength encoding

* Add examples

* Ignore package-lock since we use yarn

* Cleanup examples

* Add gitbook config and some base files for the doc

* Do not make full doc mandatory for now

* Add contributing guide, polish doc and samples

* Update the deps of all samples and add yarn scripts
Fix and regenerate the doc

* Fix Contributing guide
This commit is contained in:
Chevdor
2018-09-15 09:11:56 +02:00
committed by Jaco Greeff
parent 7fffcb3747
commit 0981a30d84
61 changed files with 6937 additions and 105 deletions
@@ -0,0 +1,8 @@
= Tranfer DOTs
This sample is more 'straight to the point' and shows the easiest way to transfer DOTs from an account to another.
[source, javascript]
----
include::index.js[]
----
+42
View File
@@ -0,0 +1,42 @@
const Api = require('@polkadot/api').default
const WsProvider = require('@polkadot/api-provider/ws').default
const extrinsics = require('@polkadot/extrinsics').default
const encodeExtrinsic = require('@polkadot/extrinsics/codec/encode/uncheckedLength').default
const encodeLength = require('@polkadot/extrinsics/codec/encode/length').default
const Keyring = require('@polkadot/util-keyring').default
const storage = require('@polkadot/storage').default
const BN = require('bn.js')
const Encoder = new TextEncoder()
const keyring = new Keyring()
const provider = new WsProvider('ws://127.0.0.1:9944')
const api = new Api(provider)
async function getAccountIndex (address) {
return api.state.getStorage([storage.system.public.accountIndexOf, address])
}
async function transfer (keyRingFrom, addressTo, amount) {
const nextAccountIndex = await getAccountIndex(keyRingFrom.address())
// encode the call for signing
const encoded = encodeExtrinsic(
keyRingFrom,
nextAccountIndex,
extrinsics.staking.public.transfer,
[addressTo, amount]
)
await api.author.submitExtrinsic(encoded)
.catch(e => console.log)
}
const Alice = keyring.addFromSeed(Encoder.encode('Alice '))
const addressBob = '5Gw3s7q4QLkSWwknsiPtjujPv3XM4Trxi5d4PgKMMk3gfGTE'
const amount = new BN(999) // on dev chain, the fee is 1, that makes it a round 1000
console.log(`Crafting and sending an extrinsic for Alice to send Bob ${amount} DOTs`)
transfer(Alice, addressBob, amount)
.then(() => console.log('Done'))
.catch((e) => console.log(e))
.finally(_ => process.exit(0))
@@ -0,0 +1,19 @@
{
"name": "07_transfer_dots",
"version": "0.1.0",
"description": "Example showing how to transfer DOTs",
"main": "index.js",
"author": "chevdor",
"license": "MIT",
"scripts": {
"clean": "rimraf node_modules",
"start": "node index.js"
},
"dependencies": {
"@polkadot/api": "0.29.1",
"bn.js": "^4.11.8"
},
"devDependencies": {
"rimraf": "2.6.2"
}
}