Skip to content

Instantly share code, notes, and snippets.

@jimpick
Last active October 26, 2020 19:01
Show Gist options
  • Save jimpick/0b00bcd0a618238f3fe3ff89f9ac800c to your computer and use it in GitHub Desktop.
Save jimpick/0b00bcd0a618238f3fe3ff89f9ac800c to your computer and use it in GitHub Desktop.
js-lotus-client tutorial

textile lotus-devnet

docker run -e TEXLOTUSDEVNET_SPEED=10000 -p 7777:7777 textile/lotus-devnet

Test with curl

curl -X POST -H 'Content-Type: application/javascript' --data-raw '{"jsonrpc": "2.0", "method": "Filecoin.Version", "params": [], "id": 1}' http://127.0.0.1:7777/rpc/v0
{"jsonrpc":"2.0","result":{"Version":"0.4.0","APIVersion":768,"BlockDelay":25},"id":1}

Node.js

$ node -v
v14.4.0
npm init -y
npm install @filecoin-shipyard/lotus-client-rpc --save
npm install @filecoin-shipyard/lotus-client-schema --save
npm install @filecoin-shipyard/lotus-client-provider-nodejs --save
const { LotusRPC } = require('@filecoin-shipyard/lotus-client-rpc')
const { NodejsProvider } = require('@filecoin-shipyard/lotus-client-provider-nodejs')
const { mainnet } = require('@filecoin-shipyard/lotus-client-schema')
const url = 'ws://127.0.0.1:7777/rpc/v0'
// const url = 'http://127.0.0.1:7777/rpc/v0'
// const url = 'wss://lotus.testground.ipfs.team/api/0/node/rpc/v0'
// const provider = new BrowserProvider(url)
// const provider = new NodejsProvider(url, { transport: 'http' })
const provider = new NodejsProvider(url)
const client = new LotusRPC(provider, { schema: mainnet.fullNode })
async function run () {
try {
const version = await client.version()
console.log('Version', version)
} catch (e) {
console.error('client.version error', e)
}
await client.destroy()
}
run()
import { LotusRPC } from '@filecoin-shipyard/lotus-client-rpc'
import { NodejsProvider } from '@filecoin-shipyard/lotus-client-provider-nodejs'
import { mainnet } from '@filecoin-shipyard/lotus-client-schema'
const url = 'ws://127.0.0.1:7777/rpc/v0'
// const url = 'http://127.0.0.1:7777/rpc/v0'
// const url = 'wss://lotus.testground.ipfs.team/api/0/node/rpc/v0'
// const provider = new BrowserProvider(url)
// const provider = new NodejsProvider(url, { transport: 'http' })
const provider = new NodejsProvider(url)
const client = new LotusRPC(provider, { schema: mainnet.fullNode })
async function run () {
try {
const version = await client.version()
console.log('Version', version)
} catch (e) {
console.error('client.version error', e)
}
await client.destroy()
}
run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment