@rango-dev/internal-blockchains 0.1.1-next.1 → 0.1.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/caip.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare const CAIP_CHAINS: {
19
19
  readonly TON: "tvm:-239";
20
20
  readonly TRON: "tron:tron";
21
21
  readonly XRPL: "xrpl:mainnet";
22
- readonly ZCASH: "bip122:zcash";
22
+ readonly ZCASH: "bip122:00040fe8ec8471911baa1db1266ea15d";
23
23
  };
24
24
  type BlockchainMetaForCaip = Pick<BlockchainMeta, 'type' | 'chainId' | 'name'>;
25
25
  /**
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var N=Object.defineProperty;var r=(C,n)=>N(C,"name",{value:n,configurable:!0});var p=(A=>(A.BTC="BTC",A.BSC="BSC",A.LTC="LTC",A.THORCHAIN="THOR",A.BCH="BCH",A.BINANCE="BNB",A.BLAST="BLAST",A.CELO="CELO",A.LINEA="LINEA",A.METIS="METIS",A.SONIC="SONIC",A.BERACHAIN="BERACHAIN",A.ZETA_CHAIN="ZETA_CHAIN",A.SCROLL="SCROLL",A.ZKSYNC="ZKSYNC",A.MONAD="MONAD",A.ETHEREUM="ETH",A.POLYGON="POLYGON",A.POLKADOT="",A.TRON="TRON",A.DOGE="DOGE",A.HARMONY="HARMONY",A.AVAX_CCHAIN="AVAX_CCHAIN",A.FANTOM="FANTOM",A.MOONBEAM="MOONBEAM",A.ARBITRUM="ARBITRUM",A.BOBA="BOBA",A.OPTIMISM="OPTIMISM",A.FUSE="FUSE",A.CRONOS="CRONOS",A.SOLANA="SOLANA",A.MOONRIVER="MOONRIVER",A.GNOSIS="GNOSIS",A.MAYA="MAYA",A.STARKNET="STARKNET",A.STELLAR="STELLAR",A.TON="TON",A.BASE="BASE",A.SUI="SUI",A.XRPL="XRPL",A.ZCASH="ZCASH",A.HYPERLIQUID="HYPERLIQUID",A.Unknown="Unkown",A))(p||{}),F="ARBITRUM";import{CAIP_ETHEREUM_CHAIN_ID as P,CAIP_NAMESPACE as t}from"@hub3js/evm";import{CAIP_SOLANA_CHAIN_ID as R,CAIP_NAMESPACE as m}from"@hub3js/solana";import{CAIP_STARKNET_CHAIN_ID as M,CAIP_NAMESPACE as l}from"@hub3js/starknet";import{CAIP_STELLAR_CHAIN_ID as f,CAIP_NAMESPACE as B}from"@hub3js/stellar";import{CAIP_SUI_CHAIN_ID as u,CAIP_NAMESPACE as L}from"@hub3js/sui";import{CAIP_TON_CHAIN_ID as H,CAIP_NAMESPACE as h}from"@hub3js/tvm";import{CAIP_XRPL_CHAIN_ID as s,CAIP_NAMESPACE as d}from"@hub3js/xrpl";import{CAIP_TRON_CHAIN_ID as $,CAIP_NAMESPACE as D}from"@rango-dev/wallets-core/namespaces/tron";import{CAIP_BITCOIN_CHAIN_ID as U,CAIP_BITCOINCASH_CHAIN_ID as v,CAIP_DOGECOIN_CHAIN_ID as x,CAIP_LITECOIN_CHAIN_ID as y,CAIP_NAMESPACE as e,CAIP_ZCASH_CHAIN_ID as g}from"@rango-dev/wallets-core/namespaces/utxo";import{TransactionType as a}from"rango-types";var I={BITCOIN:`${e}:${U}`,BITCOINCASH:`${e}:${v}`,DOGECOIN:`${e}:${x}`,ETHEREUM:`${t}:${P}`,LITECOIN:`${e}:${y}`,SOLANA:`${m}:${R}`,STARKNET:`${l}:${M}`,STELLAR:`${B}:${f}`,SUI:`${L}:${u}`,TON:`${h}:${H}`,TRON:`${D}:${$}`,XRPL:`${d}:${s}`,ZCASH:`${e}:${g}`},Y=16,X=10,O={BCH:I.BITCOINCASH,BTC:I.BITCOIN,DOGE:I.DOGECOIN,LTC:I.LITECOIN,ZCASH:I.ZCASH};function T(C,n){if(!n)return null;let i=/^0x[0-9a-f]+$/i.test(n),E=/^[0-9]+$/.test(n);if(!i&&!E)return null;let o=parseInt(n,i?Y:X);return Number.isSafeInteger(o)?`${C}:${o}`:null}r(T,"toNumericCaip");var K={[a.SOLANA]:I.SOLANA,[a.STARKNET]:I.STARKNET,[a.STELLAR]:I.STELLAR,[a.SUI]:I.SUI,[a.TON]:I.TON,[a.TRON]:I.TRON,[a.XRPL]:I.XRPL,[a.EVM]:C=>T(t,C.chainId),[a.HYPERLIQUID]:C=>T(t,C.chainId),[a.TRANSFER]:C=>O[C.name]??null,[a.COSMOS]:null};function S(C){let n=K[C.type];return n?typeof n=="function"?n(C):n:null}r(S,"convertBlockchainMetaToCaip");function c(C,n){return O[C]===n}r(c,"isTransferBlockchainName");function CA(C){return c(C,I.BITCOIN)}r(CA,"isBitcoinBlockchain");function nA(C){return c(C,I.ZCASH)}r(nA,"isZcashBlockchain");function rA(C,n){return n?.filter(i=>{let E=S(i);return E?C.isChainSupported(E):!1})??[]}r(rA,"getSupportedChainsFromNamespace");function EA(C,n){let i=C.info()?.metadata.properties?.find(E=>E.name==="namespaces");return n?.filter(E=>{let o=S(E);return o?i?.value.data.some(_=>_.isChainSupported(o))??!1:!1})??[]}r(EA,"getSupportedChainsFromProvider");function oA(C){return C.reduce((n,i)=>(n[i.name]={chainName:i.info.chainName,chainId:i.chainId,nativeCurrency:i.info.nativeCurrency,rpcUrls:i.info.rpcUrls,blockExplorerUrls:i.info.blockExplorerUrls},n),{})}r(oA,"convertEvmBlockchainMetaToEvmChainInfo");export{I as CAIP_CHAINS,F as HYPERLIQUID_SIGN_NETWORK,p as Networks,S as convertBlockchainMetaToCaip,oA as convertEvmBlockchainMetaToEvmChainInfo,rA as getSupportedChainsFromNamespace,EA as getSupportedChainsFromProvider,CA as isBitcoinBlockchain,c as isTransferBlockchainName,nA as isZcashBlockchain};
1
+ var N=Object.defineProperty;var r=(C,n)=>N(C,"name",{value:n,configurable:!0});var p=(A=>(A.BTC="BTC",A.BSC="BSC",A.LTC="LTC",A.THORCHAIN="THOR",A.BCH="BCH",A.BINANCE="BNB",A.BLAST="BLAST",A.CELO="CELO",A.LINEA="LINEA",A.METIS="METIS",A.SONIC="SONIC",A.BERACHAIN="BERACHAIN",A.ZETA_CHAIN="ZETA_CHAIN",A.SCROLL="SCROLL",A.ZKSYNC="ZKSYNC",A.MONAD="MONAD",A.ETHEREUM="ETH",A.POLYGON="POLYGON",A.POLKADOT="",A.TRON="TRON",A.DOGE="DOGE",A.HARMONY="HARMONY",A.AVAX_CCHAIN="AVAX_CCHAIN",A.FANTOM="FANTOM",A.MOONBEAM="MOONBEAM",A.ARBITRUM="ARBITRUM",A.BOBA="BOBA",A.OPTIMISM="OPTIMISM",A.FUSE="FUSE",A.CRONOS="CRONOS",A.SOLANA="SOLANA",A.MOONRIVER="MOONRIVER",A.GNOSIS="GNOSIS",A.MAYA="MAYA",A.STARKNET="STARKNET",A.STELLAR="STELLAR",A.TON="TON",A.BASE="BASE",A.SUI="SUI",A.XRPL="XRPL",A.ZCASH="ZCASH",A.HYPERLIQUID="HYPERLIQUID",A.Unknown="Unkown",A))(p||{}),F="ARBITRUM";import{CAIP_BITCOIN_CHAIN_ID as P,CAIP_BITCOINCASH_CHAIN_ID as R,CAIP_DOGECOIN_CHAIN_ID as m,CAIP_LITECOIN_CHAIN_ID as M,CAIP_NAMESPACE as e,CAIP_ZCASH_CHAIN_ID as l}from"@hub3js/bip122";import{CAIP_ETHEREUM_CHAIN_ID as f,CAIP_NAMESPACE as t}from"@hub3js/evm";import{CAIP_SOLANA_CHAIN_ID as B,CAIP_NAMESPACE as u}from"@hub3js/solana";import{CAIP_STARKNET_CHAIN_ID as L,CAIP_NAMESPACE as H}from"@hub3js/starknet";import{CAIP_STELLAR_CHAIN_ID as h,CAIP_NAMESPACE as s}from"@hub3js/stellar";import{CAIP_SUI_CHAIN_ID as d,CAIP_NAMESPACE as $}from"@hub3js/sui";import{CAIP_TON_CHAIN_ID as D,CAIP_NAMESPACE as U}from"@hub3js/tvm";import{CAIP_XRPL_CHAIN_ID as v,CAIP_NAMESPACE as x}from"@hub3js/xrpl";import{CAIP_TRON_CHAIN_ID as y,CAIP_NAMESPACE as g}from"@rango-dev/wallets-core/namespaces/tron";import{TransactionType as a}from"rango-types";var I={BITCOIN:`${e}:${P}`,BITCOINCASH:`${e}:${R}`,DOGECOIN:`${e}:${m}`,ETHEREUM:`${t}:${f}`,LITECOIN:`${e}:${M}`,SOLANA:`${u}:${B}`,STARKNET:`${H}:${L}`,STELLAR:`${s}:${h}`,SUI:`${$}:${d}`,TON:`${U}:${D}`,TRON:`${g}:${y}`,XRPL:`${x}:${v}`,ZCASH:`${e}:${l}`},Y=16,X=10,O={BCH:I.BITCOINCASH,BTC:I.BITCOIN,DOGE:I.DOGECOIN,LTC:I.LITECOIN,ZCASH:I.ZCASH};function T(C,n){if(!n)return null;let i=/^0x[0-9a-f]+$/i.test(n),E=/^[0-9]+$/.test(n);if(!i&&!E)return null;let o=parseInt(n,i?Y:X);return Number.isSafeInteger(o)?`${C}:${o}`:null}r(T,"toNumericCaip");var K={[a.SOLANA]:I.SOLANA,[a.STARKNET]:I.STARKNET,[a.STELLAR]:I.STELLAR,[a.SUI]:I.SUI,[a.TON]:I.TON,[a.TRON]:I.TRON,[a.XRPL]:I.XRPL,[a.EVM]:C=>T(t,C.chainId),[a.HYPERLIQUID]:C=>T(t,C.chainId),[a.TRANSFER]:C=>O[C.name]??null,[a.COSMOS]:null};function S(C){let n=K[C.type];return n?typeof n=="function"?n(C):n:null}r(S,"convertBlockchainMetaToCaip");function c(C,n){return O[C]===n}r(c,"isTransferBlockchainName");function CA(C){return c(C,I.BITCOIN)}r(CA,"isBitcoinBlockchain");function nA(C){return c(C,I.ZCASH)}r(nA,"isZcashBlockchain");function rA(C,n){return n?.filter(i=>{let E=S(i);return E?C.isChainSupported(E):!1})??[]}r(rA,"getSupportedChainsFromNamespace");function EA(C,n){let i=C.info()?.metadata.properties?.find(E=>E.name==="namespaces");return n?.filter(E=>{let o=S(E);return o?i?.value.data.some(_=>_.isChainSupported(o))??!1:!1})??[]}r(EA,"getSupportedChainsFromProvider");function oA(C){return C.reduce((n,i)=>(n[i.name]={chainName:i.info.chainName,chainId:i.chainId,nativeCurrency:i.info.nativeCurrency,rpcUrls:i.info.rpcUrls,blockExplorerUrls:i.info.blockExplorerUrls},n),{})}r(oA,"convertEvmBlockchainMetaToEvmChainInfo");export{I as CAIP_CHAINS,F as HYPERLIQUID_SIGN_NETWORK,p as Networks,S as convertBlockchainMetaToCaip,oA as convertEvmBlockchainMetaToEvmChainInfo,rA as getSupportedChainsFromNamespace,EA as getSupportedChainsFromProvider,CA as isBitcoinBlockchain,c as isTransferBlockchainName,nA as isZcashBlockchain};
2
2
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/networks.ts", "../src/caip.ts", "../src/utils.ts"],
4
- "sourcesContent": ["export enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n BLAST = 'BLAST',\n CELO = 'CELO',\n LINEA = 'LINEA',\n METIS = 'METIS',\n SONIC = 'SONIC',\n BERACHAIN = 'BERACHAIN',\n ZETA_CHAIN = 'ZETA_CHAIN',\n SCROLL = 'SCROLL',\n ZKSYNC = 'ZKSYNC',\n MONAD = 'MONAD',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n MAYA = 'MAYA',\n STARKNET = 'STARKNET',\n STELLAR = 'STELLAR',\n TON = 'TON',\n BASE = 'BASE',\n SUI = 'SUI',\n XRPL = 'XRPL',\n ZCASH = 'ZCASH',\n HYPERLIQUID = 'HYPERLIQUID',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\nexport const HYPERLIQUID_SIGN_NETWORK = Networks.ARBITRUM;\n", "import type { BlockchainMeta } from 'rango-types';\n\nimport {\n CAIP_ETHEREUM_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_EVM_NAMESPACE,\n} from '@hub3js/evm';\nimport {\n CAIP_SOLANA_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_SOLANA_NAMESPACE,\n} from '@hub3js/solana';\nimport {\n CAIP_STARKNET_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_STARKNET_NAMESPACE,\n} from '@hub3js/starknet';\nimport {\n CAIP_STELLAR_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_STELLAR_NAMESPACE,\n} from '@hub3js/stellar';\nimport {\n CAIP_SUI_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_SUI_NAMESPACE,\n} from '@hub3js/sui';\nimport {\n CAIP_TON_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_TVM_NAMESPACE,\n} from '@hub3js/tvm';\nimport {\n CAIP_XRPL_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_XRPL_NAMESPACE,\n} from '@hub3js/xrpl';\nimport {\n CAIP_TRON_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_TRON_NAMESPACE,\n} from '@rango-dev/wallets-core/namespaces/tron';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n CAIP_BITCOINCASH_CHAIN_ID,\n CAIP_DOGECOIN_CHAIN_ID,\n CAIP_LITECOIN_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_UTXO_NAMESPACE,\n CAIP_ZCASH_CHAIN_ID,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { TransactionType } from 'rango-types';\n\nimport { Networks } from './networks.js';\n\n/**\n * A CAIP-2 chain id, e.g. `eip155:1` or `bip122:000000000019d6689c085ae165831e93`.\n *\n * @see https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md\n */\nexport type CaipChainId = `${string}:${string}`;\n\n/** Pair a namespace with a reference here, not at call sites \u2014 that's where ids get crossed. */\nexport const CAIP_CHAINS = {\n BITCOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_BITCOIN_CHAIN_ID}`,\n BITCOINCASH: `${CAIP_UTXO_NAMESPACE}:${CAIP_BITCOINCASH_CHAIN_ID}`,\n DOGECOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_DOGECOIN_CHAIN_ID}`,\n ETHEREUM: `${CAIP_EVM_NAMESPACE}:${CAIP_ETHEREUM_CHAIN_ID}`,\n LITECOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_LITECOIN_CHAIN_ID}`,\n SOLANA: `${CAIP_SOLANA_NAMESPACE}:${CAIP_SOLANA_CHAIN_ID}`,\n STARKNET: `${CAIP_STARKNET_NAMESPACE}:${CAIP_STARKNET_CHAIN_ID}`,\n STELLAR: `${CAIP_STELLAR_NAMESPACE}:${CAIP_STELLAR_CHAIN_ID}`,\n SUI: `${CAIP_SUI_NAMESPACE}:${CAIP_SUI_CHAIN_ID}`,\n TON: `${CAIP_TVM_NAMESPACE}:${CAIP_TON_CHAIN_ID}`,\n TRON: `${CAIP_TRON_NAMESPACE}:${CAIP_TRON_CHAIN_ID}`,\n XRPL: `${CAIP_XRPL_NAMESPACE}:${CAIP_XRPL_CHAIN_ID}`,\n ZCASH: `${CAIP_UTXO_NAMESPACE}:${CAIP_ZCASH_CHAIN_ID}`,\n} as const satisfies Record<string, CaipChainId>;\n\ntype BlockchainMetaForCaip = Pick<BlockchainMeta, 'type' | 'chainId' | 'name'>;\n\nconst HEX_RADIX = 16;\nconst DECIMAL_RADIX = 10;\n\n/**\n * `TRANSFER` covers several UTXO chains and its meta `chainId` is always `null`, so\n * these can only be keyed by name. This table is the one place in the wallet packages\n * that has to know a Rango chain name \u2014 everywhere else works in CAIP-2 ids, which is\n * why `Networks` shouldn't spread beyond it.\n *\n * DASH is knowingly absent: no CAIP constant and no provider supports it, so it\n * converts to `null` and is dropped.\n */\nconst CAIP_BY_TRANSFER_BLOCKCHAIN_NAME: Record<string, CaipChainId> = {\n [Networks.BCH]: CAIP_CHAINS.BITCOINCASH,\n [Networks.BTC]: CAIP_CHAINS.BITCOIN,\n [Networks.DOGE]: CAIP_CHAINS.DOGECOIN,\n [Networks.LTC]: CAIP_CHAINS.LITECOIN,\n [Networks.ZCASH]: CAIP_CHAINS.ZCASH,\n};\n\n/**\n * `eip155` references are decimal but meta reports EVM chainIds as hex ('0xa86a'), and\n * Hyperliquid reports a bare decimal ('1337') \u2014 so the prefix picks the radix, not the\n * chain family.\n */\nfunction toNumericCaip(\n namespace: string,\n chainId: string | null | undefined\n): CaipChainId | null {\n if (!chainId) {\n return null;\n }\n\n const isHex = /^0x[0-9a-f]+$/i.test(chainId);\n const isDecimal = /^[0-9]+$/.test(chainId);\n\n // `parseInt` stops at the first bad character, so '12abc' would become chain id '12'.\n if (!isHex && !isDecimal) {\n return null;\n }\n\n const reference = parseInt(chainId, isHex ? HEX_RADIX : DECIMAL_RADIX);\n\n return Number.isSafeInteger(reference) ? `${namespace}:${reference}` : null;\n}\n\ntype CaipResolver =\n | CaipChainId\n | ((blockchainMeta: BlockchainMetaForCaip) => CaipChainId | null)\n | null;\n\n/**\n * A total `Record` on purpose: a new `TransactionType` in rango-types fails to compile\n * here instead of silently making that family invisible to every wallet.\n */\nconst CAIP_BY_TRANSACTION_TYPE: Record<TransactionType, CaipResolver> = {\n /*\n * Fixed ids, ignoring meta `chainId` \u2014 it is NOT the CAIP reference for several of\n * these (meta reports Solana as 'mainnet-beta', Sui as 'sui-mainnet'), so deriving\n * from it would produce ids that don't match the accounts providers report.\n */\n [TransactionType.SOLANA]: CAIP_CHAINS.SOLANA,\n [TransactionType.STARKNET]: CAIP_CHAINS.STARKNET,\n [TransactionType.STELLAR]: CAIP_CHAINS.STELLAR,\n [TransactionType.SUI]: CAIP_CHAINS.SUI,\n [TransactionType.TON]: CAIP_CHAINS.TON,\n [TransactionType.TRON]: CAIP_CHAINS.TRON,\n [TransactionType.XRPL]: CAIP_CHAINS.XRPL,\n\n [TransactionType.EVM]: (blockchainMeta) =>\n toNumericCaip(CAIP_EVM_NAMESPACE, blockchainMeta.chainId),\n\n /*\n * `eip155` so the wallets claiming the whole EVM family keep supporting Hyperliquid,\n * as they did when they listed it by name. The reference is meta's 1337, NOT\n * HyperEVM's real 999 \u2014 safe only because an `eip155` reference is never turned back\n * into a chain id. Give Hyperliquid its own namespace before deriving a network\n * switch or RPC target from this.\n */\n [TransactionType.HYPERLIQUID]: (blockchainMeta) =>\n toNumericCaip(CAIP_EVM_NAMESPACE, blockchainMeta.chainId),\n\n [TransactionType.TRANSFER]: (blockchainMeta) =>\n CAIP_BY_TRANSFER_BLOCKCHAIN_NAME[blockchainMeta.name] ?? null,\n\n // Not addressable \u2014 no namespace claims it, so no provider can match it.\n [TransactionType.COSMOS]: null,\n};\n\n/**\n * Convert a meta entry to its CAIP-2 chain id, so providers are handed CAIP rather than\n * Rango names. `null` means \"not addressable by CAIP\" \u2014 callers should skip the chain\n * rather than fall back to a name.\n */\nexport function convertBlockchainMetaToCaip(\n blockchainMeta: BlockchainMetaForCaip\n): CaipChainId | null {\n const resolver = CAIP_BY_TRANSACTION_TYPE[blockchainMeta.type];\n\n if (!resolver) {\n return null;\n }\n\n return typeof resolver === 'function' ? resolver(blockchainMeta) : resolver;\n}\n\n/**\n * The name-level counterpart to {@link convertBlockchainMetaToCaip}: signers get\n * `asset.blockchain` ('BTC'), not a chain id. Only `TRANSFER` names resolve.\n */\nexport function isTransferBlockchainName(\n blockchainName: string,\n caipChainId: CaipChainId\n): boolean {\n return CAIP_BY_TRANSFER_BLOCKCHAIN_NAME[blockchainName] === caipChainId;\n}\n\nexport function isBitcoinBlockchain(blockchainName: string): boolean {\n return isTransferBlockchainName(blockchainName, CAIP_CHAINS.BITCOIN);\n}\n\nexport function isZcashBlockchain(blockchainName: string): boolean {\n return isTransferBlockchainName(blockchainName, CAIP_CHAINS.ZCASH);\n}\n", "import type { Provider } from '@hub3js/core';\nimport type { Chain } from '@hub3js/evm';\nimport type { BlockchainMeta, EvmBlockchainMeta } from 'rango-types';\n\nimport { convertBlockchainMetaToCaip } from './caip.js';\n\ntype ChainSupport = {\n isChainSupported: (chainId: string) => boolean;\n};\n\nexport type EvmNetworksChainInfo = Record<string, Chain>;\n\n/**\n * The chains of `allBlockChains` a single namespace can address. Chains that don't\n * convert to CAIP are dropped rather than guessed at - see\n * {@link convertBlockchainMetaToCaip}.\n */\nexport function getSupportedChainsFromNamespace(\n namespace: ChainSupport,\n allBlockChains: BlockchainMeta[] | undefined\n): BlockchainMeta[] {\n return (\n allBlockChains?.filter((blockchain) => {\n const chainId = convertBlockchainMetaToCaip(blockchain);\n\n return chainId ? namespace.isChainSupported(chainId) : false;\n }) ?? []\n );\n}\n\n/**\n * The union of what every namespace of a provider supports, in `allBlockChains` order\n * and without duplicates when two namespaces claim the same chain.\n */\nexport function getSupportedChainsFromProvider(\n provider: Provider,\n allBlockChains: BlockchainMeta[] | undefined\n): BlockchainMeta[] {\n const namespacesProperty = provider\n .info()\n ?.metadata.properties?.find((property) => property.name === 'namespaces');\n\n return (\n allBlockChains?.filter((blockchain) => {\n const chainId = convertBlockchainMetaToCaip(blockchain);\n\n if (!chainId) {\n return false;\n }\n\n return (\n namespacesProperty?.value.data.some((namespace) =>\n namespace.isChainSupported(chainId)\n ) ?? false\n );\n }) ?? []\n );\n}\n\n/*\n * TODO: remove this. It exists only so a provider can look a chain up by Rango's\n * network name, which is knowledge a provider shouldn't carry \u2014 the caller already\n * resolves the chain and should hand the provider an EIP-3085 description instead.\n * Once every consumer does that, this table and the providers' dependency on\n * Rango's chain model go away together.\n */\nexport function convertEvmBlockchainMetaToEvmChainInfo(\n evmBlockchains: EvmBlockchainMeta[]\n): EvmNetworksChainInfo {\n return evmBlockchains.reduce<EvmNetworksChainInfo>(\n (evmNetworksChainInfo, blockchainMeta) => {\n evmNetworksChainInfo[blockchainMeta.name] = {\n chainName: blockchainMeta.info.chainName,\n chainId: blockchainMeta.chainId,\n nativeCurrency: blockchainMeta.info.nativeCurrency,\n rpcUrls: blockchainMeta.info.rpcUrls,\n blockExplorerUrls: blockchainMeta.info.blockExplorerUrls,\n };\n\n return evmNetworksChainInfo;\n },\n {}\n );\n}\n"],
5
- "mappings": "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",
6
- "names": ["Networks", "HYPERLIQUID_SIGN_NETWORK", "CAIP_ETHEREUM_CHAIN_ID", "CAIP_EVM_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP_SOLANA_NAMESPACE", "CAIP_STARKNET_CHAIN_ID", "CAIP_STARKNET_NAMESPACE", "CAIP_STELLAR_CHAIN_ID", "CAIP_STELLAR_NAMESPACE", "CAIP_SUI_CHAIN_ID", "CAIP_SUI_NAMESPACE", "CAIP_TON_CHAIN_ID", "CAIP_TVM_NAMESPACE", "CAIP_XRPL_CHAIN_ID", "CAIP_XRPL_NAMESPACE", "CAIP_TRON_CHAIN_ID", "CAIP_TRON_NAMESPACE", "CAIP_BITCOIN_CHAIN_ID", "CAIP_BITCOINCASH_CHAIN_ID", "CAIP_DOGECOIN_CHAIN_ID", "CAIP_LITECOIN_CHAIN_ID", "CAIP_UTXO_NAMESPACE", "CAIP_ZCASH_CHAIN_ID", "TransactionType", "CAIP_CHAINS", "CAIP_UTXO_NAMESPACE", "CAIP_BITCOIN_CHAIN_ID", "CAIP_BITCOINCASH_CHAIN_ID", "CAIP_DOGECOIN_CHAIN_ID", "CAIP_EVM_NAMESPACE", "CAIP_ETHEREUM_CHAIN_ID", "CAIP_LITECOIN_CHAIN_ID", "CAIP_SOLANA_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP_STARKNET_NAMESPACE", "CAIP_STARKNET_CHAIN_ID", "CAIP_STELLAR_NAMESPACE", "CAIP_STELLAR_CHAIN_ID", "CAIP_SUI_NAMESPACE", "CAIP_SUI_CHAIN_ID", "CAIP_TVM_NAMESPACE", "CAIP_TON_CHAIN_ID", "CAIP_TRON_NAMESPACE", "CAIP_TRON_CHAIN_ID", "CAIP_XRPL_NAMESPACE", "CAIP_XRPL_CHAIN_ID", "CAIP_ZCASH_CHAIN_ID", "HEX_RADIX", "DECIMAL_RADIX", "CAIP_BY_TRANSFER_BLOCKCHAIN_NAME", "toNumericCaip", "namespace", "chainId", "isHex", "isDecimal", "reference", "__name", "CAIP_BY_TRANSACTION_TYPE", "TransactionType", "blockchainMeta", "convertBlockchainMetaToCaip", "resolver", "isTransferBlockchainName", "blockchainName", "caipChainId", "isBitcoinBlockchain", "isZcashBlockchain", "getSupportedChainsFromNamespace", "namespace", "allBlockChains", "blockchain", "chainId", "convertBlockchainMetaToCaip", "__name", "getSupportedChainsFromProvider", "provider", "namespacesProperty", "property", "convertEvmBlockchainMetaToEvmChainInfo", "evmBlockchains", "evmNetworksChainInfo", "blockchainMeta"]
4
+ "sourcesContent": ["export enum Networks {\n BTC = 'BTC',\n BSC = 'BSC',\n LTC = 'LTC',\n THORCHAIN = 'THOR',\n BCH = 'BCH',\n BINANCE = 'BNB',\n BLAST = 'BLAST',\n CELO = 'CELO',\n LINEA = 'LINEA',\n METIS = 'METIS',\n SONIC = 'SONIC',\n BERACHAIN = 'BERACHAIN',\n ZETA_CHAIN = 'ZETA_CHAIN',\n SCROLL = 'SCROLL',\n ZKSYNC = 'ZKSYNC',\n MONAD = 'MONAD',\n ETHEREUM = 'ETH',\n POLYGON = 'POLYGON',\n POLKADOT = '',\n TRON = 'TRON',\n DOGE = 'DOGE',\n HARMONY = 'HARMONY',\n AVAX_CCHAIN = 'AVAX_CCHAIN',\n FANTOM = 'FANTOM',\n MOONBEAM = 'MOONBEAM',\n ARBITRUM = 'ARBITRUM',\n BOBA = 'BOBA',\n OPTIMISM = 'OPTIMISM',\n FUSE = 'FUSE',\n CRONOS = 'CRONOS',\n SOLANA = 'SOLANA',\n MOONRIVER = 'MOONRIVER',\n GNOSIS = 'GNOSIS',\n MAYA = 'MAYA',\n STARKNET = 'STARKNET',\n STELLAR = 'STELLAR',\n TON = 'TON',\n BASE = 'BASE',\n SUI = 'SUI',\n XRPL = 'XRPL',\n ZCASH = 'ZCASH',\n HYPERLIQUID = 'HYPERLIQUID',\n\n // Using instead of null\n Unknown = 'Unkown',\n}\n\nexport const HYPERLIQUID_SIGN_NETWORK = Networks.ARBITRUM;\n", "import type { BlockchainMeta } from 'rango-types';\n\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n CAIP_BITCOINCASH_CHAIN_ID,\n CAIP_DOGECOIN_CHAIN_ID,\n CAIP_LITECOIN_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_UTXO_NAMESPACE,\n CAIP_ZCASH_CHAIN_ID,\n} from '@hub3js/bip122';\nimport {\n CAIP_ETHEREUM_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_EVM_NAMESPACE,\n} from '@hub3js/evm';\nimport {\n CAIP_SOLANA_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_SOLANA_NAMESPACE,\n} from '@hub3js/solana';\nimport {\n CAIP_STARKNET_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_STARKNET_NAMESPACE,\n} from '@hub3js/starknet';\nimport {\n CAIP_STELLAR_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_STELLAR_NAMESPACE,\n} from '@hub3js/stellar';\nimport {\n CAIP_SUI_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_SUI_NAMESPACE,\n} from '@hub3js/sui';\nimport {\n CAIP_TON_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_TVM_NAMESPACE,\n} from '@hub3js/tvm';\nimport {\n CAIP_XRPL_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_XRPL_NAMESPACE,\n} from '@hub3js/xrpl';\nimport {\n CAIP_TRON_CHAIN_ID,\n CAIP_NAMESPACE as CAIP_TRON_NAMESPACE,\n} from '@rango-dev/wallets-core/namespaces/tron';\nimport { TransactionType } from 'rango-types';\n\nimport { Networks } from './networks.js';\n\n/**\n * A CAIP-2 chain id, e.g. `eip155:1` or `bip122:000000000019d6689c085ae165831e93`.\n *\n * @see https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md\n */\nexport type CaipChainId = `${string}:${string}`;\n\n/** Pair a namespace with a reference here, not at call sites \u2014 that's where ids get crossed. */\nexport const CAIP_CHAINS = {\n BITCOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_BITCOIN_CHAIN_ID}`,\n BITCOINCASH: `${CAIP_UTXO_NAMESPACE}:${CAIP_BITCOINCASH_CHAIN_ID}`,\n DOGECOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_DOGECOIN_CHAIN_ID}`,\n ETHEREUM: `${CAIP_EVM_NAMESPACE}:${CAIP_ETHEREUM_CHAIN_ID}`,\n LITECOIN: `${CAIP_UTXO_NAMESPACE}:${CAIP_LITECOIN_CHAIN_ID}`,\n SOLANA: `${CAIP_SOLANA_NAMESPACE}:${CAIP_SOLANA_CHAIN_ID}`,\n STARKNET: `${CAIP_STARKNET_NAMESPACE}:${CAIP_STARKNET_CHAIN_ID}`,\n STELLAR: `${CAIP_STELLAR_NAMESPACE}:${CAIP_STELLAR_CHAIN_ID}`,\n SUI: `${CAIP_SUI_NAMESPACE}:${CAIP_SUI_CHAIN_ID}`,\n TON: `${CAIP_TVM_NAMESPACE}:${CAIP_TON_CHAIN_ID}`,\n TRON: `${CAIP_TRON_NAMESPACE}:${CAIP_TRON_CHAIN_ID}`,\n XRPL: `${CAIP_XRPL_NAMESPACE}:${CAIP_XRPL_CHAIN_ID}`,\n ZCASH: `${CAIP_UTXO_NAMESPACE}:${CAIP_ZCASH_CHAIN_ID}`,\n} as const satisfies Record<string, CaipChainId>;\n\ntype BlockchainMetaForCaip = Pick<BlockchainMeta, 'type' | 'chainId' | 'name'>;\n\nconst HEX_RADIX = 16;\nconst DECIMAL_RADIX = 10;\n\n/**\n * `TRANSFER` covers several UTXO chains and its meta `chainId` is always `null`, so\n * these can only be keyed by name. This table is the one place in the wallet packages\n * that has to know a Rango chain name \u2014 everywhere else works in CAIP-2 ids, which is\n * why `Networks` shouldn't spread beyond it.\n *\n * DASH is knowingly absent: no CAIP constant and no provider supports it, so it\n * converts to `null` and is dropped.\n */\nconst CAIP_BY_TRANSFER_BLOCKCHAIN_NAME: Record<string, CaipChainId> = {\n [Networks.BCH]: CAIP_CHAINS.BITCOINCASH,\n [Networks.BTC]: CAIP_CHAINS.BITCOIN,\n [Networks.DOGE]: CAIP_CHAINS.DOGECOIN,\n [Networks.LTC]: CAIP_CHAINS.LITECOIN,\n [Networks.ZCASH]: CAIP_CHAINS.ZCASH,\n};\n\n/**\n * `eip155` references are decimal but meta reports EVM chainIds as hex ('0xa86a'), and\n * Hyperliquid reports a bare decimal ('1337') \u2014 so the prefix picks the radix, not the\n * chain family.\n */\nfunction toNumericCaip(\n namespace: string,\n chainId: string | null | undefined\n): CaipChainId | null {\n if (!chainId) {\n return null;\n }\n\n const isHex = /^0x[0-9a-f]+$/i.test(chainId);\n const isDecimal = /^[0-9]+$/.test(chainId);\n\n // `parseInt` stops at the first bad character, so '12abc' would become chain id '12'.\n if (!isHex && !isDecimal) {\n return null;\n }\n\n const reference = parseInt(chainId, isHex ? HEX_RADIX : DECIMAL_RADIX);\n\n return Number.isSafeInteger(reference) ? `${namespace}:${reference}` : null;\n}\n\ntype CaipResolver =\n | CaipChainId\n | ((blockchainMeta: BlockchainMetaForCaip) => CaipChainId | null)\n | null;\n\n/**\n * A total `Record` on purpose: a new `TransactionType` in rango-types fails to compile\n * here instead of silently making that family invisible to every wallet.\n */\nconst CAIP_BY_TRANSACTION_TYPE: Record<TransactionType, CaipResolver> = {\n /*\n * Fixed ids, ignoring meta `chainId` \u2014 it is NOT the CAIP reference for several of\n * these (meta reports Solana as 'mainnet-beta', Sui as 'sui-mainnet'), so deriving\n * from it would produce ids that don't match the accounts providers report.\n */\n [TransactionType.SOLANA]: CAIP_CHAINS.SOLANA,\n [TransactionType.STARKNET]: CAIP_CHAINS.STARKNET,\n [TransactionType.STELLAR]: CAIP_CHAINS.STELLAR,\n [TransactionType.SUI]: CAIP_CHAINS.SUI,\n [TransactionType.TON]: CAIP_CHAINS.TON,\n [TransactionType.TRON]: CAIP_CHAINS.TRON,\n [TransactionType.XRPL]: CAIP_CHAINS.XRPL,\n\n [TransactionType.EVM]: (blockchainMeta) =>\n toNumericCaip(CAIP_EVM_NAMESPACE, blockchainMeta.chainId),\n\n /*\n * `eip155` so the wallets claiming the whole EVM family keep supporting Hyperliquid,\n * as they did when they listed it by name. The reference is meta's 1337, NOT\n * HyperEVM's real 999 \u2014 safe only because an `eip155` reference is never turned back\n * into a chain id. Give Hyperliquid its own namespace before deriving a network\n * switch or RPC target from this.\n */\n [TransactionType.HYPERLIQUID]: (blockchainMeta) =>\n toNumericCaip(CAIP_EVM_NAMESPACE, blockchainMeta.chainId),\n\n [TransactionType.TRANSFER]: (blockchainMeta) =>\n CAIP_BY_TRANSFER_BLOCKCHAIN_NAME[blockchainMeta.name] ?? null,\n\n // Not addressable \u2014 no namespace claims it, so no provider can match it.\n [TransactionType.COSMOS]: null,\n};\n\n/**\n * Convert a meta entry to its CAIP-2 chain id, so providers are handed CAIP rather than\n * Rango names. `null` means \"not addressable by CAIP\" \u2014 callers should skip the chain\n * rather than fall back to a name.\n */\nexport function convertBlockchainMetaToCaip(\n blockchainMeta: BlockchainMetaForCaip\n): CaipChainId | null {\n const resolver = CAIP_BY_TRANSACTION_TYPE[blockchainMeta.type];\n\n if (!resolver) {\n return null;\n }\n\n return typeof resolver === 'function' ? resolver(blockchainMeta) : resolver;\n}\n\n/**\n * The name-level counterpart to {@link convertBlockchainMetaToCaip}: signers get\n * `asset.blockchain` ('BTC'), not a chain id. Only `TRANSFER` names resolve.\n */\nexport function isTransferBlockchainName(\n blockchainName: string,\n caipChainId: CaipChainId\n): boolean {\n return CAIP_BY_TRANSFER_BLOCKCHAIN_NAME[blockchainName] === caipChainId;\n}\n\nexport function isBitcoinBlockchain(blockchainName: string): boolean {\n return isTransferBlockchainName(blockchainName, CAIP_CHAINS.BITCOIN);\n}\n\nexport function isZcashBlockchain(blockchainName: string): boolean {\n return isTransferBlockchainName(blockchainName, CAIP_CHAINS.ZCASH);\n}\n", "import type { Provider } from '@hub3js/core';\nimport type { Chain } from '@hub3js/evm';\nimport type { BlockchainMeta, EvmBlockchainMeta } from 'rango-types';\n\nimport { convertBlockchainMetaToCaip } from './caip.js';\n\ntype ChainSupport = {\n isChainSupported: (chainId: string) => boolean;\n};\n\nexport type EvmNetworksChainInfo = Record<string, Chain>;\n\n/**\n * The chains of `allBlockChains` a single namespace can address. Chains that don't\n * convert to CAIP are dropped rather than guessed at - see\n * {@link convertBlockchainMetaToCaip}.\n */\nexport function getSupportedChainsFromNamespace(\n namespace: ChainSupport,\n allBlockChains: BlockchainMeta[] | undefined\n): BlockchainMeta[] {\n return (\n allBlockChains?.filter((blockchain) => {\n const chainId = convertBlockchainMetaToCaip(blockchain);\n\n return chainId ? namespace.isChainSupported(chainId) : false;\n }) ?? []\n );\n}\n\n/**\n * The union of what every namespace of a provider supports, in `allBlockChains` order\n * and without duplicates when two namespaces claim the same chain.\n */\nexport function getSupportedChainsFromProvider(\n provider: Provider,\n allBlockChains: BlockchainMeta[] | undefined\n): BlockchainMeta[] {\n const namespacesProperty = provider\n .info()\n ?.metadata.properties?.find((property) => property.name === 'namespaces');\n\n return (\n allBlockChains?.filter((blockchain) => {\n const chainId = convertBlockchainMetaToCaip(blockchain);\n\n if (!chainId) {\n return false;\n }\n\n return (\n namespacesProperty?.value.data.some((namespace) =>\n namespace.isChainSupported(chainId)\n ) ?? false\n );\n }) ?? []\n );\n}\n\n/*\n * TODO: remove this. It exists only so a provider can look a chain up by Rango's\n * network name, which is knowledge a provider shouldn't carry \u2014 the caller already\n * resolves the chain and should hand the provider an EIP-3085 description instead.\n * Once every consumer does that, this table and the providers' dependency on\n * Rango's chain model go away together.\n */\nexport function convertEvmBlockchainMetaToEvmChainInfo(\n evmBlockchains: EvmBlockchainMeta[]\n): EvmNetworksChainInfo {\n return evmBlockchains.reduce<EvmNetworksChainInfo>(\n (evmNetworksChainInfo, blockchainMeta) => {\n evmNetworksChainInfo[blockchainMeta.name] = {\n chainName: blockchainMeta.info.chainName,\n chainId: blockchainMeta.chainId,\n nativeCurrency: blockchainMeta.info.nativeCurrency,\n rpcUrls: blockchainMeta.info.rpcUrls,\n blockExplorerUrls: blockchainMeta.info.blockExplorerUrls,\n };\n\n return evmNetworksChainInfo;\n },\n {}\n );\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Networks", "HYPERLIQUID_SIGN_NETWORK", "CAIP_BITCOIN_CHAIN_ID", "CAIP_BITCOINCASH_CHAIN_ID", "CAIP_DOGECOIN_CHAIN_ID", "CAIP_LITECOIN_CHAIN_ID", "CAIP_UTXO_NAMESPACE", "CAIP_ZCASH_CHAIN_ID", "CAIP_ETHEREUM_CHAIN_ID", "CAIP_EVM_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP_SOLANA_NAMESPACE", "CAIP_STARKNET_CHAIN_ID", "CAIP_STARKNET_NAMESPACE", "CAIP_STELLAR_CHAIN_ID", "CAIP_STELLAR_NAMESPACE", "CAIP_SUI_CHAIN_ID", "CAIP_SUI_NAMESPACE", "CAIP_TON_CHAIN_ID", "CAIP_TVM_NAMESPACE", "CAIP_XRPL_CHAIN_ID", "CAIP_XRPL_NAMESPACE", "CAIP_TRON_CHAIN_ID", "CAIP_TRON_NAMESPACE", "TransactionType", "CAIP_CHAINS", "CAIP_UTXO_NAMESPACE", "CAIP_BITCOIN_CHAIN_ID", "CAIP_BITCOINCASH_CHAIN_ID", "CAIP_DOGECOIN_CHAIN_ID", "CAIP_EVM_NAMESPACE", "CAIP_ETHEREUM_CHAIN_ID", "CAIP_LITECOIN_CHAIN_ID", "CAIP_SOLANA_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP_STARKNET_NAMESPACE", "CAIP_STARKNET_CHAIN_ID", "CAIP_STELLAR_NAMESPACE", "CAIP_STELLAR_CHAIN_ID", "CAIP_SUI_NAMESPACE", "CAIP_SUI_CHAIN_ID", "CAIP_TVM_NAMESPACE", "CAIP_TON_CHAIN_ID", "CAIP_TRON_NAMESPACE", "CAIP_TRON_CHAIN_ID", "CAIP_XRPL_NAMESPACE", "CAIP_XRPL_CHAIN_ID", "CAIP_ZCASH_CHAIN_ID", "HEX_RADIX", "DECIMAL_RADIX", "CAIP_BY_TRANSFER_BLOCKCHAIN_NAME", "toNumericCaip", "namespace", "chainId", "isHex", "isDecimal", "reference", "__name", "CAIP_BY_TRANSACTION_TYPE", "TransactionType", "blockchainMeta", "convertBlockchainMetaToCaip", "resolver", "isTransferBlockchainName", "blockchainName", "caipChainId", "isBitcoinBlockchain", "isZcashBlockchain", "getSupportedChainsFromNamespace", "namespace", "allBlockChains", "blockchain", "chainId", "convertBlockchainMetaToCaip", "__name", "getSupportedChainsFromProvider", "provider", "namespacesProperty", "property", "convertEvmBlockchainMetaToEvmChainInfo", "evmBlockchains", "evmNetworksChainInfo", "blockchainMeta"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/internal-blockchains",
3
- "version": "0.1.1-next.1",
3
+ "version": "0.1.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -35,7 +35,7 @@
35
35
  "@hub3js/sui": "^0.4.0",
36
36
  "@hub3js/tvm": "^0.4.0",
37
37
  "@hub3js/xrpl": "^0.4.0",
38
- "@rango-dev/wallets-core": "^0.61.1-next.1",
38
+ "@rango-dev/wallets-core": "^0.61.1-next.2",
39
39
  "rango-types": "^0.5.0"
40
40
  },
41
41
  "publishConfig": {
package/src/caip.ts CHANGED
@@ -1,5 +1,13 @@
1
1
  import type { BlockchainMeta } from 'rango-types';
2
2
 
3
+ import {
4
+ CAIP_BITCOIN_CHAIN_ID,
5
+ CAIP_BITCOINCASH_CHAIN_ID,
6
+ CAIP_DOGECOIN_CHAIN_ID,
7
+ CAIP_LITECOIN_CHAIN_ID,
8
+ CAIP_NAMESPACE as CAIP_UTXO_NAMESPACE,
9
+ CAIP_ZCASH_CHAIN_ID,
10
+ } from '@hub3js/bip122';
3
11
  import {
4
12
  CAIP_ETHEREUM_CHAIN_ID,
5
13
  CAIP_NAMESPACE as CAIP_EVM_NAMESPACE,
@@ -32,14 +40,6 @@ import {
32
40
  CAIP_TRON_CHAIN_ID,
33
41
  CAIP_NAMESPACE as CAIP_TRON_NAMESPACE,
34
42
  } from '@rango-dev/wallets-core/namespaces/tron';
35
- import {
36
- CAIP_BITCOIN_CHAIN_ID,
37
- CAIP_BITCOINCASH_CHAIN_ID,
38
- CAIP_DOGECOIN_CHAIN_ID,
39
- CAIP_LITECOIN_CHAIN_ID,
40
- CAIP_NAMESPACE as CAIP_UTXO_NAMESPACE,
41
- CAIP_ZCASH_CHAIN_ID,
42
- } from '@rango-dev/wallets-core/namespaces/utxo';
43
43
  import { TransactionType } from 'rango-types';
44
44
 
45
45
  import { Networks } from './networks.js';