@dynamic-labs/ethereum 0.0.0-exp20240808.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 (81) hide show
  1. package/CHANGELOG.md +3746 -0
  2. package/LICENSE +21 -0
  3. package/README.md +0 -0
  4. package/_virtual/_tslib.cjs +49 -0
  5. package/_virtual/_tslib.js +44 -0
  6. package/package.json +46 -0
  7. package/src/EthWalletConnector.cjs +234 -0
  8. package/src/EthWalletConnector.d.ts +3088 -0
  9. package/src/EthWalletConnector.js +230 -0
  10. package/src/coinbase/coinbase.cjs +98 -0
  11. package/src/coinbase/coinbase.d.ts +22 -0
  12. package/src/coinbase/coinbase.js +94 -0
  13. package/src/coinbase/helpers.cjs +38 -0
  14. package/src/coinbase/helpers.d.ts +3 -0
  15. package/src/coinbase/helpers.js +34 -0
  16. package/src/coinbase/index.d.ts +3 -0
  17. package/src/coinbase/types.d.ts +18 -0
  18. package/src/constants.cjs +8 -0
  19. package/src/constants.d.ts +1 -0
  20. package/src/constants.js +4 -0
  21. package/src/ethProviderHelper.cjs +163 -0
  22. package/src/ethProviderHelper.d.ts +43 -0
  23. package/src/ethProviderHelper.js +159 -0
  24. package/src/index.cjs +49 -0
  25. package/src/index.d.ts +11 -0
  26. package/src/index.js +35 -0
  27. package/src/injected/ExodusEvm.cjs +20 -0
  28. package/src/injected/ExodusEvm.d.ts +8 -0
  29. package/src/injected/ExodusEvm.js +16 -0
  30. package/src/injected/FallbackEvmConnector.cjs +22 -0
  31. package/src/injected/FallbackEvmConnector.d.ts +9 -0
  32. package/src/injected/FallbackEvmConnector.js +18 -0
  33. package/src/injected/InjectedWalletBase.cjs +110 -0
  34. package/src/injected/InjectedWalletBase.d.ts +29 -0
  35. package/src/injected/InjectedWalletBase.js +108 -0
  36. package/src/injected/PhantomEvm.cjs +37 -0
  37. package/src/injected/PhantomEvm.d.ts +8 -0
  38. package/src/injected/PhantomEvm.js +33 -0
  39. package/src/injected/UnknownInjected.cjs +21 -0
  40. package/src/injected/UnknownInjected.d.ts +8 -0
  41. package/src/injected/UnknownInjected.js +17 -0
  42. package/src/injected/fetchInjectedWalletConnectors.cjs +67 -0
  43. package/src/injected/fetchInjectedWalletConnectors.d.ts +6 -0
  44. package/src/injected/fetchInjectedWalletConnectors.js +62 -0
  45. package/src/injected/index.d.ts +5 -0
  46. package/src/polyfills.cjs +17 -0
  47. package/src/polyfills.d.ts +1 -0
  48. package/src/polyfills.js +15 -0
  49. package/src/types.d.ts +33 -0
  50. package/src/utils/findEvmNetwork.cjs +21 -0
  51. package/src/utils/findEvmNetwork.d.ts +6 -0
  52. package/src/utils/findEvmNetwork.js +17 -0
  53. package/src/utils/getNameservice.cjs +46 -0
  54. package/src/utils/getNameservice.d.ts +6 -0
  55. package/src/utils/getNameservice.js +42 -0
  56. package/src/utils/index.d.ts +2 -0
  57. package/src/utils/isEthWalletConnector/index.d.ts +1 -0
  58. package/src/utils/isEthWalletConnector/isEthWalletConnector.cjs +8 -0
  59. package/src/utils/isEthWalletConnector/isEthWalletConnector.d.ts +3 -0
  60. package/src/utils/isEthWalletConnector/isEthWalletConnector.js +4 -0
  61. package/src/utils/isString.d.ts +1 -0
  62. package/src/utils/isUnsupportedProviderError/index.d.ts +1 -0
  63. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +6 -0
  64. package/src/utils/last.d.ts +1 -0
  65. package/src/utils/parseIntSafe.cjs +23 -0
  66. package/src/utils/parseIntSafe.d.ts +1 -0
  67. package/src/utils/parseIntSafe.js +19 -0
  68. package/src/wallet/EthereumWallet.cjs +65 -0
  69. package/src/wallet/EthereumWallet.d.ts +17 -0
  70. package/src/wallet/EthereumWallet.js +61 -0
  71. package/src/wallet/index.d.ts +2 -0
  72. package/src/wallet/isEthereumWallet.cjs +8 -0
  73. package/src/wallet/isEthereumWallet.d.ts +3 -0
  74. package/src/wallet/isEthereumWallet.js +4 -0
  75. package/src/walletConnect/fetchWalletConnectWallets.cjs +30 -0
  76. package/src/walletConnect/fetchWalletConnectWallets.d.ts +6 -0
  77. package/src/walletConnect/fetchWalletConnectWallets.js +25 -0
  78. package/src/walletConnect/index.d.ts +2 -0
  79. package/src/walletConnect/walletConnect.cjs +531 -0
  80. package/src/walletConnect/walletConnect.d.ts +78 -0
  81. package/src/walletConnect/walletConnect.js +522 -0
