import { IPutAddressMapFailures, IPutAddressMapSuccess, IResolvedClientAssetMap } from "../../application/services/crux-asset-translator"; import { IAddress, IAddressMapping, IAssetMatcher, ICruxUserRegistrationStatus } from "../../core/entities/crux-user"; import { ICruxBlockstackInfrastructure } from "../../core/interfaces"; import { ICruxDomainRepository } from "../../core/interfaces/crux-domain-repository"; import { ICruxUserRepository } from "../../core/interfaces/crux-user-repository"; import { IKeyManager } from "../../core/interfaces/key-manager"; import { IBlockstackCruxDomainRepositoryOptions } from "../../infrastructure/implementations/blockstack-crux-domain-repository"; import { IBlockstackCruxUserRepositoryOptions } from "../../infrastructure/implementations/blockstack-crux-user-repository"; import { Encryption } from "../../packages/encryption"; import { StorageService } from "../../packages/storage"; export interface IPutPrivateAddressMapResult { failures: IGenericFailures[]; } export interface IGenericFailures { errorEntity: string; errorCode: number; errorMessage: string; } export declare const throwCruxClientError: (target: any, prop: any, descriptor?: { value?: any; } | undefined) => any; export interface ICruxWalletClientOptions { privateKey?: string | IKeyManager; blockstackInfrastructure?: ICruxBlockstackInfrastructure; cacheStorage?: StorageService; walletClientName: string; debugLogging?: boolean; } export interface ICruxIDState { cruxID: string | null; status: ICruxUserRegistrationStatus; } export declare const getCruxDomainRepository: (options: IBlockstackCruxDomainRepositoryOptions) => ICruxDomainRepository; export declare const getCruxUserRepository: (options: IBlockstackCruxUserRepositoryOptions) => ICruxUserRepository; export declare class CruxWalletClient { e: typeof Encryption; walletClientName: string; private cruxBlockstackInfrastructure; private initPromise; private cruxDomainRepo; private cruxDomainId; private cruxDomain?; private cruxUserRepository; private cruxAssetTranslator; private keyManager?; private resolvedClientAssetMapping?; private cacheStorage?; constructor(options: ICruxWalletClientOptions); init: () => Promise; getCruxIDState: () => Promise; resolveCurrencyAddressForCruxID: (fullCruxID: string, walletCurrencySymbol: string) => Promise; resolveAssetAddressForCruxID: (fullCruxID: string, assetMatcher: IAssetMatcher) => Promise; getAddressMap: () => Promise; putAddressMap: (newAddressMap: IAddressMapping) => Promise<{ success: IPutAddressMapSuccess; failures: IPutAddressMapFailures; }>; putPrivateAddressMap: (fullCruxIDs: string[], newAddressMap: IAddressMapping) => Promise; getEnabledAssetGroups: () => Promise; putEnabledAssetGroups: () => Promise; isCruxIDAvailable: (cruxIDSubdomain: string) => Promise; /** * ```ts * const sampleAddressMap: IAddressMapping = { * 'BTC': { * addressHash: '1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX' * }, * 'ETH': { * addressHash: '0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8' * }, * } * // Advised to pipe the method putAddressMap to registerCruxID call * await cruxClient.registerCruxID("bob") * .then(() => { * return cruxClient.putAddressMap(sampleAddressMap) * .catch((addressUpdationError) => { * // Handling addressUpdation error * }) * }) * .catch((registrationError) => { * // Handling registration error * }) * ``` */ registerCruxID: (cruxIDSubdomain: string) => Promise; getAssetMap: () => Promise; private getCruxUserByID; private getCruxUserByKey; private getKeyManager; private getCruxDomain; private asyncInit; }