From 7330fd3867a5caeb5d26e0bff47ad7582ad35c2e Mon Sep 17 00:00:00 2001 From: bluezdot <72647326+bluezdot@users.noreply.github.com> Date: Wed, 19 Jun 2024 17:46:11 +0700 Subject: [PATCH 1/3] [Issue-187] update rune-metadata returned type --- .../bitcoin/strategy/BlockStream/types.ts | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) 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..08bade8f155 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: number, + cap: string, + height: string[], + offset: string[] } From 459628acbcf833a3724e84ef0a3c614937492909 Mon Sep 17 00:00:00 2001 From: bluezdot <72647326+bluezdot@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:10:27 +0700 Subject: [PATCH 2/3] distinguish bitcoin mainnet and testnet --- .../extension-base/src/services/chain-service/index.ts | 7 +++++-- .../src/services/hiro-service/utils/index.ts | 4 ++-- .../src/services/rune-service/utils/index.ts | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) 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) { From 6c653c303dbb90817d5eca98198798f08417b32b Mon Sep 17 00:00:00 2001 From: bluezdot <72647326+bluezdot@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:42:58 +0700 Subject: [PATCH 3/3] [Issue-187] update rune-metadata returned type --- .../chain-service/handler/bitcoin/strategy/BlockStream/types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 08bade8f155..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 @@ -285,7 +285,7 @@ interface RuneInfo { } interface RuneTerms { - amount: number, + amount: string, cap: string, height: string[], offset: string[]