@hyperlane-xyz/widgets 31.1.0 → 31.2.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"accountUtils.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/accountUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,uBAAuB,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAChD,OAAO,GAAG,SAAS,CAarB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,CAAC,EAAE,WAAW,EACrB,SAAS,CAAC,EAAE,SAAS,UAiCtB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,uBAAuB,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAChD;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;CAAE,CAMnE"}
1
+ {"version":3,"file":"accountUtils.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/accountUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,iBAAiB,EAEvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,uBAAuB,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAChD,OAAO,GAAG,SAAS,CAKrB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,CAAC,EAAE,WAAW,EACrB,SAAS,CAAC,EAAE,SAAS,UAiCtB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,uBAAuB,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAChD;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAA;CAAE,CAMnE"}
@@ -1,18 +1,12 @@
1
1
  import { cosmoshub } from '@hyperlane-xyz/registry';
2
2
  import { ProtocolType, } from '@hyperlane-xyz/utils';
3
+ import { getAddressForChain } from './walletAddresses.js';
3
4
  export function getAccountAddressForChain(multiProvider, chainName, accounts) {
4
5
  if (!chainName || !accounts)
5
6
  return undefined;
6
7
  const protocol = multiProvider.getProtocol(chainName);
7
8
  const account = accounts[protocol];
8
- if (protocol === ProtocolType.Cosmos ||
9
- protocol === ProtocolType.CosmosNative) {
10
- return account?.addresses.find((a) => a.chainName === chainName)?.address;
11
- }
12
- else {
13
- // Use first because only cosmos has the notion of per-chain addresses
14
- return account?.addresses[0]?.address;
15
- }
9
+ return getAddressForChain(account?.addresses, protocol, chainName);
16
10
  }
