UNPKG

@mavrykdynamics/taquito

Version:

High level functionality that builds upon the other packages in the Mavryk Typescript Library Suite.

101 lines (100 loc) 4.49 kB
import { RpcClientInterface } from '@mavrykdynamics/taquito-rpc'; import { Protocols } from './constants'; import { Forger } from '@mavrykdynamics/taquito-local-forging'; import { Injector } from './injector/interface'; import { Signer } from './signer/interface'; import { OperationFactory } from './wallet/operation-factory'; import { RpcMvProvider } from './mv/rpc-mv-provider'; import { RPCEstimateProvider } from './estimate/rpc-estimate-provider'; import { RpcContractProvider } from './contract/rpc-contract-provider'; import { RPCBatchProvider } from './batch/rpc-batch-provider'; import { Wallet, WalletProvider } from './wallet'; import { ParserProvider } from './parser/interface'; import { Packer } from './packer/interface'; import { BehaviorSubject } from 'rxjs'; import { GlobalConstantsProvider } from './global-constants/interface-global-constants-provider'; import { MvReadProvider } from './read-provider/interface'; import { SubscribeProvider } from './subscribe/interface'; import { PrepareProvider } from './prepare/prepare-provider'; export interface TaquitoProvider<T, K extends Array<any>> { new (context: Context, ...rest: K): T; } export interface ConfigConfirmation { confirmationPollingTimeoutSecond: number; defaultConfirmationCount: number; } export declare const defaultConfigConfirmation: ConfigConfirmation; /** * @description Encapsulate common service used throughout different part of the library */ export declare class Context { private _rpc; private _signer; private _proto?; readonly _config: BehaviorSubject<{ confirmationPollingTimeoutSecond: number; defaultConfirmationCount: number; }>; private _rpcClient; private _forger; private _parser; private _injector; private _walletProvider; readonly operationFactory: OperationFactory; private _packer; private providerDecorator; private _globalConstantsProvider; private _readProvider; private _stream; readonly mv: RpcMvProvider; readonly estimate: RPCEstimateProvider; readonly contract: RpcContractProvider; readonly prepare: PrepareProvider; readonly batch: RPCBatchProvider; readonly wallet: Wallet; constructor(_rpc: RpcClientInterface | string, _signer?: Signer, _proto?: Protocols | undefined, _config?: BehaviorSubject<{ confirmationPollingTimeoutSecond: number; defaultConfirmationCount: number; }>, forger?: Forger, injector?: Injector, packer?: Packer, wallet?: WalletProvider, parser?: ParserProvider, globalConstantsProvider?: GlobalConstantsProvider, readProvider?: MvReadProvider, stream?: SubscribeProvider); get config(): ConfigConfirmation; set config(value: ConfigConfirmation); setPartialConfig(value: Partial<ConfigConfirmation>): void; get rpc(): RpcClientInterface; set rpc(value: RpcClientInterface); get injector(): Injector; set injector(value: Injector); get forger(): Forger; set forger(value: Forger); get signer(): Signer; set signer(value: Signer); get walletProvider(): WalletProvider; set walletProvider(value: WalletProvider); set proto(value: Protocols | undefined); get proto(): Protocols | undefined; get parser(): ParserProvider; set parser(value: ParserProvider); get packer(): Packer; set packer(value: Packer); get globalConstantsProvider(): GlobalConstantsProvider; set globalConstantsProvider(value: GlobalConstantsProvider); get readProvider(): MvReadProvider; set readProvider(value: MvReadProvider); get stream(): SubscribeProvider; set stream(value: SubscribeProvider); isAnyProtocolActive(protocol?: string[]): Promise<boolean>; isAnySignerConfigured(): boolean; /** * @description Create a copy of the current context. Useful when you have long running operation and you do not want a context change to affect the operation */ clone(): Context; /** * @description Allows extensions set on the MavrykToolkit to inject logic into the context */ registerProviderDecorator(fx: (context: Context) => Context): void; /** * @description Applies the decorators on a cloned instance of the context and returned this cloned instance. * The decorators are functions that inject logic into the context. * They are provided by the extensions set on the MavrykToolkit by calling the registerProviderDecorator method. */ withExtensions: () => Context; }