UNPKG

dotbit-sdk-allin

Version:

A complete .bit SDK and utilities in TypeScript

121 lines (120 loc) 4.2 kB
import { RecordsEditor } from './builders/RecordsEditor'; import { RemoteTxBuilder } from './builders/RemoteTxBuilder'; import { AccountStatus, BitNetwork, CoinType, PaymentMethodIDs, DWebProtocol } from './const'; import { BitIndexer } from './fetchers/BitIndexer'; import { AccountInfo, BitAccountRecord, BitAccountRecordAddress, BitAccountRecordExtended, KeyInfo } from './fetchers/BitIndexer.type'; import { SubAccountListParams, SubAccountMintParams } from './fetchers/SubAccountAPI'; import { BitSigner } from './signers/BitSigner'; import { CrossChainAccountStatusRes } from './fetchers/CrossChainAPI'; export interface BitAccountOptions { account: string; bitIndexer?: BitIndexer; bitBuilder?: RemoteTxBuilder; signer?: BitSigner; } export interface SubAccountParams { account: string; keyInfo?: KeyInfo; mintForAccount?: string; registerYears: number; } export interface RoleKeyInfo extends KeyInfo { algorithm_id: number; } export interface RegisterParam { keyInfo?: KeyInfo; registerYears: number; paymentMethodID: PaymentMethodIDs; crossTo?: CoinType; inviterAccount?: string; channelAccount?: string; } export interface RenewParam { paymentMethodID: PaymentMethodIDs; renewYears: number; } export interface RenewRes extends RenewParam { keyInfo: KeyInfo; account: string; orderId: string; txHash: string; } export interface RegisterRes extends RegisterParam { account: string; orderId: string; txHash: string; } export interface LockAccountRes { keyInfo: KeyInfo; account: string; txHash: string; } export interface MintEthNftRes { account: string; keyInfo: KeyInfo; txHash: string; } export interface MintBitAccountRes extends MintEthNftRes { } export declare class BitAccount { #private; account: string; bitIndexer: BitIndexer; bitBuilder: RemoteTxBuilder; signer: BitSigner; constructor(options: BitAccountOptions); protected _info: AccountInfo; protected _records: BitAccountRecordExtended[]; status: AccountStatus; protected requireSigner(): void; protected requireBitBuilder(): void; setReverseRecord(): void; enableSubAccount(): Promise<{ hash?: string; hash_list: string[]; }>; subAccounts(params?: Omit<SubAccountListParams, 'account'>): Promise<import("./fetchers/SubAccountAPI").SubAccountListRes>; checkSubAccounts(subAccounts: SubAccountMintParams[]): Promise<{ result: import("./fetchers/SubAccountAPI").SubAccountWithStatus[]; }>; mintSubAccounts(params: SubAccountParams[]): Promise<{ hash?: string; hash_list: string[]; }>; mintSubAccount(params: SubAccountParams): Promise<{ hash?: string; hash_list: string[]; }>; changeOwner(keyInfo: KeyInfo): Promise<{ hash: string; }>; changeManager(keyInfo: KeyInfo): Promise<{ hash: string; }>; updateRecords(records: BitAccountRecord[]): Promise<{ hash: string; }>; editRecords(): Promise<RecordsEditor>; info(): Promise<AccountInfo>; owner(): Promise<RoleKeyInfo>; manager(): Promise<RoleKeyInfo>; records(key?: string): Promise<BitAccountRecordExtended[]>; addresses(chain?: string): Promise<BitAccountRecordAddress[]>; addrs(chain?: string): Promise<BitAccountRecordAddress[]>; dwebs(protocol?: DWebProtocol): Promise<BitAccountRecordExtended[]>; dweb(): Promise<BitAccountRecordExtended>; profiles(subtype?: string): Promise<BitAccountRecordExtended[]>; avatar(): Promise<{ linkage: Array<{ type: string; content: string; }>; url: string; } | null>; register(param: RegisterParam): Promise<RegisterRes>; lockAccount(): Promise<LockAccountRes>; crossChainAccountStatus(): Promise<CrossChainAccountStatusRes>; mintEthNft(network: BitNetwork): Promise<MintEthNftRes>; mintBitAccount(network: BitNetwork): Promise<MintBitAccountRes>; renew(param: RenewParam): Promise<RenewRes>; }