@dynamic-labs-sdk/cosmos 1.18.0 → 1.19.0
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/addCosmosExtension/addCosmosExtension.d.ts +11 -1
- package/dist/addCosmosExtension/addCosmosExtension.d.ts.map +1 -1
- package/dist/{addCosmosInjectedExtension-DNDJxZKC.cjs → addCosmosInjectedExtension-B4bIDzce.cjs} +2 -2
- package/dist/{addCosmosInjectedExtension-DNDJxZKC.cjs.map → addCosmosInjectedExtension-B4bIDzce.cjs.map} +1 -1
- package/dist/{addCosmosInjectedExtension-DZsy93hF.esm.js → addCosmosInjectedExtension-BREkblnu.esm.js} +2 -2
- package/dist/{addCosmosInjectedExtension-DZsy93hF.esm.js.map → addCosmosInjectedExtension-BREkblnu.esm.js.map} +1 -1
- package/dist/index.cjs +27 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +27 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/injected.cjs +1 -1
- package/dist/injected.esm.js +1 -1
- package/dist/isCosmosWalletAccount/isCosmosWalletAccount.d.ts +15 -1
- package/dist/isCosmosWalletAccount/isCosmosWalletAccount.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Adds the Cosmos extension to the Dynamic client.
|
|
3
3
|
*
|
|
4
|
-
* This is a convenience function that adds support for cosmos injected wallets
|
|
4
|
+
* This is a convenience function that adds support for cosmos injected wallets
|
|
5
|
+
* like Compass, Keplr, and more.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const client = createDynamicClient({ environmentId: 'env-123' });
|
|
10
|
+
* addCosmosExtension(client);
|
|
11
|
+
* ```
|
|
5
12
|
*
|
|
6
13
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
14
|
+
* @returns void
|
|
15
|
+
* @see isCosmosWalletAccount
|
|
16
|
+
* @see createDynamicClient
|
|
7
17
|
* @notInstrumented
|
|
8
18
|
*/
|
|
9
19
|
export declare const addCosmosExtension: (client?: import("@dynamic-labs-sdk/client").DynamicClient) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addCosmosExtension.d.ts","sourceRoot":"","sources":["../../src/addCosmosExtension/addCosmosExtension.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"addCosmosExtension.d.ts","sourceRoot":"","sources":["../../src/addCosmosExtension/addCosmosExtension.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB,iEAAkC,IAEhE,CAAC"}
|
package/dist/{addCosmosInjectedExtension-DNDJxZKC.cjs → addCosmosInjectedExtension-B4bIDzce.cjs}
RENAMED
|
@@ -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 = "1.
|
|
7
|
+
var version = "1.19.0";
|
|
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-
|
|
246
|
+
//# sourceMappingURL=addCosmosInjectedExtension-B4bIDzce.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addCosmosInjectedExtension-DNDJxZKC.cjs","names":["data: BankBalancesResponse","chain: Chain","WalletProviderEnum","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","destroy: CosmosWalletProvider['destroy']","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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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 destroy: CosmosWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n destroy,\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 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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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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"}
|
|
1
|
+
{"version":3,"file":"addCosmosInjectedExtension-B4bIDzce.cjs","names":["data: BankBalancesResponse","chain: Chain","WalletProviderEnum","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","destroy: CosmosWalletProvider['destroy']","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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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 destroy: CosmosWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n destroy,\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 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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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 = "1.
|
|
7
|
+
var version = "1.19.0";
|
|
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-
|
|
229
|
+
//# sourceMappingURL=addCosmosInjectedExtension-BREkblnu.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addCosmosInjectedExtension-DZsy93hF.esm.js","names":["data: BankBalancesResponse","chain: Chain","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","destroy: CosmosWalletProvider['destroy']","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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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 destroy: CosmosWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n destroy,\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 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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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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"}
|
|
1
|
+
{"version":3,"file":"addCosmosInjectedExtension-BREkblnu.esm.js","names":["data: BankBalancesResponse","chain: Chain","connect: CosmosWalletProvider['connect']","getConnectedAddresses: CosmosWalletProvider['getConnectedAddresses']","getActiveNetworkId: CosmosWalletProvider['getActiveNetworkId']","switchActiveNetwork: CosmosWalletProvider['switchActiveNetwork']","signMessage: CosmosWalletProvider['signMessage']","destroy: CosmosWalletProvider['destroy']","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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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 destroy: CosmosWalletProvider['destroy'] = async () => {\n cleanupEventEmitter();\n };\n\n return {\n chain,\n connect,\n destroy,\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 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/** @notInstrumented */\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/** @notInstrumented */\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/** @notInstrumented */\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
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-
|
|
1
|
+
const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-B4bIDzce.cjs');
|
|
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");
|
|
@@ -7,9 +7,19 @@ let _dynamic_labs_sdk_client = require("@dynamic-labs-sdk/client");
|
|
|
7
7
|
/**
|
|
8
8
|
* Adds the Cosmos extension to the Dynamic client.
|
|
9
9
|
*
|
|
10
|
-
* This is a convenience function that adds support for cosmos injected wallets
|
|
10
|
+
* This is a convenience function that adds support for cosmos injected wallets
|
|
11
|
+
* like Compass, Keplr, and more.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const client = createDynamicClient({ environmentId: 'env-123' });
|
|
16
|
+
* addCosmosExtension(client);
|
|
17
|
+
* ```
|
|
11
18
|
*
|
|
12
19
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
20
|
+
* @returns void
|
|
21
|
+
* @see isCosmosWalletAccount
|
|
22
|
+
* @see createDynamicClient
|
|
13
23
|
* @notInstrumented
|
|
14
24
|
*/
|
|
15
25
|
const addCosmosExtension = (client = (0, _dynamic_labs_sdk_client_core.getDefaultClient)()) => {
|
|
@@ -34,7 +44,21 @@ var NotCosmosProviderError = class extends _dynamic_labs_sdk_client.BaseError {
|
|
|
34
44
|
|
|
35
45
|
//#endregion
|
|
36
46
|
//#region src/isCosmosWalletAccount/isCosmosWalletAccount.ts
|
|
37
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Type guard function to check if a wallet account is a Cosmos wallet account.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const accounts = getWalletAccounts();
|
|
53
|
+
* const cosmosAccounts = accounts.filter(isCosmosWalletAccount);
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @param walletAccount - The wallet account to check.
|
|
57
|
+
* @returns True if the wallet account is a Cosmos wallet account, false otherwise.
|
|
58
|
+
* @see addCosmosExtension
|
|
59
|
+
* @see createDynamicClient
|
|
60
|
+
* @notInstrumented
|
|
61
|
+
*/
|
|
38
62
|
const isCosmosWalletAccount = (walletAccount) => walletAccount.chain === "COSMOS";
|
|
39
63
|
|
|
40
64
|
//#endregion
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["BaseError","packageName","packageVersion"],"sources":["../src/addCosmosExtension/addCosmosExtension.ts","../src/errors/NotCosmosProviderError/NotCosmosProviderError.ts","../src/isCosmosWalletAccount/isCosmosWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addCosmosInjectedExtension } from '../injected/addCosmosInjectedExtension/addCosmosInjectedExtension';\n\n/**\n * Adds the Cosmos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for cosmos injected wallets like Compass, Keplr, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addCosmosExtension = (client = getDefaultClient()): void => {\n addCosmosInjectedExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotCosmosProviderError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'not_cosmos_provider',\n details: undefined,\n docsUrl: null,\n metaMessages: undefined,\n name: 'NotCosmosProviderError',\n shortMessage: 'The provided wallet provider is not a Cosmos wallet provider.',\n });\n }\n}\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\n\n
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["BaseError","packageName","packageVersion"],"sources":["../src/addCosmosExtension/addCosmosExtension.ts","../src/errors/NotCosmosProviderError/NotCosmosProviderError.ts","../src/isCosmosWalletAccount/isCosmosWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addCosmosInjectedExtension } from '../injected/addCosmosInjectedExtension/addCosmosInjectedExtension';\n\n/**\n * Adds the Cosmos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for cosmos injected wallets\n * like Compass, Keplr, and more.\n *\n * @example\n * ```ts\n * const client = createDynamicClient({ environmentId: 'env-123' });\n * addCosmosExtension(client);\n * ```\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns void\n * @see isCosmosWalletAccount\n * @see createDynamicClient\n * @notInstrumented\n */\nexport const addCosmosExtension = (client = getDefaultClient()): void => {\n addCosmosInjectedExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotCosmosProviderError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'not_cosmos_provider',\n details: undefined,\n docsUrl: null,\n metaMessages: undefined,\n name: 'NotCosmosProviderError',\n shortMessage: 'The provided wallet provider is not a Cosmos wallet provider.',\n });\n }\n}\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Cosmos wallet account.\n *\n * @example\n * ```ts\n * const accounts = getWalletAccounts();\n * const cosmosAccounts = accounts.filter(isCosmosWalletAccount);\n * ```\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Cosmos wallet account, false otherwise.\n * @see addCosmosExtension\n * @see createDynamicClient\n * @notInstrumented\n */\nexport const isCosmosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is CosmosWalletAccount => walletAccount.chain === 'COSMOS';\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addCosmosExtension } from '../addCosmosExtension';\nexport type { CosmosNetworkProvider } from '../CosmosNetworkProvider.types';\nexport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\nexport type { CosmosOfflineSigner } from '../CosmosWalletProvider.types';\nexport { NotCosmosProviderError } from '../errors/NotCosmosProviderError';\nexport { isCosmosWalletAccount } from '../isCosmosWalletAccount';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,sBAAsB,8DAA2B,KAAW;AACvE,+DAA2B,OAAO;;;;;ACrBpC,IAAa,yBAAb,cAA4CA,mCAAU;CACpD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,SAAS;GACT,cAAc;GACd,MAAM;GACN,cAAc;GACf,CAAC;;;;;;;;;;;;;;;;;;;;;ACON,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;mECf9CC,yCAAaC,2CAAe"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-
|
|
1
|
+
import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-BREkblnu.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";
|
|
@@ -7,9 +7,19 @@ import { BaseError } from "@dynamic-labs-sdk/client";
|
|
|
7
7
|
/**
|
|
8
8
|
* Adds the Cosmos extension to the Dynamic client.
|
|
9
9
|
*
|
|
10
|
-
* This is a convenience function that adds support for cosmos injected wallets
|
|
10
|
+
* This is a convenience function that adds support for cosmos injected wallets
|
|
11
|
+
* like Compass, Keplr, and more.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const client = createDynamicClient({ environmentId: 'env-123' });
|
|
16
|
+
* addCosmosExtension(client);
|
|
17
|
+
* ```
|
|
11
18
|
*
|
|
12
19
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
20
|
+
* @returns void
|
|
21
|
+
* @see isCosmosWalletAccount
|
|
22
|
+
* @see createDynamicClient
|
|
13
23
|
* @notInstrumented
|
|
14
24
|
*/
|
|
15
25
|
const addCosmosExtension = (client = getDefaultClient()) => {
|
|
@@ -34,7 +44,21 @@ var NotCosmosProviderError = class extends BaseError {
|
|
|
34
44
|
|
|
35
45
|
//#endregion
|
|
36
46
|
//#region src/isCosmosWalletAccount/isCosmosWalletAccount.ts
|
|
37
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Type guard function to check if a wallet account is a Cosmos wallet account.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* const accounts = getWalletAccounts();
|
|
53
|
+
* const cosmosAccounts = accounts.filter(isCosmosWalletAccount);
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
56
|
+
* @param walletAccount - The wallet account to check.
|
|
57
|
+
* @returns True if the wallet account is a Cosmos wallet account, false otherwise.
|
|
58
|
+
* @see addCosmosExtension
|
|
59
|
+
* @see createDynamicClient
|
|
60
|
+
* @notInstrumented
|
|
61
|
+
*/
|
|
38
62
|
const isCosmosWalletAccount = (walletAccount) => walletAccount.chain === "COSMOS";
|
|
39
63
|
|
|
40
64
|
//#endregion
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","names":["packageName","packageVersion"],"sources":["../src/addCosmosExtension/addCosmosExtension.ts","../src/errors/NotCosmosProviderError/NotCosmosProviderError.ts","../src/isCosmosWalletAccount/isCosmosWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addCosmosInjectedExtension } from '../injected/addCosmosInjectedExtension/addCosmosInjectedExtension';\n\n/**\n * Adds the Cosmos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for cosmos injected wallets like Compass, Keplr, and more.\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @notInstrumented\n */\nexport const addCosmosExtension = (client = getDefaultClient()): void => {\n addCosmosInjectedExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotCosmosProviderError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'not_cosmos_provider',\n details: undefined,\n docsUrl: null,\n metaMessages: undefined,\n name: 'NotCosmosProviderError',\n shortMessage: 'The provided wallet provider is not a Cosmos wallet provider.',\n });\n }\n}\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\n\n
|
|
1
|
+
{"version":3,"file":"index.esm.js","names":["packageName","packageVersion"],"sources":["../src/addCosmosExtension/addCosmosExtension.ts","../src/errors/NotCosmosProviderError/NotCosmosProviderError.ts","../src/isCosmosWalletAccount/isCosmosWalletAccount.ts","../src/exports/index.ts"],"sourcesContent":["import { getDefaultClient } from '@dynamic-labs-sdk/client/core';\n\nimport { addCosmosInjectedExtension } from '../injected/addCosmosInjectedExtension/addCosmosInjectedExtension';\n\n/**\n * Adds the Cosmos extension to the Dynamic client.\n *\n * This is a convenience function that adds support for cosmos injected wallets\n * like Compass, Keplr, and more.\n *\n * @example\n * ```ts\n * const client = createDynamicClient({ environmentId: 'env-123' });\n * addCosmosExtension(client);\n * ```\n *\n * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.\n * @returns void\n * @see isCosmosWalletAccount\n * @see createDynamicClient\n * @notInstrumented\n */\nexport const addCosmosExtension = (client = getDefaultClient()): void => {\n addCosmosInjectedExtension(client);\n};\n","import { BaseError } from '@dynamic-labs-sdk/client';\n\nexport class NotCosmosProviderError extends BaseError {\n constructor() {\n super({\n cause: null,\n code: 'not_cosmos_provider',\n details: undefined,\n docsUrl: null,\n metaMessages: undefined,\n name: 'NotCosmosProviderError',\n shortMessage: 'The provided wallet provider is not a Cosmos wallet provider.',\n });\n }\n}\n","import type { WalletAccount } from '@dynamic-labs-sdk/client';\n\nimport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\n\n/**\n * Type guard function to check if a wallet account is a Cosmos wallet account.\n *\n * @example\n * ```ts\n * const accounts = getWalletAccounts();\n * const cosmosAccounts = accounts.filter(isCosmosWalletAccount);\n * ```\n *\n * @param walletAccount - The wallet account to check.\n * @returns True if the wallet account is a Cosmos wallet account, false otherwise.\n * @see addCosmosExtension\n * @see createDynamicClient\n * @notInstrumented\n */\nexport const isCosmosWalletAccount = (\n walletAccount: WalletAccount\n): walletAccount is CosmosWalletAccount => walletAccount.chain === 'COSMOS';\n","import { assertPackageVersion } from '@dynamic-labs-sdk/assert-package-version';\n\nimport {\n name as packageName,\n version as packageVersion,\n} from '../../package.json';\nassertPackageVersion(packageName, packageVersion);\n\nexport { addCosmosExtension } from '../addCosmosExtension';\nexport type { CosmosNetworkProvider } from '../CosmosNetworkProvider.types';\nexport type { CosmosWalletAccount } from '../CosmosWalletAccount.types';\nexport type { CosmosOfflineSigner } from '../CosmosWalletProvider.types';\nexport { NotCosmosProviderError } from '../errors/NotCosmosProviderError';\nexport { isCosmosWalletAccount } from '../isCosmosWalletAccount';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAa,sBAAsB,SAAS,kBAAkB,KAAW;AACvE,4BAA2B,OAAO;;;;;ACrBpC,IAAa,yBAAb,cAA4C,UAAU;CACpD,cAAc;AACZ,QAAM;GACJ,OAAO;GACP,MAAM;GACN,SAAS;GACT,SAAS;GACT,cAAc;GACd,MAAM;GACN,cAAc;GACf,CAAC;;;;;;;;;;;;;;;;;;;;;ACON,MAAa,yBACX,kBACyC,cAAc,UAAU;;;;ACfnE,qBAAqBA,MAAaC,QAAe"}
|
package/dist/injected.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-
|
|
1
|
+
const require_addCosmosInjectedExtension = require('./addCosmosInjectedExtension-B4bIDzce.cjs');
|
|
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
|
package/dist/injected.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-
|
|
1
|
+
import { n as name, r as version, t as addCosmosInjectedExtension } from "./addCosmosInjectedExtension-BREkblnu.esm.js";
|
|
2
2
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
3
3
|
|
|
4
4
|
//#region src/exports/injected.ts
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import type { WalletAccount } from '@dynamic-labs-sdk/client';
|
|
2
2
|
import type { CosmosWalletAccount } from '../CosmosWalletAccount.types';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Type guard function to check if a wallet account is a Cosmos wallet account.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* const accounts = getWalletAccounts();
|
|
9
|
+
* const cosmosAccounts = accounts.filter(isCosmosWalletAccount);
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @param walletAccount - The wallet account to check.
|
|
13
|
+
* @returns True if the wallet account is a Cosmos wallet account, false otherwise.
|
|
14
|
+
* @see addCosmosExtension
|
|
15
|
+
* @see createDynamicClient
|
|
16
|
+
* @notInstrumented
|
|
17
|
+
*/
|
|
4
18
|
export declare const isCosmosWalletAccount: (walletAccount: WalletAccount) => walletAccount is CosmosWalletAccount;
|
|
5
19
|
//# sourceMappingURL=isCosmosWalletAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isCosmosWalletAccount.d.ts","sourceRoot":"","sources":["../../src/isCosmosWalletAccount/isCosmosWalletAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE
|
|
1
|
+
{"version":3,"file":"isCosmosWalletAccount.d.ts","sourceRoot":"","sources":["../../src/isCosmosWalletAccount/isCosmosWalletAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,kBACjB,aAAa,KAC3B,aAAa,IAAI,mBAAuD,CAAC"}
|