17
11
  export function getAddressFromAccountAndChain(account, chainName) {
18
12
  if (!account) {
@@ -1 +1 @@
1
- {"version":3,"file":"accountUtils.js","sourceRoot":"","sources":["../../src/walletIntegrations/accountUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAIL,YAAY,GACb,MAAM,sBAAsB,CAAC;AAI9B,MAAM,UAAU,yBAAyB,CACvC,aAAsC,EACtC,SAAqB,EACrB,QAAiD;IAEjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,IACE,QAAQ,KAAK,YAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,YAAY,CAAC,YAAY,EACtC,CAAC;QACD,OAAO,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,OAAO,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,OAAO,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACxC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAqB,EACrB,SAAqB;IAErB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IACnE,iEAAiE;IACjE,mEAAmE;IACnE,+BAA+B;IAC/B,IACE,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,MAAM;QACxC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,YAAY,EAC9C,CAAC;QACD,sDAAsD;QACtD,wDAAwD;QACxD,gBAAgB;QAChB,MAAM,aAAa,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CACjC,EAAE,OAAO,CAAC;QAEX,8DAA8D;QAC9D,yCAAyC;QACzC,OAAO,CACL,aAAa;YACb,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC;gBAC7D,EAAE,OAAO;YACX,SAAS,CACV,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,aAAsC,EACtC,SAAqB,EACrB,QAAiD;IAEjD,MAAM,OAAO,GAAG,yBAAyB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAChD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"accountUtils.js","sourceRoot":"","sources":["../../src/walletIntegrations/accountUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAIL,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,UAAU,yBAAyB,CACvC,aAAsC,EACtC,SAAqB,EACrB,QAAiD;IAEjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,OAAqB,EACrB,SAAqB;IAErB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,mEAAmE;IACnE,iEAAiE;IACjE,mEAAmE;IACnE,+BAA+B;IAC/B,IACE,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,MAAM;QACxC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,YAAY,EAC9C,CAAC;QACD,sDAAsD;QACtD,wDAAwD;QACxD,gBAAgB;QAChB,MAAM,aAAa,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CACjC,EAAE,OAAO,CAAC;QAEX,8DAA8D;QAC9D,yCAAyC;QACzC,OAAO,CACL,aAAa;YACb,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC;gBAC7D,EAAE,OAAO;YACX,SAAS,CACV,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,aAAsC,EACtC,SAAqB,EACrB,QAAiD;IAEjD,MAAM,OAAO,GAAG,yBAAyB,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9E,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAChD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { useAccounts, useAccountForChain, useAccountAddressForChain, } from './accounts.js';
2
2
  export { getAccountAddressAndPubKey, getAccountAddressForChain, getAddressFromAccountAndChain, } from './accountUtils.js';
3
+ export { getAddressForChain, useWalletAddressForChainAndProtocol, useWalletAddressesByProtocol, } from './walletAddresses.js';
3
4
  export { useActiveChains } from './activeChains.js';
4
5
  export { useConnectFns } from './connectFns.js';
5
6
  export { useDisconnectFns } from './disconnectFns.js';
@@ -1 +1 @@
1
- {"version":3,"file":"multiProtocol.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/multiProtocol.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"multiProtocol.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/multiProtocol.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { useAccounts, useAccountForChain, useAccountAddressForChain, } from './accounts.js';
2
2
  export { getAccountAddressAndPubKey, getAccountAddressForChain, getAddressFromAccountAndChain, } from './accountUtils.js';
3
+ export { getAddressForChain, useWalletAddressForChainAndProtocol, useWalletAddressesByProtocol, } from './walletAddresses.js';
3
4
  export { useActiveChains } from './activeChains.js';
4
5
  export { useConnectFns } from './connectFns.js';
5
6
  export { useDisconnectFns } from './disconnectFns.js';
@@ -1 +1 @@
1
- {"version":3,"file":"multiProtocol.js","sourceRoot":"","sources":["../../src/walletIntegrations/multiProtocol.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"multiProtocol.js","sourceRoot":"","sources":["../../src/walletIntegrations/multiProtocol.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,mCAAmC,EACnC,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/solana.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAO9F,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,sBAAsB,IAAI,gBAAgB,CAMzD;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,oBAAoB,GACnC,aAAa,CASf;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,oBAAoB,GAClC,mBAAmB,CAgErB"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/solana.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAS9F,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,sBAAsB,IAAI,gBAAgB,CAMzD;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,oBAAoB,GACnC,aAAa,CASf;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,oBAAoB,GAClC,mBAAmB,CAyGrB"}
@@ -2,6 +2,7 @@ import { useWallet } from '@solana/wallet-adapter-react';
2
2
  import { Connection } from '@solana/web3.js';
3
3
  import { useCallback } from 'react';
4
4
  import { ProviderType, } from '@hyperlane-xyz/sdk/providers/ProviderType';
5
+ import { sleep } from '@hyperlane-xyz/utils';
5
6
  import { widgetLogger } from '../logger.js';
6
7
  const logger = widgetLogger.child({ module: 'walletIntegrations/solana' });
7
8
  export { useSolanaAccount, useSolanaActiveChain, useSolanaConnectFn, useSolanaDisconnectFn, useSolanaWalletDetails, } from './solanaWallet.js';
@@ -27,18 +28,55 @@ export function useSolanaTransactionFns(multiProvider) {
27
28
  await switchNetwork(chainName);
28
29
  const rpcUrl = multiProvider.getRpcUrl(chainName);
29
30
  const connection = new Connection(rpcUrl, 'confirmed');
30
- const { context: { slot: minContextSlot }, value: { blockhash, lastValidBlockHeight }, } = await connection.getLatestBlockhashAndContext();
31
+ const { context: { slot: minContextSlot }, value: { lastValidBlockHeight }, } = await connection.getLatestBlockhashAndContext();
31
32
  logger.debug(`Sending tx on chain ${chainName}`);
32
33
  const signature = await sendSolTransaction(tx.transaction, connection, {
33
34
  minContextSlot,
34
35
  });
35
- const confirm = () => connection
36
- .confirmTransaction({ blockhash, lastValidBlockHeight, signature })
37
- .then(() => connection.getTransaction(signature))
38
- .then((r) => ({
39
- type: ProviderType.SolanaWeb3,
40
- receipt: r,
41
- }));
36
+ const confirm = async () => {
37
+ // Poll via HTTP instead of connection.confirmTransaction which
38
+ // relies on signatureSubscribe (WebSocket) many RPC providers
39
+ // (e.g. Alchemy) don't support that method.
40
+ const POLL_INTERVAL_MS = 2000;
41
+ while (true) {
42
+ try {
43
+ const { value } = await connection.getSignatureStatuses([
44
+ signature,
45
+ ]);
46
+ const status = value?.[0];
47
+ if (status?.err) {
48
+ throw new Error(`Transaction failed: ${JSON.stringify(status.err)}`);
49
+ }
50
+ if (status?.confirmationStatus === 'confirmed' ||
51
+ status?.confirmationStatus === 'finalized') {
52
+ break;
53
+ }
54
+ const blockHeight = await connection.getBlockHeight();
55
+ if (blockHeight > lastValidBlockHeight) {
56
+ throw new Error('Transaction expired: block height exceeded');
57
+ }
58
+ }
59
+ catch (error) {
60
+ // Re-throw definitive failures (tx error, expiry)
61
+ if (error instanceof Error &&
62
+ (error.message.startsWith('Transaction failed') ||
63
+ error.message.startsWith('Transaction expired'))) {
64
+ throw error;
65
+ }
66
+ // Tolerate transient RPC errors (timeouts, rate limits)
67
+ logger.warn('Transient error polling tx confirmation', error);
68
+ }
69
+ await sleep(POLL_INTERVAL_MS);
70
+ }
71
+ const tx = await connection.getTransaction(signature, {
72
+ commitment: 'confirmed',
73
+ maxSupportedTransactionVersion: 0,
74
+ });
75
+ if (!tx) {
76
+ throw new Error(`Transaction ${signature} confirmed but not found`);
77
+ }
78
+ return { type: ProviderType.SolanaWeb3, receipt: tx };
79
+ };
42
80
  return { hash: signature, confirm };
43
81
  }, [switchNetwork, sendSolTransaction, multiProvider]);
44
82
  const onMultiSendTx = useCallback(async ({ txs: _, chainName: __, activeChainName: ___, }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/walletIntegrations/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EACL,YAAY,GAEb,MAAM,2CAA2C,CAAC;AAMnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAQ5C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,sBAAsB;IACpC,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,EAAE,SAAoB,EAAE,EAAE;QACjE,MAAM,CAAC,IAAI,CAAC,mDAAmD,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,cAAoC;IAEpC,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,MAAsB,EAAE,gBAA2B,EAAE,EAAE;QAC5D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC,EACD,EAAE,CACH,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,aAAmC;IAEnC,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,SAAS,EAAE,CAAC;IAC5D,MAAM,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,EACL,EAAE,EACF,SAAS,EACT,eAAe,GAKhB,EAAE,EAAE;QACH,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,CAAC,UAAU;YACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,eAAe,IAAI,eAAe,KAAK,SAAS;YAClD,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACvD,MAAM,EACJ,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EACjC,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,GAC3C,GAAG,MAAM,UAAU,CAAC,4BAA4B,EAAE,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE;YACrE,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,GAAqC,EAAE,CACrD,UAAU;aACP,kBAAkB,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC;aAClE,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;aAChD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACZ,IAAI,EAAE,YAAY,CAAC,UAAU;YAC7B,OAAO,EAAE,CAAE;SACZ,CAAC,CAAC,CAAC;QAER,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACtC,CAAC,EACD,CAAC,aAAa,EAAE,kBAAkB,EAAE,aAAa,CAAC,CACnD,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,KAAK,EAAE,EACL,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,EAAE,EACb,eAAe,EAAE,GAAG,GAKrB,EAAE,EAAE;QACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC,EACD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,QAAQ;QACzB,oBAAoB,EAAE,aAAa;QACnC,aAAa;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/walletIntegrations/solana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { MinimalProviderRegistry } from '@hyperlane-xyz/sdk/providers/MinimalProviderRegistry';
2
+ import type { ChainName } from '@hyperlane-xyz/sdk/types';
3
+ import { ProtocolType } from '@hyperlane-xyz/utils';
4
+ import { type ChainAddress } from './types.js';
5
+ export declare function getAddressForChain(addresses: ChainAddress[] | undefined, protocol?: ProtocolType, chainName?: ChainName): string | undefined;
6
+ export declare function useWalletAddressesByProtocol(multiProvider: MinimalProviderRegistry): Map<ProtocolType, ChainAddress[]>;
7
+ export declare function useWalletAddressForChainAndProtocol(multiProvider: MinimalProviderRegistry, chainName?: ChainName, protocol?: ProtocolType): string | undefined;
8
+ //# sourceMappingURL=walletAddresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletAddresses.d.ts","sourceRoot":"","sources":["../../src/walletIntegrations/walletAddresses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAajE,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EACrC,QAAQ,CAAC,EAAE,YAAY,EACvB,SAAS,CAAC,EAAE,SAAS,sBActB;AAED,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,uBAAuB,GACrC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAYnC;AAED,wBAAgB,mCAAmC,CACjD,aAAa,EAAE,uBAAuB,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,YAAY,sBAWxB"}
@@ -0,0 +1,46 @@
1
+ import { useMemo } from 'react';
2
+ import { ProtocolType } from '@hyperlane-xyz/utils';
3
+ import { useAccounts } from './accounts.js';
4
+ const WALLET_ADDRESS_PROTOCOLS = [
5
+ ProtocolType.Ethereum,
6
+ ProtocolType.Sealevel,
7
+ ProtocolType.Cosmos,
8
+ ProtocolType.CosmosNative,
9
+ ProtocolType.Starknet,
10
+ ProtocolType.Radix,
11
+ ProtocolType.Aleo,
12
+ ProtocolType.Tron,
13
+ ];
14
+ export function getAddressForChain(addresses, protocol, chainName) {
15
+ if (!addresses?.length)
16
+ return undefined;
17
+ const chainAddress = addresses.find((address) => address.chainName === chainName)?.address;
18
+ if (protocol === ProtocolType.Cosmos ||
19
+ protocol === ProtocolType.CosmosNative) {
20
+ return chainAddress;
21
+ }
22
+ // Intentional fallback: non-Cosmos wallets often reuse one address across chains.
23
+ return chainAddress ?? addresses[0]?.address;
24
+ }
25
+ export function useWalletAddressesByProtocol(multiProvider) {
26
+ const { accounts } = useAccounts(multiProvider);
27
+ return useMemo(() => {
28
+ const map = new Map();
29
+ for (const protocol of WALLET_ADDRESS_PROTOCOLS) {
30
+ const account = accounts[protocol];
31
+ if (!account.addresses.length)
32
+ continue;
33
+ map.set(protocol, account.addresses);
34
+ }
35
+ return map;
36
+ }, [accounts]);
37
+ }
38
+ export function useWalletAddressForChainAndProtocol(multiProvider, chainName, protocol) {
39
+ const walletAddresses = useWalletAddressesByProtocol(multiProvider);
40
+ return useMemo(() => {
41
+ if (!chainName || !protocol)
42
+ return undefined;
43
+ return getAddressForChain(walletAddresses.get(protocol), protocol, chainName);
44
+ }, [chainName, protocol, walletAddresses]);
45
+ }
46
+ //# sourceMappingURL=walletAddresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletAddresses.js","sourceRoot":"","sources":["../../src/walletIntegrations/walletAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,wBAAwB,GAAqC;IACjE,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,MAAM;IACnB,YAAY,CAAC,YAAY;IACzB,YAAY,CAAC,QAAQ;IACrB,YAAY,CAAC,KAAK;IAClB,YAAY,CAAC,IAAI;IACjB,YAAY,CAAC,IAAI;CAClB,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAChC,SAAqC,EACrC,QAAuB,EACvB,SAAqB;IAErB,IAAI,CAAC,SAAS,EAAE,MAAM;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CACjC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAC7C,EAAE,OAAO,CAAC;IACX,IACE,QAAQ,KAAK,YAAY,CAAC,MAAM;QAChC,QAAQ,KAAK,YAAY,CAAC,YAAY,EACtC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,kFAAkF;IAClF,OAAO,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,aAAsC;IAEtC,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAEhD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgC,CAAC;QACpD,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;YAChD,MAAM,OAAO,GAAgB,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;gBAAE,SAAS;YACxC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,aAAsC,EACtC,SAAqB,EACrB,QAAuB;IAEvB,MAAM,eAAe,GAAG,4BAA4B,CAAC,aAAa,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,kBAAkB,CACvB,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC7B,QAAQ,EACR,SAAS,CACV,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperlane-xyz/widgets",
3
- "version": "31.1.0",
3
+ "version": "31.2.1",
4
4
  "description": "Common react components for Hyperlane projects",
5
5
  "keywords": [
6
6
  "Components",
@@ -23,6 +23,10 @@
23
23
  "default": "./dist/index.js"
24
24
  },
25
25
  "./styles.css": "./dist/styles.css",
26
+ "./animations/*": {
27
+ "types": "./dist/animations/*.d.ts",
28
+ "default": "./dist/animations/*.js"
29
+ },
26
30
  "./chains/*": {
27
31
  "types": "./dist/chains/*.d.ts",
28
32
  "default": "./dist/chains/*.js"
@@ -87,13 +91,13 @@
87
91
  "viem": "^2.21.45",
88
92
  "wagmi": "^2.12.26",
89
93
  "yaml": "2.4.5",
90
- "@hyperlane-xyz/aleo-sdk": "31.1.0",
91
- "@hyperlane-xyz/cosmos-sdk": "31.1.0",
92
- "@hyperlane-xyz/provider-sdk": "4.3.2",
93
- "@hyperlane-xyz/radix-sdk": "31.1.0",
94
- "@hyperlane-xyz/sdk": "31.1.0",
95
- "@hyperlane-xyz/tron-sdk": "22.1.12",
96
- "@hyperlane-xyz/utils": "31.1.0"
94
+ "@hyperlane-xyz/aleo-sdk": "31.2.1",
95
+ "@hyperlane-xyz/cosmos-sdk": "31.2.1",
96
+ "@hyperlane-xyz/provider-sdk": "4.3.4",
97
+ "@hyperlane-xyz/radix-sdk": "31.2.1",
98
+ "@hyperlane-xyz/sdk": "31.2.1",
99
+ "@hyperlane-xyz/tron-sdk": "22.1.14",
100
+ "@hyperlane-xyz/utils": "31.2.1"
97
101
  },
98
102
  "devDependencies": {
99
103
  "@chakra-ui/react": "^2.8.2",
@@ -123,7 +127,7 @@
123
127
  "tailwindcss": "^3.4.13",
124
128
  "typescript": "6.0.2",
125
129
  "vite": "^5.1.1",
126
- "@hyperlane-xyz/tsconfig": "^31.1.0"
130
+ "@hyperlane-xyz/tsconfig": "^31.2.1"
127
131
  },
128
132
  "peerDependencies": {
129
133
  "react": "^18",