@dynamic-labs-sdk/cosmos 0.25.0 → 0.25.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.
@@ -4,7 +4,7 @@ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
4
4
 
5
5
  //#region package.json
6
6
  var name = "@dynamic-labs-sdk/cosmos";
7
- var version = "0.25.0";
7
+ var version = "0.25.2";
8
8
 
9
9
  //#endregion
10
10
  //#region src/utils/fetchCosmosBalance/fetchCosmosBalance.ts
@@ -243,4 +243,4 @@ Object.defineProperty(exports, 'version', {
243
243
  return version;
244
244
  }
245
245
  });
246
- //# sourceMappingURL=addCosmosInjectedExtension-CZzXehoh.cjs.js.map
246
+ //# sourceMappingURL=addCosmosInjectedExtension-DgqO5pRm.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addCosmosInjectedExtension-CZzXehoh.cjs.js","names":["data: BankBalancesResponse","chain: Chain","WalletProviderEnum","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","terminate: CosmosWalletProvider['terminate']","injectedWalletProviders: CosmosWalletProvider[]","DYNAMIC_ICONIC_SPRITE_URL","WalletProviderPriority"],"sources":["../package.json","../src/utils/fetchCosmosBalance/fetchCosmosBalance.ts","../src/utils/createCosmosNetworkProvider/createCosmosNetworkProvider.ts","../src/registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder.ts","../src/injected/utils/compass/getCompassInjectedProvider/getCompassInjectedProvider.ts","../src/utils/constants.ts","../src/injected/utils/resolveCosmosChainId/resolveCosmosChainId.ts","../src/injected/utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider.ts","../src/injected/utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider.ts","../src/injected/utils/leap/getLeapInjectedProvider/getLeapInjectedProvider.ts","../src/injected/addCosmosInjectedExtension/addCosmosInjectedExtension.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\ntype FetchCosmosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\ntype BankBalancesResponse = {\n balances: { amount: string; denom: string }[];\n pagination: { next_key: string | null; total: string };\n};\n\n/** @not-instrumented */\nexport const fetchCosmosBalance = async ({\n address,\n networkData,\n}: FetchCosmosBalanceParams): Promise<string | null> => {\n const response = await fetch(\n `${networkData.rpcUrls.http[0]}/cosmos/bank/v1beta1/balances/${address}`\n );\n\n if (!response.ok) {\n return null;\n }\n\n const data: BankBalancesResponse = await response.json();\n\n if (!data?.balances) {\n return null;\n }\n\n const denomBalance = data.balances.find(\n (b) => b.denom === networkData.nativeCurrency.denom\n );\n\n if (!denomBalance) {\n return '0';\n }\n\n return (\n Number(denomBalance.amount) /\n 10 ** networkData.nativeCurrency.decimals\n ).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosNetworkProvider } from '../../CosmosNetworkProvider.types';\nimport { fetchCosmosBalance } from '../fetchCosmosBalance/fetchCosmosBalance';\n\n/** @not-instrumented */\nexport const createCosmosNetworkProvider = (\n networkData: NetworkData\n): CosmosNetworkProvider => ({\n ...createBaseNetworkProvider('COSMOS', networkData),\n\n getBalance: async ({ address }) => ({\n balance: await fetchCosmosBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createCosmosNetworkProvider } from '../utils/createCosmosNetworkProvider/createCosmosNetworkProvider';\n\n/** @not-instrumented */\nexport const registerCosmosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('COSMOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: (networkData) => createCosmosNetworkProvider(networkData),\n chain: 'COSMOS',\n });\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst COMPASS_PROVIDER_LOCATOR = 'compass';\n\n/** @not-instrumented */\nexport const getCompassInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n COMPASS_PROVIDER_LOCATOR\n );\n};\n","export const DEFAULT_COSMOS_CHAIN_ID = 'cosmoshub-4';\nexport const UATOM_DENOM = 'uatom';\nexport const UATOM_DECIMALS = 6;\n","import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\ntype ResolveCosmosChainIdParams = {\n networkId: string;\n};\n\n// The registry stores the Dynamic numeric network ID (e.g. '401'), but cosmos\n// wallets identify chains by their chain string (e.g. 'cosmoshub-4') stored\n// in networkConfiguration.name. Resolve the numeric ID to the chain string.\n/** @not-instrumented */\nexport const resolveCosmosChainId = (\n { networkId }: ResolveCosmosChainIdParams,\n client: DynamicClient\n): string => {\n try {\n const networksData = getNetworksData(client);\n const networkData = networksData.find(\n (data) => data.networkId === networkId && data.chain === 'COSMOS'\n );\n return networkData?.name ?? networkId;\n } catch {\n return networkId;\n }\n};\n","import type {\n Chain,\n DynamicClient,\n WalletProviderMetadata,\n} from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n CosmosOfflineSigner,\n CosmosWalletProvider,\n} from '../../../CosmosWalletProvider.types';\nimport type { CosmosInjectedProvider } from '../../../injected/CosmosWalletInjectedProvider.types';\nimport { DEFAULT_COSMOS_CHAIN_ID } from '../../../utils/constants';\nimport { resolveCosmosChainId } from '../resolveCosmosChainId';\n\ntype CreateWalletProviderFromCosmosProviderParams = {\n injectedProvider: CosmosInjectedProvider;\n keystoreEventName: string;\n metadata: WalletProviderMetadata;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromCosmosProvider = (\n {\n injectedProvider,\n keystoreEventName,\n metadata,\n }: CreateWalletProviderFromCosmosProviderParams,\n client: DynamicClient\n): CosmosWalletProvider => {\n const chain: Chain = 'COSMOS';\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const getChainId = async (): Promise<string> => {\n const result = await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n return resolveCosmosChainId(\n { networkId: result?.networkId ?? DEFAULT_COSMOS_CHAIN_ID },\n client\n );\n };\n\n const connect: CosmosWalletProvider['connect'] = async () => {\n await injectedProvider.enable(DEFAULT_COSMOS_CHAIN_ID);\n const cosmosKey = await injectedProvider.getKey(DEFAULT_COSMOS_CHAIN_ID);\n const publicKey = Array.from(cosmosKey.pubKey)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n\n return {\n addresses: [{ address: cosmosKey.bech32Address, publicKey }],\n };\n };\n\n const getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses'] =\n async () => {\n try {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n return { addresses: [cosmosKey.bech32Address] };\n } catch {\n return { addresses: [] };\n }\n };\n\n const getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n await injectedProvider.enable(networkId);\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const signMessage: CosmosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n const address = walletAccount?.address ?? cosmosKey.bech32Address;\n const signatureResponse = await injectedProvider.signArbitrary(\n chainId,\n address,\n message\n );\n const bech32Prefix = cosmosKey.bech32Address.split('1')[0];\n const signatureWithPrefix = {\n ...signatureResponse,\n bech32Prefix,\n };\n return { signature: JSON.stringify(signatureWithPrefix) };\n };\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n const getOfflineSigner = (chainId: string): CosmosOfflineSigner => {\n return injectedProvider.getOfflineSigner(chainId);\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n setupReturnValue?.();\n },\n setupEventListeners: ({ handleAccountsChanged }) => {\n const handler = () => {\n getChainId()\n .then((chainId) => injectedProvider.getKey(chainId))\n .then((cosmosKey) => {\n handleAccountsChanged({ addresses: [cosmosKey.bech32Address] });\n })\n .catch(() => {});\n };\n globalThis.addEventListener(keystoreEventName, handler);\n return () => globalThis.removeEventListener(keystoreEventName, handler);\n },\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: CosmosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n getOfflineSigner,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst KEPLR_PROVIDER_LOCATOR = 'keplr';\n\n/** @not-instrumented */\nexport const getKeplrInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n KEPLR_PROVIDER_LOCATOR\n );\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst LEAP_PROVIDER_LOCATOR = 'leap';\n\n/** @not-instrumented */\nexport const getLeapInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n LEAP_PROVIDER_LOCATOR\n );\n};\n","import {\n DYNAMIC_ICONIC_SPRITE_URL,\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosWalletProvider } from '../../CosmosWalletProvider.types';\nimport { registerCosmosNetworkProviderBuilder } from '../../registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder';\nimport { getCompassInjectedProvider } from '../utils/compass/getCompassInjectedProvider/getCompassInjectedProvider';\nimport { createWalletProviderFromCosmosProvider } from '../utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider';\nimport { getKeplrInjectedProvider } from '../utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider';\nimport { getLeapInjectedProvider } from '../utils/leap/getLeapInjectedProvider/getLeapInjectedProvider';\n\nexport const COSMOS_INJECTED_EXTENSION_KEY = 'cosmosInjected';\n\n/** @not-instrumented */\nexport const addCosmosInjectedExtension = (\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client);\n registerCosmosNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n const injectedWalletProviders: CosmosWalletProvider[] = [];\n\n const keplrProvider = getKeplrInjectedProvider();\n if (keplrProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: keplrProvider,\n keystoreEventName: 'keplr_keystorechange',\n metadata: {\n displayName: 'Keplr',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#keplr`,\n },\n },\n client\n )\n );\n }\n\n const leapProvider = getLeapInjectedProvider();\n if (leapProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: leapProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Leap',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#leap`,\n },\n },\n client\n )\n );\n }\n\n const compassProvider = getCompassInjectedProvider();\n if (compassProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: compassProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Compass',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#compass`,\n },\n },\n client\n )\n );\n }\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n injectedWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addCosmosInjectedExtension-DgqO5pRm.cjs.js","names":["data: BankBalancesResponse","chain: Chain","WalletProviderEnum","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","terminate: CosmosWalletProvider['terminate']","injectedWalletProviders: CosmosWalletProvider[]","DYNAMIC_ICONIC_SPRITE_URL","WalletProviderPriority"],"sources":["../package.json","../src/utils/fetchCosmosBalance/fetchCosmosBalance.ts","../src/utils/createCosmosNetworkProvider/createCosmosNetworkProvider.ts","../src/registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder.ts","../src/injected/utils/compass/getCompassInjectedProvider/getCompassInjectedProvider.ts","../src/utils/constants.ts","../src/injected/utils/resolveCosmosChainId/resolveCosmosChainId.ts","../src/injected/utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider.ts","../src/injected/utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider.ts","../src/injected/utils/leap/getLeapInjectedProvider/getLeapInjectedProvider.ts","../src/injected/addCosmosInjectedExtension/addCosmosInjectedExtension.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\ntype FetchCosmosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\ntype BankBalancesResponse = {\n balances: { amount: string; denom: string }[];\n pagination: { next_key: string | null; total: string };\n};\n\n/** @not-instrumented */\nexport const fetchCosmosBalance = async ({\n address,\n networkData,\n}: FetchCosmosBalanceParams): Promise<string | null> => {\n const response = await fetch(\n `${networkData.rpcUrls.http[0]}/cosmos/bank/v1beta1/balances/${address}`\n );\n\n if (!response.ok) {\n return null;\n }\n\n const data: BankBalancesResponse = await response.json();\n\n if (!data?.balances) {\n return null;\n }\n\n const denomBalance = data.balances.find(\n (b) => b.denom === networkData.nativeCurrency.denom\n );\n\n if (!denomBalance) {\n return '0';\n }\n\n return (\n Number(denomBalance.amount) /\n 10 ** networkData.nativeCurrency.decimals\n ).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosNetworkProvider } from '../../CosmosNetworkProvider.types';\nimport { fetchCosmosBalance } from '../fetchCosmosBalance/fetchCosmosBalance';\n\n/** @not-instrumented */\nexport const createCosmosNetworkProvider = (\n networkData: NetworkData\n): CosmosNetworkProvider => ({\n ...createBaseNetworkProvider('COSMOS', networkData),\n\n getBalance: async ({ address }) => ({\n balance: await fetchCosmosBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createCosmosNetworkProvider } from '../utils/createCosmosNetworkProvider/createCosmosNetworkProvider';\n\n/** @not-instrumented */\nexport const registerCosmosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('COSMOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: (networkData) => createCosmosNetworkProvider(networkData),\n chain: 'COSMOS',\n });\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst COMPASS_PROVIDER_LOCATOR = 'compass';\n\n/** @not-instrumented */\nexport const getCompassInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n COMPASS_PROVIDER_LOCATOR\n );\n};\n","export const DEFAULT_COSMOS_CHAIN_ID = 'cosmoshub-4';\nexport const UATOM_DENOM = 'uatom';\nexport const UATOM_DECIMALS = 6;\n","import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\ntype ResolveCosmosChainIdParams = {\n networkId: string;\n};\n\n// The registry stores the Dynamic numeric network ID (e.g. '401'), but cosmos\n// wallets identify chains by their chain string (e.g. 'cosmoshub-4') stored\n// in networkConfiguration.name. Resolve the numeric ID to the chain string.\n/** @not-instrumented */\nexport const resolveCosmosChainId = (\n { networkId }: ResolveCosmosChainIdParams,\n client: DynamicClient\n): string => {\n try {\n const networksData = getNetworksData(client);\n const networkData = networksData.find(\n (data) => data.networkId === networkId && data.chain === 'COSMOS'\n );\n return networkData?.name ?? networkId;\n } catch {\n return networkId;\n }\n};\n","import type {\n Chain,\n DynamicClient,\n WalletProviderMetadata,\n} from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n CosmosOfflineSigner,\n CosmosWalletProvider,\n} from '../../../CosmosWalletProvider.types';\nimport type { CosmosInjectedProvider } from '../../../injected/CosmosWalletInjectedProvider.types';\nimport { DEFAULT_COSMOS_CHAIN_ID } from '../../../utils/constants';\nimport { resolveCosmosChainId } from '../resolveCosmosChainId';\n\ntype CreateWalletProviderFromCosmosProviderParams = {\n injectedProvider: CosmosInjectedProvider;\n keystoreEventName: string;\n metadata: WalletProviderMetadata;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromCosmosProvider = (\n {\n injectedProvider,\n keystoreEventName,\n metadata,\n }: CreateWalletProviderFromCosmosProviderParams,\n client: DynamicClient\n): CosmosWalletProvider => {\n const chain: Chain = 'COSMOS';\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const getChainId = async (): Promise<string> => {\n const result = await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n return resolveCosmosChainId(\n { networkId: result?.networkId ?? DEFAULT_COSMOS_CHAIN_ID },\n client\n );\n };\n\n const connect: CosmosWalletProvider['connect'] = async () => {\n await injectedProvider.enable(DEFAULT_COSMOS_CHAIN_ID);\n const cosmosKey = await injectedProvider.getKey(DEFAULT_COSMOS_CHAIN_ID);\n const publicKey = Array.from(cosmosKey.pubKey)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n\n return {\n addresses: [{ address: cosmosKey.bech32Address, publicKey }],\n };\n };\n\n const getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses'] =\n async () => {\n try {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n return { addresses: [cosmosKey.bech32Address] };\n } catch {\n return { addresses: [] };\n }\n };\n\n const getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n await injectedProvider.enable(networkId);\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const signMessage: CosmosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n const address = walletAccount?.address ?? cosmosKey.bech32Address;\n const signatureResponse = await injectedProvider.signArbitrary(\n chainId,\n address,\n message\n );\n const bech32Prefix = cosmosKey.bech32Address.split('1')[0];\n const signatureWithPrefix = {\n ...signatureResponse,\n bech32Prefix,\n };\n return { signature: JSON.stringify(signatureWithPrefix) };\n };\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n const getOfflineSigner = (chainId: string): CosmosOfflineSigner => {\n return injectedProvider.getOfflineSigner(chainId);\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n setupReturnValue?.();\n },\n setupEventListeners: ({ handleAccountsChanged }) => {\n const handler = () => {\n getChainId()\n .then((chainId) => injectedProvider.getKey(chainId))\n .then((cosmosKey) => {\n handleAccountsChanged({ addresses: [cosmosKey.bech32Address] });\n })\n .catch(() => {});\n };\n globalThis.addEventListener(keystoreEventName, handler);\n return () => globalThis.removeEventListener(keystoreEventName, handler);\n },\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: CosmosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n getOfflineSigner,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst KEPLR_PROVIDER_LOCATOR = 'keplr';\n\n/** @not-instrumented */\nexport const getKeplrInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n KEPLR_PROVIDER_LOCATOR\n );\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst LEAP_PROVIDER_LOCATOR = 'leap';\n\n/** @not-instrumented */\nexport const getLeapInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n LEAP_PROVIDER_LOCATOR\n );\n};\n","import {\n DYNAMIC_ICONIC_SPRITE_URL,\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosWalletProvider } from '../../CosmosWalletProvider.types';\nimport { registerCosmosNetworkProviderBuilder } from '../../registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder';\nimport { getCompassInjectedProvider } from '../utils/compass/getCompassInjectedProvider/getCompassInjectedProvider';\nimport { createWalletProviderFromCosmosProvider } from '../utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider';\nimport { getKeplrInjectedProvider } from '../utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider';\nimport { getLeapInjectedProvider } from '../utils/leap/getLeapInjectedProvider/getLeapInjectedProvider';\n\nexport const COSMOS_INJECTED_EXTENSION_KEY = 'cosmosInjected';\n\n/** @not-instrumented */\nexport const addCosmosInjectedExtension = (\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client);\n registerCosmosNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n const injectedWalletProviders: CosmosWalletProvider[] = [];\n\n const keplrProvider = getKeplrInjectedProvider();\n if (keplrProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: keplrProvider,\n keystoreEventName: 'keplr_keystorechange',\n metadata: {\n displayName: 'Keplr',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#keplr`,\n },\n },\n client\n )\n );\n }\n\n const leapProvider = getLeapInjectedProvider();\n if (leapProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: leapProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Leap',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#leap`,\n },\n },\n client\n )\n );\n }\n\n const compassProvider = getCompassInjectedProvider();\n if (compassProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: compassProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Compass',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#compass`,\n },\n },\n client\n )\n );\n }\n\n \n injectedWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { getNetworksData } from "@dynamic-labs-sdk/client";
4
4
 