@@ -0,0 +1 @@
1
+ export { isUnsupportedProviderError } from './isUnsupportedProviderError';
@@ -0,0 +1,6 @@
1
+ type UnsupportedProviderError = {
2
+ reason: string;
3
+ value: unknown;
4
+ };
5
+ export declare const isUnsupportedProviderError: (error: UnsupportedProviderError | unknown) => error is UnsupportedProviderError;
6
+ export {};
@@ -0,0 +1 @@
1
+ export declare const last: <T = unknown>(array: T[]) => T | undefined;
@@ -0,0 +1,23 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
7
+
8
+ const parseIntSafe = (value, radix = 10) => {
9
+ try {
10
+ const int = parseInt(String(value), radix);
11
+ if (isNaN(int)) {
12
+ walletConnectorCore.logger.error(`Error parsing ${value}`);
13
+ return undefined;
14
+ }
15
+ return int;
16
+ }
17
+ catch (e) {
18
+ walletConnectorCore.logger.error(`Error parsing ${value} to int: ${e}`);
19
+ }
20
+ return undefined;
21
+ };
22
+
23
+ exports.parseIntSafe = parseIntSafe;
@@ -0,0 +1 @@
1
+ export declare const parseIntSafe: (value: string | number, radix?: number) => number | undefined;
@@ -0,0 +1,19 @@
1
+ 'use client'
2
+ import { logger } from '@dynamic-labs/wallet-connector-core';
3
+
4
+ const parseIntSafe = (value, radix = 10) => {
5
+ try {
6
+ const int = parseInt(String(value), radix);
7
+ if (isNaN(int)) {
8
+ logger.error(`Error parsing ${value}`);
9
+ return undefined;
10
+ }
11
+ return int;
12
+ }
13
+ catch (e) {
14
+ logger.error(`Error parsing ${value} to int: ${e}`);
15
+ }
16
+ return undefined;
17
+ };
18
+
19
+ export { parseIntSafe };
@@ -0,0 +1,65 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../_virtual/_tslib.cjs');
7
+ var viem = require('viem');
8
+ var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
+ var viemUtils = require('@dynamic-labs/viem-utils');
10
+
11
+ class EthereumWallet extends walletConnectorCore.Wallet {
12
+ // /**
13
+ // * Retrieves the ethers signer for the wallet.
14
+ // * @returns A promise that resolves to the signer,
15
+ // * or undefined if the signer cannot be retrieved.
16
+ // */
17
+ // public async getEthersSigner() {
18
+ // return (this._connector as WalletConnector).ethers?.getSigner();
19
+ // }
20
+ /**
21
+ * Retrieves the wallet client
22
+ * @returns A promise that resolves to wallet client,
23
+ * or undefined if the wallet client cannot be retrieved.
24
+ */
25
+ getSigner() {
26
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
27
+ yield this.sync();
28
+ return this._connector.getSigner();
29
+ });
30
+ }
31
+ /**
32
+ * Retrieves the wallet client
33
+ * @returns A promise that resolves to wallet client,
34
+ * or undefined if the wallet client cannot be retrieved.
35
+ */
36
+ getWalletClient(chainId) {
37
+ return _tslib.__awaiter(this, void 0, void 0, function* () {
38
+ const walletClient = this._connector.getWalletClient(chainId);
39
+ if (!walletClient) {
40
+ return;
41
+ }
42
+ return viem.createWalletClient({
43
+ account: this.address,
44
+ chain: walletClient.chain,
45
+ transport: viemUtils.interceptTransport({
46
+ onPersonalSign: (_a) => _tslib.__awaiter(this, [_a], void 0, function* ({ provider, args }) {
47
+ yield this.sync();
48
+ return provider.request(args);
49
+ }),
50
+ onSendTransaction: (_b) => _tslib.__awaiter(this, [_b], void 0, function* ({ provider, args }) {
51
+ yield this.sync();
52
+ return provider.request(args);
53
+ }),
54
+ onSignTypedData: (_c) => _tslib.__awaiter(this, [_c], void 0, function* ({ provider, args }) {
55
+ yield this.sync();
56
+ return provider.request(args);
57
+ }),
58
+ transport: viem.custom(walletClient.transport),
59
+ }),
60
+ });
61
+ });
62
+ }
63
+ }
64
+
65
+ exports.EthereumWallet = EthereumWallet;
@@ -0,0 +1,17 @@
1
+ import { Account, Chain, Transport, WalletClient } from 'viem';
2
+ import { Wallet } from '@dynamic-labs/wallet-connector-core';
3
+ import { EthWalletConnector } from '../EthWalletConnector';
4
+ export declare class EthereumWallet extends Wallet<EthWalletConnector> {
5
+ /**
6
+ * Retrieves the wallet client
7
+ * @returns A promise that resolves to wallet client,
8
+ * or undefined if the wallet client cannot be retrieved.
9
+ */
10
+ getSigner(): Promise<WalletClient<Transport, Chain, Account> | undefined>;
11
+ /**
12
+ * Retrieves the wallet client
13
+ * @returns A promise that resolves to wallet client,
14
+ * or undefined if the wallet client cannot be retrieved.
15
+ */
16
+ getWalletClient(chainId?: string): Promise<WalletClient<Transport, Chain, Account> | undefined>;
17
+ }
@@ -0,0 +1,61 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../_virtual/_tslib.js';
3
+ import { createWalletClient, custom } from 'viem';
4
+ import { Wallet } from '@dynamic-labs/wallet-connector-core';
5
+ import { interceptTransport } from '@dynamic-labs/viem-utils';
6
+
7
+ class EthereumWallet extends Wallet {
8
+ // /**
9
+ // * Retrieves the ethers signer for the wallet.
10
+ // * @returns A promise that resolves to the signer,
11
+ // * or undefined if the signer cannot be retrieved.
12
+ // */
13
+ // public async getEthersSigner() {
14
+ // return (this._connector as WalletConnector).ethers?.getSigner();
15
+ // }
16
+ /**
17
+ * Retrieves the wallet client
18
+ * @returns A promise that resolves to wallet client,
19
+ * or undefined if the wallet client cannot be retrieved.
20
+ */
21
+ getSigner() {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ yield this.sync();
24
+ return this._connector.getSigner();
25
+ });
26
+ }
27
+ /**
28
+ * Retrieves the wallet client
29
+ * @returns A promise that resolves to wallet client,
30
+ * or undefined if the wallet client cannot be retrieved.
31
+ */
32
+ getWalletClient(chainId) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const walletClient = this._connector.getWalletClient(chainId);
35
+ if (!walletClient) {
36
+ return;
37
+ }
38
+ return createWalletClient({
39
+ account: this.address,
40
+ chain: walletClient.chain,
41
+ transport: interceptTransport({
42
+ onPersonalSign: (_a) => __awaiter(this, [_a], void 0, function* ({ provider, args }) {
43
+ yield this.sync();
44
+ return provider.request(args);
45
+ }),
46
+ onSendTransaction: (_b) => __awaiter(this, [_b], void 0, function* ({ provider, args }) {
47
+ yield this.sync();
48
+ return provider.request(args);
49
+ }),
50
+ onSignTypedData: (_c) => __awaiter(this, [_c], void 0, function* ({ provider, args }) {
51
+ yield this.sync();
52
+ return provider.request(args);
53
+ }),
54
+ transport: custom(walletClient.transport),
55
+ }),
56
+ });
57
+ });
58
+ }
59
+ }
60
+
61
+ export { EthereumWallet };
@@ -0,0 +1,2 @@
1
+ export * from './EthereumWallet';
2
+ export * from './isEthereumWallet';
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const isEthereumWallet = (wallet) => wallet.chain === 'EVM';
7
+
8
+ exports.isEthereumWallet = isEthereumWallet;
@@ -0,0 +1,3 @@
1
+ import { Wallet } from '@dynamic-labs/wallet-connector-core';
2
+ import { EthereumWallet } from './EthereumWallet';
3
+ export declare const isEthereumWallet: (wallet: Wallet) => wallet is EthereumWallet;
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ const isEthereumWallet = (wallet) => wallet.chain === 'EVM';
3
+
4
+ export { isEthereumWallet };
@@ -0,0 +1,30 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var walletConnect = require('./walletConnect.cjs');
7
+
8
+ const fetchWalletConnectWallets = ({ walletBook, }) => {
9
+ var _a;
10
+ return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
11
+ .filter(([, wallet]) => wallet.walletConnect && !wallet.filterFromWalletConnect)
12
+ .map(([key, wallet]) => {
13
+ const { shortName } = wallet;
14
+ const name = shortName || wallet.name;
15
+ return class extends walletConnect.WalletConnect {
16
+ constructor(props) {
17
+ super(Object.assign(Object.assign({}, props), { walletName: name }));
18
+ this.overrideKey = key;
19
+ }
20
+ };
21
+ });
22
+ };
23
+ const getWalletConnectConnector = () => class extends walletConnect.WalletConnect {
24
+ constructor(props) {
25
+ super(Object.assign(Object.assign({}, props), { walletName: 'WalletConnect' }));
26
+ }
27
+ };
28
+
29
+ exports.fetchWalletConnectWallets = fetchWalletConnectWallets;
30
+ exports.getWalletConnectConnector = getWalletConnectConnector;
@@ -0,0 +1,6 @@
1
+ import { WalletBookSchema } from '@dynamic-labs/wallet-book';
2
+ import { WalletConnectorConstructor } from '@dynamic-labs/wallet-connector-core';
3
+ export declare const fetchWalletConnectWallets: ({ walletBook, }: {
4
+ walletBook: WalletBookSchema;
5
+ }) => Array<WalletConnectorConstructor>;
6
+ export declare const getWalletConnectConnector: () => WalletConnectorConstructor;
@@ -0,0 +1,25 @@
1
+ 'use client'
2
+ import { WalletConnect } from './walletConnect.js';
3
+
4
+ const fetchWalletConnectWallets = ({ walletBook, }) => {
5
+ var _a;
6
+ return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
7
+ .filter(([, wallet]) => wallet.walletConnect && !wallet.filterFromWalletConnect)
8
+ .map(([key, wallet]) => {
9
+ const { shortName } = wallet;
10
+ const name = shortName || wallet.name;
11
+ return class extends WalletConnect {
12
+ constructor(props) {
13
+ super(Object.assign(Object.assign({}, props), { walletName: name }));
14
+ this.overrideKey = key;
15
+ }
16
+ };
17
+ });
18
+ };
19
+ const getWalletConnectConnector = () => class extends WalletConnect {
20
+ constructor(props) {
21
+ super(Object.assign(Object.assign({}, props), { walletName: 'WalletConnect' }));
22
+ }
23
+ };
24
+
25
+ export { fetchWalletConnectWallets, getWalletConnectConnector };
@@ -0,0 +1,2 @@
1
+ export { WalletConnect } from './walletConnect';
2
+ export { fetchWalletConnectWallets } from './fetchWalletConnectWallets';