///
import { _AssetRef, _AssetType, _ChainAsset, _ChainInfo, _MultiChainAsset } from '@soul-wallet/chain-list/types';
import { AddTokenRequestExternal, AmountData, ApiMap, AuthRequestV2, BalanceItem, BalanceJson, ChainStakingMetadata, ConfirmationsQueue, CrowdloanItem, CrowdloanJson, CurrentAccountInfo, EvmSendTransactionParams, ExternalRequestPromise, MantaPayConfig, MantaPaySyncState, NftCollection, NftItem, NftJson, NominatorMetadata, RequestAccountExportPrivateKey, RequestCheckPublicAndSecretKey, RequestConfirmationComplete, RequestSettingsType, ResponseAccountExportPrivateKey, ResponseCheckPublicAndSecretKey, ServiceInfo, SingleModeJson, StakingItem, StakingJson, StakingRewardItem, StakingRewardJson, StakingType, UiSettings } from '@soul-wallet/extension-base/background/KoniTypes';
import { AccountJson, RequestAuthorizeTab, RequestRpcSend, RequestRpcSubscribe, RequestRpcUnsubscribe, RequestSign, ResponseRpcListProviders, ResponseSigning } from '@soul-wallet/extension-base/background/types';
import { BalanceService } from '@soul-wallet/extension-base/services/balance-service';
import { ChainService } from '@soul-wallet/extension-base/services/chain-service';
import { _ChainState, _NetworkUpsertParams, _ValidateCustomAssetRequest } from '@soul-wallet/extension-base/services/chain-service/types';
import { EventService } from '@soul-wallet/extension-base/services/event-service';
import { HistoryService } from '@soul-wallet/extension-base/services/history-service';
import { KeyringService } from '@soul-wallet/extension-base/services/keyring-service';
import MigrationService from '@soul-wallet/extension-base/services/migration-service';
import NotificationService from '@soul-wallet/extension-base/services/notification-service/NotificationService';
import { PriceService } from '@soul-wallet/extension-base/services/price-service';
import RequestService from '@soul-wallet/extension-base/services/request-service';
import { AuthUrls, MetaRequest, SignRequest } from '@soul-wallet/extension-base/services/request-service/types';
import SettingService from '@soul-wallet/extension-base/services/setting-service/SettingService';
import DatabaseService from '@soul-wallet/extension-base/services/storage-service/DatabaseService';
import { SubscanService } from '@soul-wallet/extension-base/services/subscan-service';
import TransactionService from '@soul-wallet/extension-base/services/transaction-service';
import WalletConnectService from '@soul-wallet/extension-base/services/wallet-connect-service';
import { MetadataDef, ProviderMeta } from '@soul-wallet/extension-inject/types';
import SimpleKeyring from 'eth-simple-keyring';
import { BehaviorSubject, Subject } from 'rxjs';
import { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback } from '@polkadot/rpc-provider/types';
declare type Providers = Record ProviderInterface;
}>;
export default class KoniState {
private injectedProviders;
private readonly providers;
private readonly unsubscriptionMap;
private readonly accountRefStore;
private externalRequest;
private balanceMap;
private balanceSubject;
private crowdloanMap;
private crowdloanSubject;
private nftSubject;
private mantaPayConfigSubject;
isMantaPayEnabled: boolean;
private stakingSubject;
private chainStakingMetadataSubject;
private stakingNominatorMetadataSubject;
private stakingRewardSubject;
private stakingRewardState;
private lazyMap;
readonly notificationService: NotificationService;
readonly eventService: EventService;
readonly keyringService: KeyringService;
readonly chainService: ChainService;
readonly dbService: DatabaseService;
private cron;
private subscription;
private logger;
readonly settingService: SettingService;
readonly requestService: RequestService;
readonly transactionService: TransactionService;
readonly historyService: HistoryService;
readonly priceService: PriceService;
readonly balanceService: BalanceService;
readonly migrationService: MigrationService;
readonly subscanService: SubscanService;
readonly walletConnectService: WalletConnectService;
private generalStatus;
private waitSleeping;
private waitStarting;
constructor(providers?: Providers);
get knownMetadata(): MetadataDef[];
injectMetadata(url: string, request: MetadataDef): Promise;
getMetaRequest(id: string): MetaRequest;
getSignRequest(id: string): SignRequest | undefined;
rpcListProviders(): Promise;
rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise>;
rpcStartProvider(key: string, port: chrome.runtime.Port): Promise;
rpcSubscribe({ method, params, type }: RequestRpcSubscribe, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): Promise;
rpcSubscribeConnected(_request: null, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): void;
rpcUnsubscribe(request: RequestRpcUnsubscribe, port: chrome.runtime.Port): Promise;
saveMetadata(meta: MetadataDef): void;
sign(url: string, request: RequestSign, account: AccountJson): Promise;
get authSubjectV2(): BehaviorSubject;
generateDefaultBalanceMap(): Record;
init(): Promise;
initMantaPay(password: string): Promise;
private startSubscription;
onReady(): void;
updateKeyringState(isReady?: boolean, callback?: () => void): void;
private lazyNext;
getAuthRequestV2(id: string): AuthRequestV2;
setAuthorize(data: AuthUrls, callback?: () => void): void;
getAuthorize(update: (value: AuthUrls) => void): void;
subscribeEvmChainChange(): Subject;
subscribeAuthorizeUrlSubject(): Subject;
getAuthList(): Promise;
getAddressList(value?: boolean): Record;
authorizeUrlV2(url: string, request: RequestAuthorizeTab): Promise;
getNativeTokenInfo(networkKey: string): _ChainAsset;
getChainInfo(networkKey: string): _ChainInfo;
getChainStakingMetadata(): Promise;
getStakingMetadataByChain(chain: string, type: StakingType): Promise;
getNominatorMetadata(): Promise;
getMantaPayConfig(chain: string): Promise;
getStaking(): Promise;
getStakingOwnersByChains(chains: string[]): Promise;
getPooledStakingRecordsByAddress(addresses: string[]): Promise;
subscribeMantaPayConfig(): Subject;
subscribeStaking(): Subject;
subscribeChainStakingMetadata(): Subject;
subscribeNominatorMetadata(): Subject;
ensureUrlAuthorizedV2(url: string): Promise;
setStakingItem(networkKey: string, item: StakingItem): void;
updateChainStakingMetadata(item: ChainStakingMetadata, changes?: Record): void;
updateStakingNominatorMetadata(item: NominatorMetadata): void;
setNftCollection(network: string, data: NftCollection, callback?: (data: NftCollection) => void): void;
getNftCollection(): import("dexie").PromiseExtended;
subscribeNftCollection(): import("dexie").Observable;
resetNft(newAddress: string): void;
updateNftData(network: string, nftData: NftItem, address: string, callback?: (nftData: NftItem) => void): void;
deleteNftCollection(chain: string, collectionId: string): Promise;
cleanUpNfts(chain: string, owner: string, collectionId: string[], nftIds: string[], ownNothing?: boolean): void;
getNft(): Promise;
subscribeNft(): Subject;
resetStakingReward(): void;
updateStakingReward(stakingRewardData: StakingRewardItem, callback?: (stakingRewardData: StakingRewardJson) => void): void;
updateStakingRewardReady(ready: boolean): void;
getAccountRefMap(callback: (refMap: Record>) => void): void;
addAccountRef(addresses: string[], callback: () => void): void;
removeAccountRef(address: string, callback: () => void): void;
getStakingReward(update: (value: StakingRewardJson) => void): void;
subscribeStakingReward(): Subject;
setCurrentAccount(data: CurrentAccountInfo, callback?: () => void, preventOneAccount?: boolean): void;
setAccountTie(address: string, genesisHash: string | null): boolean;
switchEvmNetworkByUrl(shortenUrl: string, networkKey: string): Promise;
switchNetworkAccount(id: string, url: string, networkKey: string, changeAddress?: string): Promise;
addNetworkConfirm(id: string, url: string, networkData: _NetworkUpsertParams): Promise;
addTokenConfirm(id: string, url: string, tokenInfo: AddTokenRequestExternal): Promise;
get metaSubject(): BehaviorSubject;
get signSubject(): BehaviorSubject;
getSettings(callback: (settings: UiSettings) => void): void;
setSettings(settings: UiSettings, callback?: () => void): void;
updateSetting(key: T, value: UiSettings[T]): void;
setShowBalance(value: boolean): void;
subscribeSettingsSubject(): Subject;
getAccountAddress(): string | null;
getDecodedAddresses(address?: string): string[];
getAllAddresses(): string[];
private removeInactiveChainBalances;
getBalance(reset?: boolean): BalanceJson;
getStoredBalance(address: string): Promise>;
handleSwitchAccount(newAddress: string): Promise;
resetBalanceMap(newAddress: string): Promise;
resetCrowdloanMap(newAddress: string): Promise;
resetStaking(newAddress: string): void;
setBalanceItem(tokenSlug: string, item: BalanceItem): void;
private updateBalanceStore;
subscribeBalance(): Subject;
getCrowdloan(reset?: boolean): CrowdloanJson;
getStoredCrowdloan(address: string): Promise>;
setCrowdloanItem(networkKey: string, item: CrowdloanItem): void;
private updateCrowdloanStore;
subscribeCrowdloan(): Subject;
getSmartContractNfts(): _ChainAsset[];
getChainInfoMap(): Record;
getChainStateMap(): Record;
getAssetRefMap(): Record;
getChainStateByKey(key: string): _ChainState;
getAssetRegistry(): Record;
getMultiChainAssetMap(): Record;
getXcmRefMap(): Record;
getAssetByChainAndAsset(chain: string, assetTypes: _AssetType[]): Record;
getAssetBySlug(slug: string): _ChainAsset;
getXcmEqualAssetByChain(destinationChain: string, originTokenSlug: string): _ChainAsset | undefined;
subscribeChainInfoMap(): Subject>;
subscribeChainStateMap(): Subject>;
subscribeAssetRegistry(): Subject>;
subscribeMultiChainAssetMap(): Subject>;
subscribeXcmRefMap(): Subject>;
upsertCustomToken(data: _ChainAsset): Promise;
deleteCustomAssets(targetTokens: string[]): void;
validateCustomChain(provider: string, existedChainSlug?: string): Promise;
getSupportedSmartContractTypes(): _AssetType[];
validateCustomAsset(data: _ValidateCustomAssetRequest): Promise;
getActiveChainInfoMap(): Record;
upsertChainInfo(data: _NetworkUpsertParams): Promise;
removeCustomChain(networkKey: string): boolean;
forceRemoveChain(networkKey: string): void;
private getDefaultNetworkKeys;
disableChain(chainSlug: string): Promise;
enableChain(chainSlug: string, enableTokens?: boolean): Promise;
resetDefaultChains(): boolean;
getSubstrateApiMap(): Record;
getSubstrateApi(networkKey: string): import("../../../services/chain-service/handler/SubstrateApi").SubstrateApi;
getEvmApiMap(): Record;
getEvmApi(networkKey: string): import("../../../services/chain-service/handler/EvmApi").EvmApi;
getApiMap(): ApiMap;
refreshSubstrateApi(key: string): boolean;
refreshWeb3Api(key: string): void;
getServiceInfo(): ServiceInfo;
getExternalRequestMap(): Record;
setExternalRequestMap(id: string, value: ExternalRequestPromise): void;
getExternalRequest(id: string): ExternalRequestPromise;
updateExternalRequest(id: string, value: Partial): void;
cleanExternalRequest(): void;
pauseAllNetworks(code?: number, reason?: string): Promise;
resumeAllNetworks(): Promise;
private publishBalance;
private publishCrowdloan;
findNetworkKeyByGenesisHash(genesisHash?: string | null): [string | undefined, _ChainInfo | undefined];
findChainIdGenesisHash(genesisHash?: string | null): number | undefined;
findNetworkKeyByChainId(chainId?: number | null): [string | undefined, _ChainInfo | undefined];
findSingleMode(genesisHash: string): SingleModeJson | undefined;
accountExportPrivateKey({ address, password }: RequestAccountExportPrivateKey): ResponseAccountExportPrivateKey;
checkPublicAndSecretKey({ publicKey, secretKey }: RequestCheckPublicAndSecretKey): ResponseCheckPublicAndSecretKey;
getEthKeyring(address: string, password: string): Promise;
evmSign(id: string, url: string, method: string, params: any, allowedAccounts: string[]): Promise;
evmSendTransaction(id: string, url: string, networkKey: string, allowedAccounts: string[], transactionParams: EvmSendTransactionParams): Promise;
getConfirmationsQueueSubject(): BehaviorSubject;
completeConfirmation(request: RequestConfirmationComplete): Promise;
onInstall(): void;
get activeNetworks(): Record;
get activeChainSlugs(): string[];
sleep(): Promise;
private _start;
wakeup(): Promise;
cancelSubscription(id: string): boolean;
createUnsubscriptionHandle(id: string, unsubscribe: () => void): void;
autoEnableChains(addresses: string[]): Promise;
onAccountAdd(): void;
onAccountRemove(): void;
reloadNft(): Promise;
reloadStaking(): Promise;
approvePassPhishingPage(_url: string): Promise;
resetWallet(resetAll: boolean): Promise;
enableMantaPay(updateStore: boolean, address: string, password: string, seedPhrase?: string): Promise;
disableMantaPay(address: string): Promise;
initialSyncMantaPay(address: string): Promise;
getMantaZkBalance(): void;
subscribeMantaPayBalance(): () => void;
syncMantaPay(): Promise;
getMantaPayZkBalance(address: string, tokenInfo: _ChainAsset): Promise;
subscribeMantaPaySyncState(): Subject;
findMetadata(hash: string): Promise<{
metadata: string;
specVersion: number;
}>;
}
export {};