5
5
  //#region package.json
6
6
  var name = "@dynamic-labs-sdk/cosmos";
7
- var version = "0.25.0";
7
+ var version = "0.25.2";
8
8
 
9
9
  //#endregion
10
10
  //#region src/utils/fetchCosmosBalance/fetchCosmosBalance.ts
@@ -226,4 +226,4 @@ const addCosmosInjectedExtension = (client = getDefaultClient()) => {
226
226
 
227
227
  //#endregion
228
228
  export { name as n, version as r, addCosmosInjectedExtension as t };
229
- //# sourceMappingURL=addCosmosInjectedExtension-CwFcsvEQ.esm.js.map
229
+ //# sourceMappingURL=addCosmosInjectedExtension-DxWsLNHJ.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"addCosmosInjectedExtension-CwFcsvEQ.esm.js","names":["data: BankBalancesResponse","chain: Chain","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","terminate: CosmosWalletProvider['terminate']","injectedWalletProviders: CosmosWalletProvider[]"],"sources":["../package.json","../src/utils/fetchCosmosBalance/fetchCosmosBalance.ts","../src/utils/createCosmosNetworkProvider/createCosmosNetworkProvider.ts","../src/registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder.ts","../src/injected/utils/compass/getCompassInjectedProvider/getCompassInjectedProvider.ts","../src/utils/constants.ts","../src/injected/utils/resolveCosmosChainId/resolveCosmosChainId.ts","../src/injected/utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider.ts","../src/injected/utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider.ts","../src/injected/utils/leap/getLeapInjectedProvider/getLeapInjectedProvider.ts","../src/injected/addCosmosInjectedExtension/addCosmosInjectedExtension.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\ntype FetchCosmosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\ntype BankBalancesResponse = {\n balances: { amount: string; denom: string }[];\n pagination: { next_key: string | null; total: string };\n};\n\n/** @not-instrumented */\nexport const fetchCosmosBalance = async ({\n address,\n networkData,\n}: FetchCosmosBalanceParams): Promise<string | null> => {\n const response = await fetch(\n `${networkData.rpcUrls.http[0]}/cosmos/bank/v1beta1/balances/${address}`\n );\n\n if (!response.ok) {\n return null;\n }\n\n const data: BankBalancesResponse = await response.json();\n\n if (!data?.balances) {\n return null;\n }\n\n const denomBalance = data.balances.find(\n (b) => b.denom === networkData.nativeCurrency.denom\n );\n\n if (!denomBalance) {\n return '0';\n }\n\n return (\n Number(denomBalance.amount) /\n 10 ** networkData.nativeCurrency.decimals\n ).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosNetworkProvider } from '../../CosmosNetworkProvider.types';\nimport { fetchCosmosBalance } from '../fetchCosmosBalance/fetchCosmosBalance';\n\n/** @not-instrumented */\nexport const createCosmosNetworkProvider = (\n networkData: NetworkData\n): CosmosNetworkProvider => ({\n ...createBaseNetworkProvider('COSMOS', networkData),\n\n getBalance: async ({ address }) => ({\n balance: await fetchCosmosBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createCosmosNetworkProvider } from '../utils/createCosmosNetworkProvider/createCosmosNetworkProvider';\n\n/** @not-instrumented */\nexport const registerCosmosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('COSMOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: (networkData) => createCosmosNetworkProvider(networkData),\n chain: 'COSMOS',\n });\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst COMPASS_PROVIDER_LOCATOR = 'compass';\n\n/** @not-instrumented */\nexport const getCompassInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n COMPASS_PROVIDER_LOCATOR\n );\n};\n","export const DEFAULT_COSMOS_CHAIN_ID = 'cosmoshub-4';\nexport const UATOM_DENOM = 'uatom';\nexport const UATOM_DECIMALS = 6;\n","import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\ntype ResolveCosmosChainIdParams = {\n networkId: string;\n};\n\n// The registry stores the Dynamic numeric network ID (e.g. '401'), but cosmos\n// wallets identify chains by their chain string (e.g. 'cosmoshub-4') stored\n// in networkConfiguration.name. Resolve the numeric ID to the chain string.\n/** @not-instrumented */\nexport const resolveCosmosChainId = (\n { networkId }: ResolveCosmosChainIdParams,\n client: DynamicClient\n): string => {\n try {\n const networksData = getNetworksData(client);\n const networkData = networksData.find(\n (data) => data.networkId === networkId && data.chain === 'COSMOS'\n );\n return networkData?.name ?? networkId;\n } catch {\n return networkId;\n }\n};\n","import type {\n Chain,\n DynamicClient,\n WalletProviderMetadata,\n} from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n CosmosOfflineSigner,\n CosmosWalletProvider,\n} from '../../../CosmosWalletProvider.types';\nimport type { CosmosInjectedProvider } from '../../../injected/CosmosWalletInjectedProvider.types';\nimport { DEFAULT_COSMOS_CHAIN_ID } from '../../../utils/constants';\nimport { resolveCosmosChainId } from '../resolveCosmosChainId';\n\ntype CreateWalletProviderFromCosmosProviderParams = {\n injectedProvider: CosmosInjectedProvider;\n keystoreEventName: string;\n metadata: WalletProviderMetadata;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromCosmosProvider = (\n {\n injectedProvider,\n keystoreEventName,\n metadata,\n }: CreateWalletProviderFromCosmosProviderParams,\n client: DynamicClient\n): CosmosWalletProvider => {\n const chain: Chain = 'COSMOS';\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const getChainId = async (): Promise<string> => {\n const result = await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n return resolveCosmosChainId(\n { networkId: result?.networkId ?? DEFAULT_COSMOS_CHAIN_ID },\n client\n );\n };\n\n const connect: CosmosWalletProvider['connect'] = async () => {\n await injectedProvider.enable(DEFAULT_COSMOS_CHAIN_ID);\n const cosmosKey = await injectedProvider.getKey(DEFAULT_COSMOS_CHAIN_ID);\n const publicKey = Array.from(cosmosKey.pubKey)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n\n return {\n addresses: [{ address: cosmosKey.bech32Address, publicKey }],\n };\n };\n\n const getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses'] =\n async () => {\n try {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n return { addresses: [cosmosKey.bech32Address] };\n } catch {\n return { addresses: [] };\n }\n };\n\n const getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n await injectedProvider.enable(networkId);\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const signMessage: CosmosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n const address = walletAccount?.address ?? cosmosKey.bech32Address;\n const signatureResponse = await injectedProvider.signArbitrary(\n chainId,\n address,\n message\n );\n const bech32Prefix = cosmosKey.bech32Address.split('1')[0];\n const signatureWithPrefix = {\n ...signatureResponse,\n bech32Prefix,\n };\n return { signature: JSON.stringify(signatureWithPrefix) };\n };\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n const getOfflineSigner = (chainId: string): CosmosOfflineSigner => {\n return injectedProvider.getOfflineSigner(chainId);\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n setupReturnValue?.();\n },\n setupEventListeners: ({ handleAccountsChanged }) => {\n const handler = () => {\n getChainId()\n .then((chainId) => injectedProvider.getKey(chainId))\n .then((cosmosKey) => {\n handleAccountsChanged({ addresses: [cosmosKey.bech32Address] });\n })\n .catch(() => {});\n };\n globalThis.addEventListener(keystoreEventName, handler);\n return () => globalThis.removeEventListener(keystoreEventName, handler);\n },\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: CosmosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n getOfflineSigner,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst KEPLR_PROVIDER_LOCATOR = 'keplr';\n\n/** @not-instrumented */\nexport const getKeplrInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n KEPLR_PROVIDER_LOCATOR\n );\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst LEAP_PROVIDER_LOCATOR = 'leap';\n\n/** @not-instrumented */\nexport const getLeapInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n LEAP_PROVIDER_LOCATOR\n );\n};\n","import {\n DYNAMIC_ICONIC_SPRITE_URL,\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosWalletProvider } from '../../CosmosWalletProvider.types';\nimport { registerCosmosNetworkProviderBuilder } from '../../registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder';\nimport { getCompassInjectedProvider } from '../utils/compass/getCompassInjectedProvider/getCompassInjectedProvider';\nimport { createWalletProviderFromCosmosProvider } from '../utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider';\nimport { getKeplrInjectedProvider } from '../utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider';\nimport { getLeapInjectedProvider } from '../utils/leap/getLeapInjectedProvider/getLeapInjectedProvider';\n\nexport const COSMOS_INJECTED_EXTENSION_KEY = 'cosmosInjected';\n\n/** @not-instrumented */\nexport const addCosmosInjectedExtension = (\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client);\n registerCosmosNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n const injectedWalletProviders: CosmosWalletProvider[] = [];\n\n const keplrProvider = getKeplrInjectedProvider();\n if (keplrProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: keplrProvider,\n keystoreEventName: 'keplr_keystorechange',\n metadata: {\n displayName: 'Keplr',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#keplr`,\n },\n },\n client\n )\n );\n }\n\n const leapProvider = getLeapInjectedProvider();\n if (leapProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: leapProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Leap',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#leap`,\n },\n },\n client\n )\n );\n }\n\n const compassProvider = getCompassInjectedProvider();\n if (compassProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: compassProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Compass',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#compass`,\n },\n },\n client\n )\n );\n }\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n injectedWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"addCosmosInjectedExtension-DxWsLNHJ.esm.js","names":["data: BankBalancesResponse","chain: Chain","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","terminate: CosmosWalletProvider['terminate']","injectedWalletProviders: CosmosWalletProvider[]"],"sources":["../package.json","../src/utils/fetchCosmosBalance/fetchCosmosBalance.ts","../src/utils/createCosmosNetworkProvider/createCosmosNetworkProvider.ts","../src/registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder.ts","../src/injected/utils/compass/getCompassInjectedProvider/getCompassInjectedProvider.ts","../src/utils/constants.ts","../src/injected/utils/resolveCosmosChainId/resolveCosmosChainId.ts","../src/injected/utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider.ts","../src/injected/utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider.ts","../src/injected/utils/leap/getLeapInjectedProvider/getLeapInjectedProvider.ts","../src/injected/addCosmosInjectedExtension/addCosmosInjectedExtension.ts"],"sourcesContent":["","import type { NetworkData } from '@dynamic-labs-sdk/client';\n\ntype FetchCosmosBalanceParams = {\n address: string;\n networkData: NetworkData;\n};\n\ntype BankBalancesResponse = {\n balances: { amount: string; denom: string }[];\n pagination: { next_key: string | null; total: string };\n};\n\n/** @not-instrumented */\nexport const fetchCosmosBalance = async ({\n address,\n networkData,\n}: FetchCosmosBalanceParams): Promise<string | null> => {\n const response = await fetch(\n `${networkData.rpcUrls.http[0]}/cosmos/bank/v1beta1/balances/${address}`\n );\n\n if (!response.ok) {\n return null;\n }\n\n const data: BankBalancesResponse = await response.json();\n\n if (!data?.balances) {\n return null;\n }\n\n const denomBalance = data.balances.find(\n (b) => b.denom === networkData.nativeCurrency.denom\n );\n\n if (!denomBalance) {\n return '0';\n }\n\n return (\n Number(denomBalance.amount) /\n 10 ** networkData.nativeCurrency.decimals\n ).toString();\n};\n","import type { NetworkData } from '@dynamic-labs-sdk/client';\nimport { createBaseNetworkProvider } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosNetworkProvider } from '../../CosmosNetworkProvider.types';\nimport { fetchCosmosBalance } from '../fetchCosmosBalance/fetchCosmosBalance';\n\n/** @not-instrumented */\nexport const createCosmosNetworkProvider = (\n networkData: NetworkData\n): CosmosNetworkProvider => ({\n ...createBaseNetworkProvider('COSMOS', networkData),\n\n getBalance: async ({ address }) => ({\n balance: await fetchCosmosBalance({\n address,\n networkData,\n }),\n }),\n});\n","import type { DynamicClient } from '@dynamic-labs-sdk/client';\nimport { getNetworkProviderBuilderRegistry } from '@dynamic-labs-sdk/client/core';\n\nimport { createCosmosNetworkProvider } from '../utils/createCosmosNetworkProvider/createCosmosNetworkProvider';\n\n/** @not-instrumented */\nexport const registerCosmosNetworkProviderBuilder = (\n client: DynamicClient\n): void => {\n const networkProviderBuilderRegistry =\n getNetworkProviderBuilderRegistry(client);\n\n if (networkProviderBuilderRegistry.get().get('COSMOS')) {\n return;\n }\n\n networkProviderBuilderRegistry.register({\n builder: (networkData) => createCosmosNetworkProvider(networkData),\n chain: 'COSMOS',\n });\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst COMPASS_PROVIDER_LOCATOR = 'compass';\n\n/** @not-instrumented */\nexport const getCompassInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n COMPASS_PROVIDER_LOCATOR\n );\n};\n","export const DEFAULT_COSMOS_CHAIN_ID = 'cosmoshub-4';\nexport const UATOM_DENOM = 'uatom';\nexport const UATOM_DECIMALS = 6;\n","import { type DynamicClient, getNetworksData } from '@dynamic-labs-sdk/client';\n\ntype ResolveCosmosChainIdParams = {\n networkId: string;\n};\n\n// The registry stores the Dynamic numeric network ID (e.g. '401'), but cosmos\n// wallets identify chains by their chain string (e.g. 'cosmoshub-4') stored\n// in networkConfiguration.name. Resolve the numeric ID to the chain string.\n/** @not-instrumented */\nexport const resolveCosmosChainId = (\n { networkId }: ResolveCosmosChainIdParams,\n client: DynamicClient\n): string => {\n try {\n const networksData = getNetworksData(client);\n const networkData = networksData.find(\n (data) => data.networkId === networkId && data.chain === 'COSMOS'\n );\n return networkData?.name ?? networkId;\n } catch {\n return networkId;\n }\n};\n","import type {\n Chain,\n DynamicClient,\n WalletProviderMetadata,\n} from '@dynamic-labs-sdk/client';\nimport {\n createWalletProviderEventEmitter,\n formatWalletProviderGroupKey,\n formatWalletProviderKey,\n getActiveNetworkIdFromLastKnownRegistry,\n switchActiveNetworkInLastKnownRegistry,\n} from '@dynamic-labs-sdk/client/core';\nimport { WalletProviderEnum } from '@dynamic-labs/sdk-api-core';\n\nimport type {\n CosmosOfflineSigner,\n CosmosWalletProvider,\n} from '../../../CosmosWalletProvider.types';\nimport type { CosmosInjectedProvider } from '../../../injected/CosmosWalletInjectedProvider.types';\nimport { DEFAULT_COSMOS_CHAIN_ID } from '../../../utils/constants';\nimport { resolveCosmosChainId } from '../resolveCosmosChainId';\n\ntype CreateWalletProviderFromCosmosProviderParams = {\n injectedProvider: CosmosInjectedProvider;\n keystoreEventName: string;\n metadata: WalletProviderMetadata;\n};\n\n/** @not-instrumented */\nexport const createWalletProviderFromCosmosProvider = (\n {\n injectedProvider,\n keystoreEventName,\n metadata,\n }: CreateWalletProviderFromCosmosProviderParams,\n client: DynamicClient\n): CosmosWalletProvider => {\n const chain: Chain = 'COSMOS';\n const walletProviderType = WalletProviderEnum.BrowserExtension;\n\n const key = formatWalletProviderKey({\n chain,\n displayName: metadata.displayName,\n walletProviderType,\n });\n\n const getChainId = async (): Promise<string> => {\n const result = await getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n return resolveCosmosChainId(\n { networkId: result?.networkId ?? DEFAULT_COSMOS_CHAIN_ID },\n client\n );\n };\n\n const connect: CosmosWalletProvider['connect'] = async () => {\n await injectedProvider.enable(DEFAULT_COSMOS_CHAIN_ID);\n const cosmosKey = await injectedProvider.getKey(DEFAULT_COSMOS_CHAIN_ID);\n const publicKey = Array.from(cosmosKey.pubKey)\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n\n return {\n addresses: [{ address: cosmosKey.bech32Address, publicKey }],\n };\n };\n\n const getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses'] =\n async () => {\n try {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n return { addresses: [cosmosKey.bech32Address] };\n } catch {\n return { addresses: [] };\n }\n };\n\n const getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId'] =\n async () =>\n getActiveNetworkIdFromLastKnownRegistry({\n client,\n walletProviderKey: key,\n });\n\n const switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork'] =\n async ({ networkId }) => {\n await injectedProvider.enable(networkId);\n await switchActiveNetworkInLastKnownRegistry({\n client,\n networkId,\n walletProviderKey: key,\n });\n };\n\n const signMessage: CosmosWalletProvider['signMessage'] = async ({\n message,\n walletAccount,\n }) => {\n const chainId = await getChainId();\n const cosmosKey = await injectedProvider.getKey(chainId);\n const address = walletAccount?.address ?? cosmosKey.bech32Address;\n const signatureResponse = await injectedProvider.signArbitrary(\n chainId,\n address,\n message\n );\n const bech32Prefix = cosmosKey.bech32Address.split('1')[0];\n const signatureWithPrefix = {\n ...signatureResponse,\n bech32Prefix,\n };\n return { signature: JSON.stringify(signatureWithPrefix) };\n };\n\n // eslint-disable-next-line custom-rules/require-single-object-param\n const getOfflineSigner = (chainId: string): CosmosOfflineSigner => {\n return injectedProvider.getOfflineSigner(chainId);\n };\n\n const { getEventEmitter, cleanupEventEmitter } =\n createWalletProviderEventEmitter<VoidFunction>({\n removeEventListeners: ({ setupReturnValue }) => {\n setupReturnValue?.();\n },\n setupEventListeners: ({ handleAccountsChanged }) => {\n const handler = () => {\n getChainId()\n .then((chainId) => injectedProvider.getKey(chainId))\n .then((cosmosKey) => {\n handleAccountsChanged({ addresses: [cosmosKey.bech32Address] });\n })\n .catch(() => {});\n };\n globalThis.addEventListener(keystoreEventName, handler);\n return () => globalThis.removeEventListener(keystoreEventName, handler);\n },\n supportedEvents: ['accountsChanged'],\n });\n\n const terminate: CosmosWalletProvider['terminate'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n get events() {\n return getEventEmitter();\n },\n getActiveNetworkId,\n getConnectedAddresses,\n getOfflineSigner,\n groupKey: formatWalletProviderGroupKey(metadata.displayName),\n key,\n metadata,\n signMessage,\n switchActiveNetwork,\n terminate,\n walletProviderType,\n };\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst KEPLR_PROVIDER_LOCATOR = 'keplr';\n\n/** @not-instrumented */\nexport const getKeplrInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n KEPLR_PROVIDER_LOCATOR\n );\n};\n","import { getInjectedProviderFromWindow } from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosInjectedProvider } from '../../../CosmosWalletInjectedProvider.types';\n\nconst LEAP_PROVIDER_LOCATOR = 'leap';\n\n/** @not-instrumented */\nexport const getLeapInjectedProvider = () => {\n return getInjectedProviderFromWindow<CosmosInjectedProvider>(\n LEAP_PROVIDER_LOCATOR\n );\n};\n","import {\n DYNAMIC_ICONIC_SPRITE_URL,\n WalletProviderPriority,\n getDefaultClient,\n getWalletProviderRegistry,\n hasExtension,\n registerExtension,\n} from '@dynamic-labs-sdk/client/core';\n\nimport type { CosmosWalletProvider } from '../../CosmosWalletProvider.types';\nimport { registerCosmosNetworkProviderBuilder } from '../../registerCosmosNetworkProviderBuilder/registerCosmosNetworkProviderBuilder';\nimport { getCompassInjectedProvider } from '../utils/compass/getCompassInjectedProvider/getCompassInjectedProvider';\nimport { createWalletProviderFromCosmosProvider } from '../utils/createWalletProviderFromCosmosProvider/createWalletProviderFromCosmosProvider';\nimport { getKeplrInjectedProvider } from '../utils/keplr/getKeplrInjectedProvider/getKeplrInjectedProvider';\nimport { getLeapInjectedProvider } from '../utils/leap/getLeapInjectedProvider/getLeapInjectedProvider';\n\nexport const COSMOS_INJECTED_EXTENSION_KEY = 'cosmosInjected';\n\n/** @not-instrumented */\nexport const addCosmosInjectedExtension = (\n client = getDefaultClient()\n): void => {\n if (hasExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client)) {\n return;\n }\n\n registerExtension({ extensionKey: COSMOS_INJECTED_EXTENSION_KEY }, client);\n registerCosmosNetworkProviderBuilder(client);\n\n const walletProviderRegistry = getWalletProviderRegistry(client);\n const injectedWalletProviders: CosmosWalletProvider[] = [];\n\n const keplrProvider = getKeplrInjectedProvider();\n if (keplrProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: keplrProvider,\n keystoreEventName: 'keplr_keystorechange',\n metadata: {\n displayName: 'Keplr',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#keplr`,\n },\n },\n client\n )\n );\n }\n\n const leapProvider = getLeapInjectedProvider();\n if (leapProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: leapProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Leap',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#leap`,\n },\n },\n client\n )\n );\n }\n\n const compassProvider = getCompassInjectedProvider();\n if (compassProvider) {\n injectedWalletProviders.push(\n createWalletProviderFromCosmosProvider(\n {\n injectedProvider: compassProvider,\n keystoreEventName: 'leap_keystorechange',\n metadata: {\n displayName: 'Compass',\n icon: `${DYNAMIC_ICONIC_SPRITE_URL}#compass`,\n },\n },\n client\n )\n );\n }\n\n \n injectedWalletProviders.forEach((walletProvider) => {\n walletProviderRegistry.register({\n priority: WalletProviderPriority.WINDOW_INJECT,\n walletProvider,\n });\n });\n};\n"],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-CZzXehoh.cjs.js');
1
+ const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-DgqO5pRm.cjs.js');
2
2
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
3
3
  let _dynamic_labs_sdk_client_core = require("@dynamic-labs-sdk/client/core");
4
4
  let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-CwFcsvEQ.esm.js";
1
+ import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-DxWsLNHJ.esm.js";
2
2
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
3
3
  import { getDefaultClient } from "@dynamic-labs-sdk/client/core";
4
4
  import { BaseError } from "@dynamic-labs-sdk/client";
@@ -1,4 +1,4 @@
1
- const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-CZzXehoh.cjs.js');
1
+ const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-DgqO5pRm.cjs.js');
2
2
  let _dynamic_labs_sdk_assert_package_version = require("@dynamic-labs-sdk/assert-package-version");
3
3
 
4
4
  //#region src/exports/injected.ts
@@ -1,4 +1,4 @@
1
- import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-CwFcsvEQ.esm.js";
1
+ import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-DxWsLNHJ.esm.js";
2
2
  import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
3
3
 
4
4
  //#region src/exports/injected.ts