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.)
Abstract class AbstractStore
is a primary way to create any services or stores that provides API
to manage state and data:
abstract class AbstractStore {
setData(keyOrData: string | object | ((prevData) => nextData)): this
setState(keyOrState: string | object | ((prevState) => nextState)): this
toJSON(): object
}
Abstract class TvmContractWrapper
is a primary way to create models (wrapper for contract)
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>
}
Model of the TVM-based token
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)