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
Node >= 10
Lightstreams node. How to install
How to use
Install node module
Install lightstreams-js-sdk
as part of your project dependencies:
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 accountunlock(password):void
: Unlock wallet accountisLocked():boolean
: Return false is the account is unlocksign(txParams):string
: Return a signed transaction. Wallet must be unlockedexport():object
: Returns encrypted privatekey in json formatseedPhrase():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