Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@tlsm/api

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tlsm/api

A lib for spinning up multiple polkadot.js or lightclient instances and being able to perform aggregate queries

latest
Source
npmnpm
Version
0.0.1
Version published
Maintainers
1
Created
Source

@talisman/api

A package for spinning up a set of endpoints for doing analysis over multiple chains at once.

@talisman/chainfactory is a factory lib for instantiating multiple polkadot.js or lightclient instances and being able to perform aggregate queries over all endpoints.

The lib can be instantiated using one or may chains (by chain id), have the option to use RPCs or light clients [<-- wip], and allow a way to provide custom RPCs or light-client chainspecs.

The goals of this repo are:

  • Allow developers to perform the same action across multiple chains (i.e get balance)
  • Allow developers to discover chain capabilities (i.e. what pallets they may have)
  • Abstract away the annoyances with spinning up multiple instances of polkadot.js

Would like to do:

  • replace polkadot.js with a super lightweight RPC connector for balance and pallet discovery

** ~~~~~ WIP WIP WIP WIP WIP ~~~~~~ **

Usage

Initial interface / exposed methods.

Import chainfactory

import ChainFactory from '@talisman/chainfactory'

Init singleton/factory

ChainFactory.init({chains: [0,2,2000]})

note 1: should fire error if already init'ted
note 2: can force reinit if needed with ChainFactory.init({chains: [0,2,2000]}, true)
note 3: is a singleton pattern

Use instance

ChainFactory.query('system.account', [address])

This iterates over all instances and, using all addresses provided, calls the same api endpoint with each address

note 1: this approach is a wip and may change depending on unknowns
note 2: Could look into refining this, as the combinatorial explosion resulting from N addresses x N chains may be slow. Something to think about and potentially resolve by creating a super lightweight rpc connector
note 3: The API layer (above this) will probably have convenience mappings for ease of use

Params

{
  "chains": [], // array of chain IDs to spin up (names could also work?). if empty will spin up all available.
  "rpcs": {}, // object containing chainId:RPC pairs. value can be string or array.
  "custodial": false // if !== true use polkadot.js via RPC, otherwise use wasm light client instances
}

note: all params optional

Rando notes:

API

  • wrapper to make API calls better
  • instead of aaa.bbb.ccc.sss.balanceSomethingBs(address), make it api.balances([address])

FACTORY

  • rpcfactory
  • lcfactory

should be able to trigger the same endpoint call simultaneously on multiple instances of the API

Future: should know about pallets and be able to use them

Keywords

talisman

FAQs

Package last updated on 11 Aug 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts