@trustwallet/connect-walletconnect 0.0.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.
Files changed (94) hide show
  1. package/LICENSE.md +76 -0
  2. package/dist/constants.d.ts +30 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/constants.js +30 -0
  5. package/dist/constants.js.map +1 -0
  6. package/dist/errors/index.d.ts +34 -0
  7. package/dist/errors/index.d.ts.map +1 -0
  8. package/dist/errors/index.js +55 -0
  9. package/dist/errors/index.js.map +1 -0
  10. package/dist/explorer-api/index.d.ts +83 -0
  11. package/dist/explorer-api/index.d.ts.map +1 -0
  12. package/dist/explorer-api/index.js +118 -0
  13. package/dist/explorer-api/index.js.map +1 -0
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +7 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/react/hooks/index.d.ts +3 -0
  19. package/dist/react/hooks/index.d.ts.map +1 -0
  20. package/dist/react/hooks/index.js +3 -0
  21. package/dist/react/hooks/index.js.map +1 -0
  22. package/dist/react/hooks/useWalletConnect.d.ts +16 -0
  23. package/dist/react/hooks/useWalletConnect.d.ts.map +1 -0
  24. package/dist/react/hooks/useWalletConnect.js +51 -0
  25. package/dist/react/hooks/useWalletConnect.js.map +1 -0
  26. package/dist/react/hooks/useWalletConnectExplorer.d.ts +18 -0
  27. package/dist/react/hooks/useWalletConnectExplorer.d.ts.map +1 -0
  28. package/dist/react/hooks/useWalletConnectExplorer.js +82 -0
  29. package/dist/react/hooks/useWalletConnectExplorer.js.map +1 -0
  30. package/dist/react/hooks/useWalletConnectService.d.ts +7 -0
  31. package/dist/react/hooks/useWalletConnectService.d.ts.map +1 -0
  32. package/dist/react/hooks/useWalletConnectService.js +15 -0
  33. package/dist/react/hooks/useWalletConnectService.js.map +1 -0
  34. package/dist/react/index.d.ts +3 -0
  35. package/dist/react/index.d.ts.map +1 -0
  36. package/dist/react/index.js +2 -0
  37. package/dist/react/index.js.map +1 -0
  38. package/dist/rpc-interceptors/bip122/index.d.ts +25 -0
  39. package/dist/rpc-interceptors/bip122/index.d.ts.map +1 -0
  40. package/dist/rpc-interceptors/bip122/index.js +124 -0
  41. package/dist/rpc-interceptors/bip122/index.js.map +1 -0
  42. package/dist/rpc-interceptors/eip155/index.d.ts +27 -0
  43. package/dist/rpc-interceptors/eip155/index.d.ts.map +1 -0
  44. package/dist/rpc-interceptors/eip155/index.js +55 -0
  45. package/dist/rpc-interceptors/eip155/index.js.map +1 -0
  46. package/dist/rpc-interceptors/solana/index.d.ts +29 -0
  47. package/dist/rpc-interceptors/solana/index.d.ts.map +1 -0
  48. package/dist/rpc-interceptors/solana/index.js +112 -0
  49. package/dist/rpc-interceptors/solana/index.js.map +1 -0
  50. package/dist/rpc-types/bip122.d.ts +54 -0
  51. package/dist/rpc-types/bip122.d.ts.map +1 -0
  52. package/dist/rpc-types/bip122.js +2 -0
  53. package/dist/rpc-types/bip122.js.map +1 -0
  54. package/dist/rpc-types/eip155.d.ts +64 -0
  55. package/dist/rpc-types/eip155.d.ts.map +1 -0
  56. package/dist/rpc-types/eip155.js +6 -0
  57. package/dist/rpc-types/eip155.js.map +1 -0
  58. package/dist/rpc-types/index.d.ts +4 -0
  59. package/dist/rpc-types/index.d.ts.map +1 -0
  60. package/dist/rpc-types/index.js +4 -0
  61. package/dist/rpc-types/index.js.map +1 -0
  62. package/dist/rpc-types/solana.d.ts +72 -0
  63. package/dist/rpc-types/solana.d.ts.map +1 -0
  64. package/dist/rpc-types/solana.js +6 -0
  65. package/dist/rpc-types/solana.js.map +1 -0
  66. package/dist/scope-interceptor/index.d.ts +3 -0
  67. package/dist/scope-interceptor/index.d.ts.map +1 -0
  68. package/dist/scope-interceptor/index.js +29 -0
  69. package/dist/scope-interceptor/index.js.map +1 -0
  70. package/dist/service/index.d.ts +14 -0
  71. package/dist/service/index.d.ts.map +1 -0
  72. package/dist/service/index.js +40 -0
  73. package/dist/service/index.js.map +1 -0
  74. package/dist/service/service.d.ts +34 -0
  75. package/dist/service/service.d.ts.map +1 -0
  76. package/dist/service/service.js +63 -0
  77. package/dist/service/service.js.map +1 -0
  78. package/dist/types.d.ts +18 -0
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +2 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/wallet/index.d.ts +49 -0
  83. package/dist/wallet/index.d.ts.map +1 -0
  84. package/dist/wallet/index.js +361 -0
  85. package/dist/wallet/index.js.map +1 -0
  86. package/dist/wallet/namespace-config.d.ts +31 -0
  87. package/dist/wallet/namespace-config.d.ts.map +1 -0
  88. package/dist/wallet/namespace-config.js +92 -0
  89. package/dist/wallet/namespace-config.js.map +1 -0
  90. package/dist/wallet/types.d.ts +22 -0
  91. package/dist/wallet/types.d.ts.map +1 -0
  92. package/dist/wallet/types.js +2 -0
  93. package/dist/wallet/types.js.map +1 -0
  94. package/package.json +58 -0
