@parity/light.js
Version:
A high-level reactive JS library optimized for light clients
64 lines (46 loc) • 1.64 kB
Markdown
on RxJS Observables, all the tools for playing with Observables are available for you to use.
```javascript
import { map } from 'rxjs/operators';
balanceOf$('0x407d73d8a49eeb85d32cf465507dd71d507100c1')
.pipe( // We can chain operators
map(balance => balance.toFormat(2)), // Format the number nicely
map(balance => `${balance} ETH`) // Append 'ETH'
)
.subscribe(balance => console.log('balance', balance));
// Logs:
// balance 2,000.00 ETH
// ...
```
See https://codesandbox.io/s/xp87z0xjmo.
```javascript
import { map, filter } from 'rxjs/operators';
blockNumber$()
.pipe(
map(v => +v), // Convert BigNumber to number
filter(blockNumber => blockNumber % 2 === 0) // Filter out pair numbers
)
.subscribe(blockNumber => console.log('blockNumber', blockNumber)); // Same as before, log the result
// Logs:
// blockNumber 8548408
// blockNumber 8548410
// ...
```
See https://codesandbox.io/s/v37j38o38y.
```javascript
defaultAccount$()
.pipe(
switchMap(publicAddress => balanceOf$(publicAddress)),
map(value => +value) // Return number instead of BigNumber
)
.subscribe(console.log);
// Logs:
// 2
// ...
```
RxJS has [a lot of operators](http://reactivex.io/documentation/operators.html) which you can use to combine the RpcObservables to build your app's logic. `@parity/light.js` provides the basic RpcObservables, and we let you combine them.
Since `@parity/light.js` relies heavily