UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

64 lines (47 loc) 1.66 kB
# Broxus JavaScript Core ## Introduction This library provides MobX-based services, models and helpers to build JavaScript Applications with any popular frameworks or libraries (e.g. React, Angular, Vue, etc.) ## Core ### AbstractStore Abstract class `AbstractStore` is a primary way to create any services or stores that provides API to manage state and data: ```typescript abstract class AbstractStore { setData(keyOrData: string | object | ((prevData) => nextData)): this setState(keyOrState: string | object | ((prevState) => nextState)): this toJSON(): object } ``` ### TvmContractWrapper Abstract class `TvmContractWrapper` is a primary way to create models (wrapper for contract) ```typescript abstract class TvmContractWrapper { address: Address contractState?: FullContractState isDeployed?: boolean isSyncing?: boolean syncedAt?: number async syncContractState(): Promise<FullContractState | undefined> abstract watch?(): Promise<Subscriber> abstract unwatch?(): Promise<void> } ``` ## Models ### TvmToken Model of the TVM-based token ```typescript import { TvmToken } from '@broxus/js-core' const token = new TvmToken(tvmWalletService.connection, { name: 'Wrapped EVER', symbol: 'WEVER', decimals: 9, address: '0:a49cd4e158a9a15555e624759e2e4e766d22600b7800d891e46f9291f044a93d', logoURI: 'https://raw.githubusercontent.com/broxus/flatqube-assets/master/icons/WEVER/logo.svg', version: 5, verified: true, }, [tvmWalletService.provider]) await token.sync({ force: true, silent: true }) const userWallet = await token.wallet(ownerAddress: Address | string) ```