@@ -0,0 +1,64 @@
1
+ /**
2
+ * WalletConnect EIP155 (EVM) RPC Types
3
+ * Based on: https://docs.walletconnect.network/wallet-sdk/chain-support/evm
4
+ */
5
+ export type HexString = `0x${string}`;
6
+ /**
7
+ * WalletConnect EIP155 RPC Request Arguments
8
+ */
9
+ export type WalletConnectEIP155Request = {
10
+ method: 'personal_sign';
11
+ params: [message: HexString, account: HexString];
12
+ } | {
13
+ method: 'eth_sign';
14
+ params: [account: HexString, message: HexString];
15
+ } | {
16
+ method: 'eth_signTypedData' | 'eth_signTypedData_v4';
17
+ params: [account: HexString, typedData: string];
18
+ } | {
19
+ method: 'eth_sendTransaction';
20
+ params: [
21
+ {
22
+ from: HexString;
23
+ to?: HexString;
24
+ data?: HexString;
25
+ gas?: HexString;
26
+ gasPrice?: HexString;
27
+ value?: HexString;
28
+ nonce?: HexString;
29
+ }
30
+ ];
31
+ } | {
32
+ method: 'eth_signTransaction';
33
+ params: [
34
+ {
35
+ from: HexString;
36
+ to?: HexString;
37
+ data?: HexString;
38
+ gas?: HexString;
39
+ gasPrice?: HexString;
40
+ value?: HexString;
41
+ nonce?: HexString;
42
+ }
43
+ ];
44
+ } | {
45
+ method: 'eth_sendRawTransaction';
46
+ params: [signedTransaction: HexString];
47
+ };
48
+ /**
49
+ * WalletConnect EIP155 RPC Response Types
50
+ */
51
+ export type WalletConnectEIP155Response<T extends WalletConnectEIP155Request = WalletConnectEIP155Request> = T extends {
52
+ method: 'personal_sign';
53
+ } ? HexString : T extends {
54
+ method: 'eth_sign';
55
+ } ? HexString : T extends {
56
+ method: 'eth_signTypedData' | 'eth_signTypedData_v4';
57
+ } ? HexString : T extends {
58
+ method: 'eth_sendTransaction';
59
+ } ? HexString : T extends {
60
+ method: 'eth_signTransaction';
61
+ } ? HexString : T extends {
62
+ method: 'eth_sendRawTransaction';
63
+ } ? HexString : never;
64
+ //# sourceMappingURL=eip155.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip155.d.ts","sourceRoot":"","sources":["../../src/rpc-types/eip155.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG,KAAK,MAAM,EAAE,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,0BAA0B,GACnC;IACA,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;CAC/C,GACD;IACA,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;CAC/C,GACD;IACA,MAAM,EAAE,mBAAmB,GAAG,sBAAsB,CAAA;IACpD,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;CAC9C,GACD;IACA,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,EAAE;QACP;YACC,IAAI,EAAE,SAAS,CAAA;YACf,EAAE,CAAC,EAAE,SAAS,CAAA;YACd,IAAI,CAAC,EAAE,SAAS,CAAA;YAChB,GAAG,CAAC,EAAE,SAAS,CAAA;YACf,QAAQ,CAAC,EAAE,SAAS,CAAA;YACpB,KAAK,CAAC,EAAE,SAAS,CAAA;YACjB,KAAK,CAAC,EAAE,SAAS,CAAA;SACjB;KACD,CAAA;CACA,GACD;IACA,MAAM,EAAE,qBAAqB,CAAA;IAC7B,MAAM,EAAE;QACP;YACC,IAAI,EAAE,SAAS,CAAA;YACf,EAAE,CAAC,EAAE,SAAS,CAAA;YACd,IAAI,CAAC,EAAE,SAAS,CAAA;YAChB,GAAG,CAAC,EAAE,SAAS,CAAA;YACf,QAAQ,CAAC,EAAE,SAAS,CAAA;YACpB,KAAK,CAAC,EAAE,SAAS,CAAA;YACjB,KAAK,CAAC,EAAE,SAAS,CAAA;SACjB;KACD,CAAA;CACA,GACD;IACA,MAAM,EAAE,wBAAwB,CAAA;IAChC,MAAM,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;CACrC,CAAA;AAEJ;;GAEG;AACH,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,0BAA0B,GAAG,0BAA0B,IACxG,CAAC,SAAS;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,GAClC,SAAS,GACT,CAAC,SAAS;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GAC/B,SAAS,GACT,CAAC,SAAS;IAAE,MAAM,EAAE,mBAAmB,GAAG,sBAAsB,CAAA;CAAE,GACjE,SAAS,GACT,CAAC,SAAS;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC1C,SAAS,GACT,CAAC,SAAS;IAAE,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC1C,SAAS,GACT,CAAC,SAAS;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GAC7C,SAAS,GACT,KAAK,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WalletConnect EIP155 (EVM) RPC Types
3
+ * Based on: https://docs.walletconnect.network/wallet-sdk/chain-support/evm
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=eip155.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip155.js","sourceRoot":"","sources":["../../src/rpc-types/eip155.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,4 @@
1
+ export * from './eip155';
2
+ export * from './solana';
3
+ export * from './bip122';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './eip155';
2
+ export * from './solana';
3
+ export * from './bip122';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc-types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * WalletConnect Solana RPC Types
3
+ * Based on: https://docs.walletconnect.network/wallet-sdk/chain-support/solana
4
+ */
5
+ export type Base58String = string;
6
+ export type Base64String = string;
7
+ /**
8
+ * Solana commitment levels
9
+ */
10
+ export type SolanaCommitment = 'processed' | 'confirmed' | 'finalized';
11
+ /**
12
+ * Solana account structure returned by WalletConnect
13
+ */
14
+ export type WalletConnectSolanaAccount = {
15
+ pubkey: Base58String;
16
+ };
17
+ /**
18
+ * Send options for Solana transactions
19
+ */
20
+ export type SolanaSendOptions = {
21
+ skipPreflight?: boolean;
22
+ preflightCommitment?: SolanaCommitment;
23
+ maxRetries?: number;
24
+ };
25
+ /**
26
+ * WalletConnect Solana RPC Request Arguments
27
+ */
28
+ export type WalletConnectSolanaRequest = {
29
+ method: 'solana_signMessage';
30
+ params: {
31
+ message: Base58String;
32
+ pubkey: Base58String;
33
+ };
34
+ } | {
35
+ method: 'solana_signTransaction';
36
+ params: {
37
+ transaction: Base64String;
38
+ };
39
+ } | {
40
+ method: 'solana_signAllTransactions';
41
+ params: {
42
+ transactions: Base64String[];
43
+ };
44
+ } | {
45
+ method: 'solana_signAndSendTransaction';
46
+ params: {
47
+ transaction: Base64String;
48
+ sendOptions?: SolanaSendOptions;
49
+ };
50
+ };
51
+ /**
52
+ * WalletConnect Solana RPC Response Types
53
+ */
54
+ export type WalletConnectSolanaResponse<T extends WalletConnectSolanaRequest = WalletConnectSolanaRequest> = T extends {
55
+ method: 'solana_signMessage';
56
+ } ? {
57
+ signature: Base58String;
58
+ } : T extends {
59
+ method: 'solana_signTransaction';
60
+ } ? {
61
+ signature: Base58String;
62
+ transaction?: Base64String;
63
+ } : T extends {
64
+ method: 'solana_signAllTransactions';
65
+ } ? {
66
+ transactions: Base64String[];
67
+ } : T extends {
68
+ method: 'solana_signAndSendTransaction';
69
+ } ? {
70
+ signature: Base58String;
71
+ } : never;
72
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/rpc-types/solana.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AACjC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAA;AAEtE;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,YAAY,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,gBAAgB,CAAA;IACtC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GACnC;IACA,MAAM,EAAE,oBAAoB,CAAA;IAC5B,MAAM,EAAE;QACP,OAAO,EAAE,YAAY,CAAA;QACrB,MAAM,EAAE,YAAY,CAAA;KACpB,CAAA;CACA,GACD;IACA,MAAM,EAAE,wBAAwB,CAAA;IAChC,MAAM,EAAE;QACP,WAAW,EAAE,YAAY,CAAA;KACzB,CAAA;CACA,GACD;IACA,MAAM,EAAE,4BAA4B,CAAA;IACpC,MAAM,EAAE;QACP,YAAY,EAAE,YAAY,EAAE,CAAA;KAC5B,CAAA;CACA,GACD;IACA,MAAM,EAAE,+BAA+B,CAAA;IACvC,MAAM,EAAE;QACP,WAAW,EAAE,YAAY,CAAA;QACzB,WAAW,CAAC,EAAE,iBAAiB,CAAA;KAC/B,CAAA;CACA,CAAA;AAEJ;;GAEG;AACH,MAAM,MAAM,2BAA2B,CAAC,CAAC,SAAS,0BAA0B,GAAG,0BAA0B,IACxG,CAAC,SAAS;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,GACvC;IAAE,SAAS,EAAE,YAAY,CAAA;CAAE,GAC3B,CAAC,SAAS;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,GAC7C;IAAE,SAAS,EAAE,YAAY,CAAC;IAAC,WAAW,CAAC,EAAE,YAAY,CAAA;CAAE,GACvD,CAAC,SAAS;IAAE,MAAM,EAAE,4BAA4B,CAAA;CAAE,GACjD;IAAE,YAAY,EAAE,YAAY,EAAE,CAAA;CAAE,GAChC,CAAC,SAAS;IAAE,MAAM,EAAE,+BAA+B,CAAA;CAAE,GACpD;IAAE,SAAS,EAAE,YAAY,CAAA;CAAE,GAC3B,KAAK,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * WalletConnect Solana RPC Types
3
+ * Based on: https://docs.walletconnect.network/wallet-sdk/chain-support/solana
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=solana.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/rpc-types/solana.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,3 @@
1
+ import { NamespaceId, Scope } from '@trustwallet/connect-core';
2
+ export declare function scopeInterceptor(namespace: NamespaceId, scope: Scope): Scope;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scope-interceptor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAIvE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CA8B5E"}
@@ -0,0 +1,29 @@
1
+ const NAMESPACES_REQUIRING_PREFIX = new Set(['solana']);
2
+ export function scopeInterceptor(namespace, scope) {
3
+ const transformedChains = [];
4
+ for (let chain of scope.CHAINS) {
5
+ transformedChains.push(`${scope.ID}:${chain}`);
6
+ }
7
+ if (!NAMESPACES_REQUIRING_PREFIX.has(namespace)) {
8
+ return {
9
+ ...scope,
10
+ CHAINS: transformedChains,
11
+ };
12
+ }
13
+ const transformedMethods = {};
14
+ for (const [key, method] of Object.entries(scope.METHODS)) {
15
+ if (method.includes('_')) {
16
+ transformedMethods[key] = method;
17
+ }
18
+ else {
19
+ // Add namespace prefix (e.g., solana_signMessage)
20
+ transformedMethods[key] = `${namespace}_${method}`;
21
+ }
22
+ }
23
+ return {
24
+ ...scope,
25
+ METHODS: transformedMethods,
26
+ CHAINS: transformedChains,
27
+ };
28
+ }
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scope-interceptor/index.ts"],"names":[],"mappings":"AAEA,MAAM,2BAA2B,GAAqB,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEzE,MAAM,UAAU,gBAAgB,CAAC,SAAsB,EAAE,KAAY;IACpE,MAAM,iBAAiB,GAAc,EAAE,CAAA;IAEvC,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,iBAAiB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,OAAO;YACN,GAAG,KAAK;YACR,MAAM,EAAE,iBAAiB;SACzB,CAAA;IACF,CAAC;IAED,MAAM,kBAAkB,GAA2B,EAAE,CAAA;IAErD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;QACjC,CAAC;aAAM,CAAC;YACP,kDAAkD;YAClD,kBAAkB,CAAC,GAAG,CAAC,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAA;QACnD,CAAC;IACF,CAAC;IAED,OAAO;QACN,GAAG,KAAK;QACR,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,iBAAiB;KACzB,CAAA;AACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { NamespaceId, Scope } from '@trustwallet/connect-core';
2
+ import type { WalletConnectOptions } from '../types';
3
+ import { WalletConnectService } from './service';
4
+ export { WalletConnectService } from './service';
5
+ export declare function createWalletConnect(options: WalletConnectOptions): {
6
+ /**
7
+ * @internal
8
+ * Internal use only. Do not use directly.
9
+ */
10
+ __createService: ({ scopes }: {
11
+ scopes: Map<NamespaceId, Scope>;
12
+ }) => WalletConnectService;
13
+ };
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAsB,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB;IA0B/D;;;OAGG;kCAC2B;QAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;KAAE;EASlE"}
@@ -0,0 +1,40 @@
1
+ import { WalletConnectService } from './service';
2
+ import { MissingProjectIdError } from '../errors';
3
+ export { WalletConnectService } from './service';
4
+ export function createWalletConnect(options) {
5
+ if (!options.projectId)
6
+ throw new MissingProjectIdError();
7
+ /**
8
+ * Initialize SignClient once, outside of React's render cycle.
9
+ * This prevents double-initialization caused by React Strict Mode or re-renders,
10
+ * since createWalletConnect is called at module/app level.
11
+ */
12
+ let signClientPromise;
13
+ function getSignClientPromise() {
14
+ if (signClientPromise)
15
+ return signClientPromise;
16
+ signClientPromise = (async () => {
17
+ const { SignClient } = await import('@walletconnect/sign-client');
18
+ return SignClient.init({
19
+ projectId: options.projectId,
20
+ metadata: options.metadata,
21
+ });
22
+ })();
23
+ return signClientPromise;
24
+ }
25
+ return {
26
+ /**
27
+ * @internal
28
+ * Internal use only. Do not use directly.
29
+ */
30
+ __createService: ({ scopes }) => {
31
+ return new WalletConnectService({
32
+ projectId: options.projectId,
33
+ metadata: options.metadata,
34
+ scopes,
35
+ signClientPromise: getSignClientPromise(),
36
+ });
37
+ },
38
+ };
39
+ }
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAChE,IAAI,CAAC,OAAO,CAAC,SAAS;QAAE,MAAM,IAAI,qBAAqB,EAAE,CAAA;IAEzD;;;;OAIG;IACH,IAAI,iBAA0D,CAAA;IAE9D,SAAS,oBAAoB;QAC5B,IAAI,iBAAiB;YAAE,OAAO,iBAAiB,CAAA;QAE/C,iBAAiB,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAA;YAEjE,OAAO,UAAU,CAAC,IAAI,CAAC;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAA;QACH,CAAC,CAAC,EAAE,CAAA;QAEJ,OAAO,iBAAiB,CAAA;IACzB,CAAC;IAED,OAAO;QACN;;;WAGG;QACH,eAAe,EAAE,CAAC,EAAE,MAAM,EAAuC,EAAE,EAAE;YACpE,OAAO,IAAI,oBAAoB,CAAC;gBAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM;gBACN,iBAAiB,EAAE,oBAAoB,EAAE;aACzC,CAAC,CAAA;QACH,CAAC;KACD,CAAA;AACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { SignClientMetadata, WalletConnectServiceOptions } from '../types';
2
+ import { ServiceBase } from '@trustwallet/connect-core';
3
+ import { WalletConnectWalletAdapter } from '../wallet';
4
+ type ConnectParams = {
5
+ optionalNamespaces?: Record<string, {
6
+ chains: string[];
7
+ methods: string[];
8
+ events: string[];
9
+ }>;
10
+ };
11
+ export declare class WalletConnectService extends ServiceBase {
12
+ readonly id: string;
13
+ readonly projectId: string;
14
+ readonly metadata: SignClientMetadata | undefined;
15
+ private signClientPromise;
16
+ private signClientInstance;
17
+ private scopes;
18
+ uri: string | undefined;
19
+ caipWallet: WalletConnectWalletAdapter;
20
+ private wcEvents;
21
+ constructor(options: WalletConnectServiceOptions);
22
+ private start;
23
+ getSignClientInstance(): Promise<import("@walletconnect/sign-client").default>;
24
+ getConnectParams(): Promise<ConnectParams>;
25
+ /** store for external use. */
26
+ getCaipWallet(): WalletConnectWalletAdapter;
27
+ getUri(): string | undefined;
28
+ setUri(uri: string): void;
29
+ onUri(cb: (uri: string | undefined) => void): () => void;
30
+ offUri(cb: (uri: string | undefined) => void): void;
31
+ clearAllListeners(): void;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsB,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACnG,OAAO,EAAe,WAAW,EAAkB,MAAM,2BAA2B,CAAA;AAEpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAGtD,KAAK,aAAa,GAAG;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAC1B,MAAM,EACN;QACC,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,MAAM,EAAE,MAAM,EAAE,CAAA;KAChB,CACD,CAAA;CACD,CAAA;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IACpD,SAAgB,EAAE,EAAE,MAAM,CAA0B;IACpD,SAAgB,SAAS,EAAE,MAAM,CAAA;IACjC,SAAgB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACxD,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,MAAM,CAAyB;IAEvC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,UAAU,6BAER;IAEF,OAAO,CAAC,QAAQ,CAEZ;gBAEQ,OAAO,EAAE,2BAA2B;YAUlC,KAAK;IAIb,qBAAqB;IAKrB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IA2BhD,8BAA8B;IAC9B,aAAa;IAIb,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAIxD,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,GAAG,IAAI;IAI5C,iBAAiB,IAAI,IAAI;CAGhC"}
@@ -0,0 +1,63 @@
1
+ import { ServiceBase, Emitter } from '@trustwallet/connect-core';
2
+ import { WALLETCONNECT_WALLET } from '../constants';
3
+ import { WalletConnectWalletAdapter } from '../wallet';
4
+ import { scopeInterceptor } from '../scope-interceptor';
5
+ export class WalletConnectService extends ServiceBase {
6
+ constructor(options) {
7
+ super();
8
+ this.id = WALLETCONNECT_WALLET.ID;
9
+ this.caipWallet = new WalletConnectWalletAdapter({
10
+ walletConnectService: this,
11
+ });
12
+ this.wcEvents = new Emitter();
13
+ this.scopes = options.scopes;
14
+ this.projectId = options.projectId;
15
+ this.metadata = options.metadata;
16
+ this.signClientPromise = options.signClientPromise;
17
+ this.start();
18
+ }
19
+ async start() {
20
+ this.signClientInstance = await this.signClientPromise;
21
+ }
22
+ async getSignClientInstance() {
23
+ if (this.signClientInstance)
24
+ return this.signClientInstance;
25
+ return this.signClientPromise;
26
+ }
27
+ async getConnectParams() {
28
+ const optionalNamespaces = {};
29
+ /** Populate chains, methods, and events from scopes */
30
+ for (const [namespace, scope] of this.scopes) {
31
+ const transformedScope = scopeInterceptor(namespace, scope);
32
+ optionalNamespaces[namespace] = {
33
+ chains: transformedScope.CHAINS,
34
+ methods: Object.values(transformedScope.METHODS),
35
+ events: Object.values(transformedScope.EVENTS),
36
+ };
37
+ }
38
+ return {
39
+ optionalNamespaces,
40
+ };
41
+ }
42
+ /** store for external use. */
43
+ getCaipWallet() {
44
+ return this.caipWallet;
45
+ }
46
+ getUri() {
47
+ return this.uri;
48
+ }
49
+ setUri(uri) {
50
+ this.uri = uri;
51
+ this.wcEvents.emit('uri', this.uri);
52
+ }
53
+ onUri(cb) {
54
+ return this.wcEvents.on('uri', cb);
55
+ }
56
+ offUri(cb) {
57
+ return this.wcEvents.off('uri', cb);
58
+ }
59
+ clearAllListeners() {
60
+ this.wcEvents.clear();
61
+ }
62
+ }
63
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/service/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,OAAO,EAAS,MAAM,2BAA2B,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAavD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAiBpD,YAAY,OAAoC;QAC/C,KAAK,EAAE,CAAA;QAjBQ,OAAE,GAAW,oBAAoB,CAAC,EAAE,CAAA;QAQpD,eAAU,GAAG,IAAI,0BAA0B,CAAC;YAC3C,oBAAoB,EAAE,IAAI;SAC1B,CAAC,CAAA;QAEM,aAAQ,GAAG,IAAI,OAAO,EAE1B,CAAA;QAIH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QAElD,IAAI,CAAC,KAAK,EAAE,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,KAAK;QAClB,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,qBAAqB;QAC1B,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAA;QAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,gBAAgB;QACrB,MAAM,kBAAkB,GAQpB,EAAE,CAAA;QAEN,uDAAuD;QACvD,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAE3D,kBAAkB,CAAC,SAAS,CAAC,GAAG;gBAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAChD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;aAC9C,CAAA;QACF,CAAC;QAED,OAAO;YACN,kBAAkB;SAClB,CAAA;IACF,CAAC;IAED,8BAA8B;IAC9B,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAA;IACvB,CAAC;IAED,MAAM;QACL,OAAO,IAAI,CAAC,GAAG,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,GAAW;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,EAAqC;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,CAAC,EAAqC;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAEM,iBAAiB;QACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACD"}
@@ -0,0 +1,18 @@
1
+ import { NamespaceId, Scope } from '@trustwallet/connect-core';
2
+ import { SignClient } from '@walletconnect/sign-client';
3
+ export type SignClientMetadata = {
4
+ name: string;
5
+ description: string;
6
+ url: string;
7
+ icons: string[];
8
+ };
9
+ export type SignClientInstance = Awaited<ReturnType<(typeof SignClient)['init']>>;
10
+ export type WalletConnectOptions = {
11
+ projectId: string;
12
+ metadata?: SignClientMetadata;
13
+ };
14
+ export type WalletConnectServiceOptions = {
15
+ scopes: Map<NamespaceId, Scope>;
16
+ signClientPromise: Promise<SignClientInstance>;
17
+ } & WalletConnectOptions;
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEjF,MAAM,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAC/B,iBAAiB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;CAC9C,GAAG,oBAAoB,CAAA"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { WalletAdapterBase, WalletType, CaipProvider, CaipSessionResponse } from '@trustwallet/connect-core';
2
+ import { WalletConnectService } from '../service/service';
3
+ type WalletAdapterOptions = {
4
+ walletConnectService: WalletConnectService;
5
+ };
6
+ export declare class WalletConnectWalletAdapter extends WalletAdapterBase<'caip'> {
7
+ readonly options: WalletAdapterOptions;
8
+ namespaceIds: never[];
9
+ service: WalletConnectService;
10
+ readonly id: string;
11
+ readonly type: Extract<WalletType, 'caip'>;
12
+ readonly name: string;
13
+ readonly icon: string;
14
+ private currentSession;
15
+ connectPromise: Promise<CaipSessionResponse> | undefined;
16
+ private accounts;
17
+ unsubscribers: (() => void)[];
18
+ constructor(options: WalletAdapterOptions);
19
+ /**
20
+ * Get account data for a specific namespace
21
+ */
22
+ private getAccount;
23
+ /**
24
+ * Set account data for a specific namespace
25
+ */
26
+ private setAccount;
27
+ /**
28
+ * Update account data for a specific namespace (merge with existing)
29
+ */
30
+ private updateAccount;
31
+ /**
32
+ * Reset all account data
33
+ */
34
+ private resetAllAccounts;
35
+ /**
36
+ * Clean up all pending proposals from previous failed attempts
37
+ */
38
+ private cleanupPendingPairings;
39
+ protected connect(): Promise<CaipSessionResponse>;
40
+ private disconnectRemainingSessions;
41
+ protected reconnect(): Promise<CaipSessionResponse | undefined>;
42
+ protected disconnect(): Promise<void>;
43
+ getProvider(): Promise<CaipProvider>;
44
+ protected startListeners(): Promise<void>;
45
+ protected stopListeners(): void;
46
+ onConnect(namespaces: CaipSessionResponse['namespaces']): void;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,iBAAiB,EAEjB,UAAU,EACV,YAAY,EACZ,mBAAmB,EAInB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAMzD,KAAK,oBAAoB,GAAG;IAC3B,oBAAoB,EAAE,oBAAoB,CAAA;CAC1C,CAAA;AAYD,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAa5D,QAAQ,CAAC,OAAO,EAAE,oBAAoB;IAXlD,YAAY,UAAK;IACjB,OAAO,EAAE,oBAAoB,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAA0B;IAC7C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAS;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA4B;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAA4B;IACjD,OAAO,CAAC,cAAc,CAAiC;IACvD,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;IACxD,OAAO,CAAC,QAAQ,CAAiF;IACjG,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAK;gBAEb,OAAO,EAAE,oBAAoB;IAKlD;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;YACW,sBAAsB;cAiCpB,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAuEvD,OAAO,CAAC,2BAA2B;cA0BnB,SAAS,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;cA8BrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuC9B,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;cA4CjC,cAAc;IA2F9B,SAAS,CAAC,aAAa;IAKvB,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC;CAmCvD"}