diff --git a/packages/extension-base/src/services/chain-service/handler/bitcoin/strategy/BlockStream/types.ts b/packages/extension-base/src/services/chain-service/handler/bitcoin/strategy/BlockStream/types.ts index e964350aead..073fd49f1c8 100644 --- a/packages/extension-base/src/services/chain-service/handler/bitcoin/strategy/BlockStream/types.ts +++ b/packages/extension-base/src/services/chain-service/handler/bitcoin/strategy/BlockStream/types.ts @@ -266,18 +266,27 @@ export interface RuneMetadata { id: string, mintable: boolean, parent: string, - entry: { - block: number, - burned: number, - divisibility: number, - etching: string, - mints: number, - number: number, - premine: number, - spaced_rune: string, - symbol: string, - // terms: - timestamp: number, - turbo: boolean - } + entry: RuneInfo +} + +interface RuneInfo { + block: number, + burned: string, + divisibility: number, + etching: string, + mints: string, + number: number, + premine: string, + spaced_rune: string, + symbol: string, + terms: RuneTerms + timestamp: string, + turbo: boolean +} + +interface RuneTerms { + amount: string, + cap: string, + height: string[], + offset: string[] } diff --git a/packages/extension-base/src/services/chain-service/index.ts b/packages/extension-base/src/services/chain-service/index.ts index 515137ec47c..a098d6d532c 100644 --- a/packages/extension-base/src/services/chain-service/index.ts +++ b/packages/extension-base/src/services/chain-service/index.ts @@ -1161,6 +1161,7 @@ export class ChainService { // @ts-ignore private async fetchLatestRuneData () { + // todo: need check mainnet or testnet const chainAssetMap: Record = {}; const allCollectionRunes = await getAllCollectionRunes(); @@ -1896,8 +1897,10 @@ export class ChainService { } private async getBrc20Info (ticker: string, tokenType: _AssetType, originChain: string) { - if ([_AssetType.BRC20].includes(tokenType) && originChain === _BITCOIN_CHAIN_SLUG) { - const brc20Metdata = await getBrc20Metadata(ticker); + const isTestnet = originChain !== _BITCOIN_CHAIN_SLUG; + + if ([_AssetType.BRC20].includes(tokenType)) { + const brc20Metdata = await getBrc20Metadata(isTestnet, ticker); const isContractError = (!(brc20Metdata.decimals && brc20Metdata)); return { diff --git a/packages/extension-base/src/services/hiro-service/utils/index.ts b/packages/extension-base/src/services/hiro-service/utils/index.ts index a46ecbe3e49..d668584ab55 100644 --- a/packages/extension-base/src/services/hiro-service/utils/index.ts +++ b/packages/extension-base/src/services/hiro-service/utils/index.ts @@ -5,8 +5,8 @@ import { Brc20Metadata, Inscription, InscriptionFetchedData } from '@subwallet/e import { HiroService } from '@subwallet/extension-base/services/hiro-service'; // todo: handle inscription testnet -export async function getBrc20Metadata (ticker: string) { - const hiroService = HiroService.getInstance(); +export async function getBrc20Metadata (isTestnet = false, ticker: string) { + const hiroService = HiroService.getInstance(isTestnet); const defaultMetadata = { ticker: '', decimals: 0 diff --git a/packages/extension-base/src/services/rune-service/utils/index.ts b/packages/extension-base/src/services/rune-service/utils/index.ts index 6abb2c297c2..ad2995eed85 100644 --- a/packages/extension-base/src/services/rune-service/utils/index.ts +++ b/packages/extension-base/src/services/rune-service/utils/index.ts @@ -4,12 +4,12 @@ import { RunesCollectionInfo, RunesCollectionInfoResponse } from '@subwallet/extension-base/services/chain-service/handler/bitcoin/strategy/BlockStream/types'; import { RunesService } from '@subwallet/extension-base/services/rune-service'; -export async function getAllCollectionRunes () { +export async function getAllCollectionRunes (isTestnet = false) { const runesCollectionFullList: RunesCollectionInfo[] = []; const pageSize = 15000; let offset = 0; - const runeService = RunesService.getInstance(); + const runeService = RunesService.getInstance(isTestnet); try { while (true) {