For the complete documentation index, see llms.txt. This page is also available as Markdown.

Smart Vault JS SDK

Javascript Software Development Kit

The Lightstreams Javascript SDK provides is a library the provides modules for account management and interacting with a Lightstreams node.

Source

The Lightstreams Javascript SDK Github repository.

Requirements

How to use

Install node module

Install lightstreams-js-sdk as part of your project dependencies:

npm install git+https://git@github.com:lightstreams-network/lightstreams-js-sdk#master --save

Modules

1. Wallets (ethers-js)

Learn more about ethers-js

How to create a random new wallet

How to create a wallet from seed phrase

How to generate a random seed phrase

1.1 Account

How to create a new account

Public account object API

  • lock():void: Lock wallet account

  • unlock(password):void: Unlock wallet account

  • isLocked():boolean: Return false is the account is unlock

  • sign(txParams):string: Return a signed transaction. Wallet must be unlocked

  • export():object: Returns encrypted privatekey in json format

  • seedPhrase():array: Return account seed phrase. Wallet must be unlocked

2. Web3 provider

In this repository you can find a customize web3 provider which uses a local keystorage to sign transactions. In addition other ethereum public API methods such as eth_lockAccount, eth_unlockAccount and eth_newAccount are being overwritten to use the key local storage.

How to initialize a LS web3 provider

Using this web3 provider you could create a new account and unlock it as you would regularly do web3 engine api methods, such as:

How to import a wallet

3. ENS

Learn more about it in official docs.

How to register new tld

How to use ENS official sdk Read docs here

4. Smart vault

4.1 Gateway proxy

Sample usage

Once LightstreamsSDK is initialized you interact with it as follow:

Available Methods

Gateway SDK interface is made to match, one to one, every available smart vault endpoints.

  • /user/signup -> gateway.user.signUp(password)

  • /user/signin -> gateway.user.signIn(account, password)

  • /wallet/balance -> gateway.wallet.balance(account)

  • /wallet/transfer -> gateway.wallet.transfer(from, password, to, amountWei)

  • /storage/add -> gateway.storage.add(owner, password, file)

  • /storage/fetch -> gateway.storage.fetch(meta, token, stream)

  • /acl/grant -> gateway.acl.grant(acl, owner, password, to, permission)

  • /acl/revoke -> gateway.acl.revoke(acl, owner, password, to)

  • /acl/grant-public -> gateway.acl.grantPublic(acl, owner, password)

  • /acl/revoke-public -> gateway.acl.revokePublic(acl, owner, password)

  • /shop/create -> gateway.shop.create(from, password)

  • /shop/shell -> gateway.shop.sell(shop, from, password, acl, priceWei)

  • /shop/buy -> gateway.shop.buy(shop, from, password, acl)

  • /erc20/balance -> gateway.erc20.balance(erc20_address, account)

  • /erc20/transfer -> gateway.erc20.transfer(erc20_address, from, password, to, amount)

  • /erc20/purchase -> gateway.erc20.purchase(erc20_address, account, password, amount_wei)

Last updated