@dynamic-labs/multi-wallet 0.16.12-viem.1 → 0.16.13

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 (58) hide show
  1. package/CHANGELOG.md +13 -3
  2. package/package.json +4 -4
  3. package/src/errors.cjs +2 -1
  4. package/src/errors.d.ts +6 -2
  5. package/src/errors.js +2 -1
  6. package/src/multi-wallet.cjs +4 -3
  7. package/src/multi-wallet.js +4 -3
  8. package/src/rpcProviders.cjs +2 -6
  9. package/src/rpcProviders.js +2 -6
  10. package/src/types.d.ts +8 -16
  11. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +54 -0
  12. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +3 -0
  13. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +50 -0
  14. package/src/utils/assignConfirmationScreenToProvider/index.d.ts +1 -0
  15. package/src/utils/isFunction/isFunction.cjs +8 -0
  16. package/src/utils/isFunction/isFunction.js +4 -0
  17. package/src/utils/message.cjs +2 -2
  18. package/src/utils/message.js +1 -1
  19. package/src/wallets/algorand/myalgo.d.ts +2 -1
  20. package/src/wallets/clients/coinbase/coinbase.cjs +2 -2
  21. package/src/wallets/clients/coinbase/coinbase.js +2 -2
  22. package/src/wallets/clients/walletConnect/walletConnect.cjs +5 -9
  23. package/src/wallets/clients/walletConnect/walletConnect.d.ts +2 -2
  24. package/src/wallets/clients/walletConnect/walletConnect.js +5 -9
  25. package/src/wallets/ethereum/BloctoEvm.cjs +140 -0
  26. package/src/wallets/ethereum/BloctoEvm.d.ts +2 -4
  27. package/src/wallets/ethereum/BloctoEvm.js +134 -0
  28. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +37 -5
  29. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +3 -0
  30. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +37 -5
  31. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +14 -35
  32. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +4 -4
  33. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +14 -35
  34. package/src/wallets/ethereum/coinbase.cjs +7 -18
  35. package/src/wallets/ethereum/coinbase.d.ts +2 -750
  36. package/src/wallets/ethereum/coinbase.js +7 -18
  37. package/src/wallets/ethereum/ethProvider.cjs +29 -13
  38. package/src/wallets/ethereum/ethProvider.d.ts +7 -7
  39. package/src/wallets/ethereum/ethProvider.js +29 -13
  40. package/src/wallets/ethereum/ethProviderHelper.cjs +34 -52
  41. package/src/wallets/ethereum/ethProviderHelper.d.ts +20 -20
  42. package/src/wallets/ethereum/ethProviderHelper.js +34 -52
  43. package/src/wallets/ethereum/fortmatic.cjs +7 -15
  44. package/src/wallets/ethereum/fortmatic.d.ts +3 -5
  45. package/src/wallets/ethereum/fortmatic.js +7 -15
  46. package/src/wallets/ethereum/meta-mask.cjs +2 -13
  47. package/src/wallets/ethereum/meta-mask.d.ts +3 -752
  48. package/src/wallets/ethereum/meta-mask.js +2 -13
  49. package/src/wallets/walletConnect/walletConnect.cjs +6 -8
  50. package/src/wallets/walletConnect/walletConnect.d.ts +4 -751
  51. package/src/wallets/walletConnect/walletConnect.js +6 -8
  52. package/src/wallets/walletConnect/walletConnectV2.cjs +7 -11
  53. package/src/wallets/walletConnect/walletConnectV2.d.ts +4 -751
  54. package/src/wallets/walletConnect/walletConnectV2.js +7 -11
  55. package/src/wallets/window.d.ts +1 -3
  56. package/src/getOrMapViemChain.cjs +0 -77
  57. package/src/getOrMapViemChain.d.ts +0 -11
  58. package/src/getOrMapViemChain.js +0 -51
package/CHANGELOG.md CHANGED
@@ -1,12 +1,22 @@
1
1
 
2
- ### [0.16.12-viem.1](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.12-viem.0...v0.16.12-viem.1) (2023-05-06)
2
+ ### [0.16.13](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.12...v0.16.13) (2023-05-08)
3
3
 
4
- ### [0.16.12-viem.0](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.11...v0.16.12-viem.0) (2023-05-05)
4
+
5
+ ### Bug Fixes
6
+
7
+ * **TransactionModal:** ensure alchemy will not fail when estimating for gas ([#2067](https://github.com/dynamic-labs/DynamicAuth/issues/2067)) ([a0aea1b](https://github.com/dynamic-labs/DynamicAuth/commit/a0aea1bbabb9a81968dc4ba59d62e748c267849a))
8
+
9
+ ### [0.16.12](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.11...v0.16.12) (2023-05-05)
5
10
 
6
11
 
7
12
  ### Features
8
13
 
9
- * replace ethers with viem ([29d0d89](https://github.com/dynamic-labs/DynamicAuth/commit/29d0d89ff74355453e9294c2323b40a4447a0557))
14
+ * **DYN-1820:** support allow list in email authorization ([#1916](https://github.com/dynamic-labs/DynamicAuth/issues/1916)) ([#2039](https://github.com/dynamic-labs/DynamicAuth/issues/2039)) ([3aafb9d](https://github.com/dynamic-labs/DynamicAuth/commit/3aafb9d57e4125048f8b972624625b4a109eb9b1)), closes [#2040](https://github.com/dynamic-labs/DynamicAuth/issues/2040)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **MagicClientNetworkHandler:** save last used network id ([#2046](https://github.com/dynamic-labs/DynamicAuth/issues/2046)) ([bdd9f87](https://github.com/dynamic-labs/DynamicAuth/commit/bdd9f87060905730d76e4aabf7caeee30b310b9e))
10
20
 
11
21
  ### [0.16.11](https://github.com/dynamic-labs/DynamicAuth/compare/v0.16.10...v0.16.11) (2023-05-03)
12
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/multi-wallet",
3
- "version": "0.16.12-viem.1",
3
+ "version": "0.16.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -12,7 +12,7 @@
12
12
  "@dynamic-labs/sdk-api": "0.0.174",
13
13
  "@dynamic-labs/wallet-book": "^0.0.14",
14
14
  "starknet": "^3.19.0",
15
- "viem": "^0.3.17",
15
+ "ethers": "^5.7.2",
16
16
  "@randlabs/myalgo-connect": "^1.4.2",
17
17
  "@solana/web3.js": "^1.70.1",
18
18
  "@coinbase/wallet-sdk": "^3.6.4",
@@ -28,8 +28,8 @@
28
28
  "magic-sdk": "^16.0.1",
29
29
  "@keplr-wallet/provider": "0.11.56",
30
30
  "@keplr-wallet/types": "^0.11.51",
31
- "@dynamic-labs/logger": "0.16.12-viem.1",
32
- "@dynamic-labs/wallet-connector-core": "0.16.12-viem.1"
31
+ "@dynamic-labs/logger": "0.16.13",
32
+ "@dynamic-labs/wallet-connector-core": "0.16.13"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@walletconnect/types": "^2.2.1"
package/src/errors.cjs CHANGED
@@ -14,9 +14,10 @@ class EmailVerificationError extends DynamicError {
14
14
  }
15
15
  }
16
16
  class NoAccessError extends DynamicError {
17
- constructor(walletPublicKey) {
17
+ constructor({ walletPublicKey, email, }) {
18
18
  super('User does not have access');
19
19
  this.name = 'NoAccessError';
20
+ this.email = email;
20
21
  this.walletPublicKey = walletPublicKey;
21
22
  }
22
23
  }
package/src/errors.d.ts CHANGED
@@ -7,8 +7,12 @@ export declare class EmailVerificationError extends DynamicError {
7
7
  constructor(code: string);
8
8
  }
9
9
  export declare class NoAccessError extends DynamicError {
10
- walletPublicKey: string | undefined;
11
- constructor(walletPublicKey: string);
10
+ walletPublicKey?: string;
11
+ email?: string;
12
+ constructor({ walletPublicKey, email, }: {
13
+ email?: string;
14
+ walletPublicKey?: string;
15
+ });
12
16
  }
13
17
  export declare class ChainalysisError extends DynamicError {
14
18
  walletPublicKey: string | undefined;
package/src/errors.js CHANGED
@@ -10,9 +10,10 @@ class EmailVerificationError extends DynamicError {
10
10
  }
11
11
  }
12
12
  class NoAccessError extends DynamicError {
13
- constructor(walletPublicKey) {
13
+ constructor({ walletPublicKey, email, }) {
14
14
  super('User does not have access');
15
15
  this.name = 'NoAccessError';
16
+ this.email = email;
16
17
  this.walletPublicKey = walletPublicKey;
17
18
  }
18
19
  }
@@ -24,6 +24,7 @@ var ExodusSol = require('./wallets/solana/injected/ExodusSol.cjs');
24
24
  var BloctoInjected = require('./wallets/ethereum/injected/BloctoInjected.cjs');
25
25
  var argentx = require('./wallets/starknet/argentx.cjs');
26
26
  var braavos = require('./wallets/starknet/braavos.cjs');
27
+ var BloctoEvm = require('./wallets/ethereum/BloctoEvm.cjs');
27
28
  var phantomLedger = require('./wallets/solana/phantom-ledger.cjs');
28
29
  var CoinbaseSolana = require('./wallets/solana/CoinbaseSolana.cjs');
29
30
  var Frame = require('./wallets/ethereum/injected/Frame.cjs');
@@ -33,9 +34,9 @@ var getWalletConnectConnector = require('./wallets/getWalletConnectConnector.cjs
33
34
  var initializeWalletProviders = require('./wallets/initializeWalletProviders.cjs');
34
35
  var Dawn = require('./wallets/ethereum/injected/Dawn.cjs');
35
36
  var PhantomEvm = require('./wallets/ethereum/injected/PhantomEvm.cjs');
36
- require('viem');
37
+ require('ethers');
37
38
  require('./utils/logger.cjs');
38
- require('magic-sdk');
39
+ require('./wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs');
39
40
  var EmailOTPMagicWalletConnector = require('./wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs');
40
41
  var isEmailWalletConnector = require('./utils/isEmailWalletConnector/isEmailWalletConnector.cjs');
41
42
  var getKeplrConnector = require('./wallets/cosmos/getKeplrConnector.cjs');
@@ -112,7 +113,7 @@ const getSupportedWallets = ({ appLogoUrl, appName, isWalletConnectV2Enabled, ne
112
113
  new slope({ solNetworks: solanaNetworkConfigs }),
113
114
  new dapper({ appLogoUrl, appName }),
114
115
  new blocto({ appLogoUrl, appName }),
115
- // new BloctoEvm({ evmNetworks: evmNetworkConfigs }),
116
+ new BloctoEvm({ evmNetworks: evmNetworkConfigs }),
116
117
  new BloctoInjected({ evmNetworks: evmNetworkConfigs }),
117
118
  getWalletConnectConnector.getWalletConnectConnector({
118
119
  evmNetworks: evmNetworkConfigs,
@@ -20,6 +20,7 @@ import ExodusSol from './wallets/solana/injected/ExodusSol.js';
20
20
  import BloctoInjected from './wallets/ethereum/injected/BloctoInjected.js';
21
21
  import ArgentX from './wallets/starknet/argentx.js';
22
22
  import Braavos from './wallets/starknet/braavos.js';
23
+ import BloctoEvm from './wallets/ethereum/BloctoEvm.js';
23
24
  import PhantomLedger from './wallets/solana/phantom-ledger.js';
24
25
  export { walletName as phantomLedgerWalletName } from './wallets/solana/phantom-ledger.js';
25
26
  import CoinbaseSolana from './wallets/solana/CoinbaseSolana.js';
@@ -30,9 +31,9 @@ import { getWalletConnectConnector } from './wallets/getWalletConnectConnector.j
30
31
  import { initializeWalletProviders } from './wallets/initializeWalletProviders.js';
31
32
  import Dawn from './wallets/ethereum/injected/Dawn.js';
32
33
  import PhantomEvm from './wallets/ethereum/injected/PhantomEvm.js';
33
- import 'viem';
34
+ import 'ethers';
34
35
  import './utils/logger.js';
35
- import 'magic-sdk';
36
+ import './wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js';
36
37
  import { EmailOTPMagicWalletConnector } from './wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js';
37
38
  import { isEmailWalletConnector } from './utils/isEmailWalletConnector/isEmailWalletConnector.js';
38
39
  import { getKeplerConnector } from './wallets/cosmos/getKeplrConnector.js';
@@ -109,7 +110,7 @@ const getSupportedWallets = ({ appLogoUrl, appName, isWalletConnectV2Enabled, ne
109
110
  new Slope({ solNetworks: solanaNetworkConfigs }),
110
111
  new Dapper({ appLogoUrl, appName }),
111
112
  new Blocto({ appLogoUrl, appName }),
112
- // new BloctoEvm({ evmNetworks: evmNetworkConfigs }),
113
+ new BloctoEvm({ evmNetworks: evmNetworkConfigs }),
113
114
  new BloctoInjected({ evmNetworks: evmNetworkConfigs }),
114
115
  getWalletConnectConnector({
115
116
  evmNetworks: evmNetworkConfigs,
@@ -2,9 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var viem = require('viem');
6
5
  var web3_js = require('@solana/web3.js');
7
- var getOrMapViemChain = require('./getOrMapViemChain.cjs');
6
+ var ethers = require('ethers');
8
7
 
9
8
  const getRpcProviders = (configurations) => {
10
9
  const rpcProviders = {};
@@ -12,10 +11,7 @@ const getRpcProviders = (configurations) => {
12
11
  rpcProviders.evm = configurations.evm.map((network) => {
13
12
  var _a;
14
13
  const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
15
- const provider = viem.createPublicClient({
16
- chain: getOrMapViemChain.getOrMapViemChain(network),
17
- transport: viem.http(rpcUrl),
18
- });
14
+ const provider = new ethers.ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
19
15
  return {
20
16
  chainId: network.chainId,
21
17
  chainName: network.chainName,
@@ -1,6 +1,5 @@
1
- import { createPublicClient, http } from 'viem';
2
1
  import { Connection } from '@solana/web3.js';
3
- import { getOrMapViemChain } from './getOrMapViemChain.js';
2
+ import { ethers } from 'ethers';
4
3
 
5
4
  const getRpcProviders = (configurations) => {
6
5
  const rpcProviders = {};
@@ -8,10 +7,7 @@ const getRpcProviders = (configurations) => {
8
7
  rpcProviders.evm = configurations.evm.map((network) => {
9
8
  var _a;
10
9
  const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
11
- const provider = createPublicClient({
12
- chain: getOrMapViemChain(network),
13
- transport: http(rpcUrl),
14
- });
10
+ const provider = new ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
15
11
  return {
16
12
  chainId: network.chainId,
17
13
  chainName: network.chainName,
package/src/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Connection } from '@solana/web3.js';
2
- import { PublicClient, TransactionReceipt, TransactionRequest } from 'viem';
2
+ import { ethers } from 'ethers';
3
3
  import type { NetworkConfiguration } from '@dynamic-labs/sdk-api';
4
4
  import { WalletConnector, Chain } from '@dynamic-labs/wallet-connector-core';
5
5
  import { EvmNetwork } from './wallets/ethereum/evm-network';
@@ -10,7 +10,7 @@ export type VendorCredentials = {
10
10
  export type EvmRpcProvider = {
11
11
  chainId: number;
12
12
  chainName: string;
13
- provider: PublicClient;
13
+ provider: ethers.providers.JsonRpcProvider;
14
14
  };
15
15
  export type SolanaRpcProvider = {
16
16
  chainId?: number;
@@ -40,23 +40,16 @@ export type GetSupportedWalletsOpts = {
40
40
  walletUiUtils?: WalletUiUtils;
41
41
  };
42
42
  export type GetSupportedWallets = (opts?: GetSupportedWalletsOpts) => Promise<WalletConnector[]>;
43
- export type Deferrable<T> = {
44
- [K in keyof T]: T[K] | Promise<T[K]>;
45
- };
46
- interface ArrayLike<T> {
47
- readonly [n: number]: T;
48
- readonly length: number;
49
- }
50
- export type Bytes = ArrayLike<number>;
51
43
  export type WalletUiUtils = {
52
44
  enableInternalSign: () => void;
53
45
  sendTransaction: (props: {
54
- handler: (transaction: TransactionRequest) => Promise<TransactionReceipt>;
55
- transaction: TransactionRequest;
56
- }) => Promise<TransactionReceipt>;
46
+ handler: (transaction: ethers.utils.Deferrable<ethers.providers.TransactionRequest>) => Promise<ethers.providers.TransactionResponse>;
47
+ provider: ethers.providers.Web3Provider;
48
+ transaction: ethers.utils.Deferrable<ethers.providers.TransactionRequest>;
49
+ }) => Promise<ethers.providers.TransactionResponse>;
57
50
  signMessage: (props: {
58
- handler: () => Promise<string>;
59
- message: string | Bytes;
51
+ handler: (message: string | ethers.utils.Bytes) => Promise<string>;
52
+ message: string | ethers.utils.Bytes;
60
53
  }) => Promise<string>;
61
54
  };
62
55
  export type ChainInfo = {
@@ -69,4 +62,3 @@ export type ChainWihtIcon = {
69
62
  icon?: string;
70
63
  name: string | undefined;
71
64
  };
72
- export {};
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var isFunction = require('../isFunction/isFunction.cjs');
7
+
8
+ const applyJsonRpcSignerGates = (jsonRpcSigner, walletUiUtils, provider) => {
9
+ const originalSignMessage = jsonRpcSigner.signMessage;
10
+ const originalSendUncheckedTransaction = jsonRpcSigner.sendUncheckedTransaction;
11
+ if (isFunction.isFunction(originalSignMessage)) {
12
+ Object.assign(jsonRpcSigner, {
13
+ signMessage: (message) => tslib.__awaiter(void 0, void 0, void 0, function* () {
14
+ return walletUiUtils.signMessage({
15
+ handler: originalSignMessage.bind(jsonRpcSigner),
16
+ message,
17
+ });
18
+ }),
19
+ });
20
+ }
21
+ if (isFunction.isFunction(originalSendUncheckedTransaction)) {
22
+ Object.assign(jsonRpcSigner, {
23
+ sendUncheckedTransaction: (transaction) => tslib.__awaiter(void 0, void 0, void 0, function* () {
24
+ return walletUiUtils.sendTransaction({
25
+ handler: originalSendUncheckedTransaction.bind(jsonRpcSigner),
26
+ provider,
27
+ transaction,
28
+ });
29
+ }),
30
+ });
31
+ }
32
+ };
33
+ const assignConfirmationScreenToIntermediaryMethods = (parent, walletUiUtils, provider) => {
34
+ const methods = ['getSigner', 'getUncheckedSigner', 'connectUnchecked'];
35
+ methods.forEach((methodName) => {
36
+ const method = parent[methodName];
37
+ if (!isFunction.isFunction(method)) {
38
+ return;
39
+ }
40
+ Object.assign(parent, {
41
+ [methodName]: (...args) => {
42
+ const result = method.bind(parent)(...args);
43
+ if (typeof result === 'object' && result !== null) {
44
+ assignConfirmationScreenToIntermediaryMethods(result, walletUiUtils, provider);
45
+ applyJsonRpcSignerGates(result, walletUiUtils, provider);
46
+ }
47
+ return result;
48
+ },
49
+ });
50
+ });
51
+ };
52
+ const assignConfirmationScreenToProvider = (provider, walletUiUtils) => assignConfirmationScreenToIntermediaryMethods(provider, walletUiUtils, provider);
53
+
54
+ exports.assignConfirmationScreenToProvider = assignConfirmationScreenToProvider;
@@ -0,0 +1,3 @@
1
+ import { ethers } from 'ethers';
2
+ import { WalletUiUtils } from '../../types';
3
+ export declare const assignConfirmationScreenToProvider: (provider: ethers.providers.Web3Provider, walletUiUtils: WalletUiUtils) => void;
@@ -0,0 +1,50 @@
1
+ import { __awaiter } from 'tslib';
2
+ import { isFunction } from '../isFunction/isFunction.js';
3
+
4
+ const applyJsonRpcSignerGates = (jsonRpcSigner, walletUiUtils, provider) => {
5
+ const originalSignMessage = jsonRpcSigner.signMessage;
6
+ const originalSendUncheckedTransaction = jsonRpcSigner.sendUncheckedTransaction;
7
+ if (isFunction(originalSignMessage)) {
8
+ Object.assign(jsonRpcSigner, {
9
+ signMessage: (message) => __awaiter(void 0, void 0, void 0, function* () {
10
+ return walletUiUtils.signMessage({
11
+ handler: originalSignMessage.bind(jsonRpcSigner),
12
+ message,
13
+ });
14
+ }),
15
+ });
16
+ }
17
+ if (isFunction(originalSendUncheckedTransaction)) {
18
+ Object.assign(jsonRpcSigner, {
19
+ sendUncheckedTransaction: (transaction) => __awaiter(void 0, void 0, void 0, function* () {
20
+ return walletUiUtils.sendTransaction({
21
+ handler: originalSendUncheckedTransaction.bind(jsonRpcSigner),
22
+ provider,
23
+ transaction,
24
+ });
25
+ }),
26
+ });
27
+ }
28
+ };
29
+ const assignConfirmationScreenToIntermediaryMethods = (parent, walletUiUtils, provider) => {
30
+ const methods = ['getSigner', 'getUncheckedSigner', 'connectUnchecked'];
31
+ methods.forEach((methodName) => {
32
+ const method = parent[methodName];
33
+ if (!isFunction(method)) {
34
+ return;
35
+ }
36
+ Object.assign(parent, {
37
+ [methodName]: (...args) => {
38
+ const result = method.bind(parent)(...args);
39
+ if (typeof result === 'object' && result !== null) {
40
+ assignConfirmationScreenToIntermediaryMethods(result, walletUiUtils, provider);
41
+ applyJsonRpcSignerGates(result, walletUiUtils, provider);
42
+ }
43
+ return result;
44
+ },
45
+ });
46
+ });
47
+ };
48
+ const assignConfirmationScreenToProvider = (provider, walletUiUtils) => assignConfirmationScreenToIntermediaryMethods(provider, walletUiUtils, provider);
49
+
50
+ export { assignConfirmationScreenToProvider };
@@ -0,0 +1 @@
1
+ export { assignConfirmationScreenToProvider } from './assignConfirmationScreenToProvider';
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ // eslint-disable-next-line @typescript-eslint/ban-types
6
+ const isFunction = (value) => typeof value === 'function';
7
+
8
+ exports.isFunction = isFunction;
@@ -0,0 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/ban-types
2
+ const isFunction = (value) => typeof value === 'function';
3
+
4
+ export { isFunction };
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var viem = require('viem');
5
+ var utils = require('ethers/lib/utils');
6
6
  var logger = require('./logger.cjs');
7
7
  var getChainInfo = require('./getChainInfo/getChainInfo.cjs');
8
8
 
@@ -44,7 +44,7 @@ const generateMessageToSign = ({ blockchain, domain, chainId, nonce, uri, public
44
44
  const getEip55Address = (publicKey, chainId) => {
45
45
  try {
46
46
  if (chainId) {
47
- return viem.getAddress(publicKey);
47
+ return utils.getAddress(publicKey);
48
48
  }
49
49
  }
50
50
  catch (err) {
@@ -1,4 +1,4 @@
1
- import { getAddress } from 'viem';
1
+ import { getAddress } from 'ethers/lib/utils.js';
2
2
  import { logger } from './logger.js';
3
3
  import { getChainInfo } from './getChainInfo/getChainInfo.js';
4
4
 
@@ -1,4 +1,5 @@
1
1
  import { Connection } from '@solana/web3.js';
2
+ import { ethers } from 'ethers';
2
3
  import { Chain, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
4
  import { IMyAlgoSigner } from './myalgoSigner';
4
5
  declare class MyAlgo implements WalletConnector {
@@ -25,7 +26,7 @@ declare class MyAlgo implements WalletConnector {
25
26
  isInstalledOnBrowser(): boolean;
26
27
  supportsNetworkSwitching(): boolean;
27
28
  switchNetwork(): Promise<void>;
28
- getWeb3Provider(): void | Connection | undefined;
29
+ getWeb3Provider(): void | ethers.providers.Web3Provider | Connection | undefined;
29
30
  getRpcProvider(): Promise<void>;
30
31
  setupEventListeners(): void;
31
32
  teardownEventListeners(): void;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var walletSdk = require('@coinbase/wallet-sdk');
7
- var viem = require('viem');
7
+ var utils = require('ethers/lib/utils');
8
8
  var errors = require('../../../errors.cjs');
9
9
  var constants = require('../../constants.cjs');
10
10
 
@@ -58,7 +58,7 @@ const signMessage = (coinbaseProviderOpts, messageToSign) => tslib.__awaiter(voi
58
58
  try {
59
59
  return yield provider.request({
60
60
  method: 'personal_sign',
61
- params: [viem.toHex(viem.toBytes(messageToSign)), address.toLowerCase()],
61
+ params: [utils.hexlify(utils.toUtf8Bytes(messageToSign)), address.toLowerCase()],
62
62
  });
63
63
  }
64
64
  catch (err) {
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';
3
- import { toHex, toBytes } from 'viem';
3
+ import { hexlify, toUtf8Bytes } from 'ethers/lib/utils.js';
4
4
  import { DynamicError } from '../../../errors.js';
5
5
  import { infuraId } from '../../constants.js';
6
6
 
@@ -54,7 +54,7 @@ const signMessage = (coinbaseProviderOpts, messageToSign) => __awaiter(void 0, v
54
54
  try {
55
55
  return yield provider.request({
56
56
  method: 'personal_sign',
57
- params: [toHex(toBytes(messageToSign)), address.toLowerCase()],
57
+ params: [hexlify(toUtf8Bytes(messageToSign)), address.toLowerCase()],
58
58
  });
59
59
  }
60
60
  catch (err) {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var Client = require('@walletconnect/client');
7
- var viem = require('viem');
7
+ var ethers = require('ethers');
8
8
  var isMobile = require('../../../utils/isMobile.cjs');
9
9
  var isSameAddress = require('../../../utils/isSameAddress/isSameAddress.cjs');
10
10
  var logger = require('../../../utils/logger.cjs');
@@ -213,7 +213,8 @@ const waitForSafeTransactionOrTimeout = (accountPublicAddress, signature, messag
213
213
  if (!rpcProvider) {
214
214
  return;
215
215
  }
216
- const safeTransactionPromise = waitForSafeTransaction(accountPublicAddress, signature, messageToSign, yield rpcProvider());
216
+ const contract = new ethers.Contract(accountPublicAddress, IS_VALID_SIGNATURE_ABI, yield rpcProvider());
217
+ const safeTransactionPromise = waitForSafeTransaction(signature, messageToSign, contract);
217
218
  const timeoutPromise = new Promise((resolve) => {
218
219
  setTimeout(resolve, 120000);
219
220
  });
@@ -225,18 +226,13 @@ const waitForSafeTransactionOrTimeout = (accountPublicAddress, signature, messag
225
226
  // the transaction is recorded first on the blockchain
226
227
  // redcoast verify WILL fail if it attempts to verify the signature
227
228
  // that has not yet been properly processed!
228
- const waitForSafeTransaction = (address, signature, messageToSign, client) => tslib.__awaiter(void 0, void 0, void 0, function* () {
229
+ const waitForSafeTransaction = (signature, messageToSign, contract) => tslib.__awaiter(void 0, void 0, void 0, function* () {
229
230
  // wait for safe wallet to finish txn on the blockchain contract
230
231
  for (let i = 0; i < 120; i++) {
231
232
  try {
232
233
  // this will result in an exception if the transaction is still not ready
233
234
  // we need to catch it below
234
- const result = yield (client === null || client === void 0 ? void 0 : client.readContract({
235
- abi: IS_VALID_SIGNATURE_ABI,
236
- address: address,
237
- args: [viem.hashMessage(messageToSign), signature],
238
- functionName: 'isValidSignature',
239
- }));
235
+ const result = yield contract.isValidSignature(ethers.ethers.utils.hashMessage(messageToSign), signature);
240
236
  if (result === MAGIC_VALUE)
241
237
  return;
242
238
  }
@@ -1,5 +1,5 @@
1
1
  import Client from '@walletconnect/client';
2
- import { PublicClient } from 'viem';
2
+ import { ethers } from 'ethers';
3
3
  import { FetchPublicAddressOpts, PayloadParams, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
4
4
  import { WalletSchema } from '@dynamic-labs/wallet-book';
5
5
  import { KeplrWalletConnectV1 } from '../../cosmos/wcClient';
@@ -20,4 +20,4 @@ export declare const createSession: (client: Client) => Promise<PayloadParams>;
20
20
  export declare const useDeepLink: (metadata: WalletSchema, wcClient: Client, opts?: FetchPublicAddressOpts) => void;
21
21
  export declare const fetchWalletConnectCosmosPublicAddress: (metadata: WalletSchema, wcClient: Client, provider: KeplrWalletConnectV1, opts: FetchPublicAddressOpts & Required<Pick<FetchPublicAddressOpts, 'chainId'>>) => Promise<string>;
22
22
  export declare const fetchWalletConnectEVMPublicAddress: (metadata: WalletSchema, wcClient: Client, opts?: FetchPublicAddressOpts) => Promise<string | undefined>;
23
- export declare const signWalletConnectPersonalMessage: (messageToSign: string, metadata: WalletSchema, client: Client, rpcProvider?: () => Promise<PublicClient | undefined>) => Promise<string | undefined>;
23
+ export declare const signWalletConnectPersonalMessage: (messageToSign: string, metadata: WalletSchema, client: Client, rpcProvider?: () => Promise<ethers.providers.JsonRpcProvider | undefined>) => Promise<string | undefined>;
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import Client from '@walletconnect/client';
3
- import { hashMessage } from 'viem';
3
+ import { Contract, ethers } from 'ethers';
4
4
  import { isMobile, isIOS } from '../../../utils/isMobile.js';
5
5
  import { isSameAddress } from '../../../utils/isSameAddress/isSameAddress.js';
6
6
  import { logger } from '../../../utils/logger.js';
@@ -205,7 +205,8 @@ const waitForSafeTransactionOrTimeout = (accountPublicAddress, signature, messag
205
205
  if (!rpcProvider) {
206
206
  return;
207
207
  }
208
- const safeTransactionPromise = waitForSafeTransaction(accountPublicAddress, signature, messageToSign, yield rpcProvider());
208
+ const contract = new Contract(accountPublicAddress, IS_VALID_SIGNATURE_ABI, yield rpcProvider());
209
+ const safeTransactionPromise = waitForSafeTransaction(signature, messageToSign, contract);
209
210
  const timeoutPromise = new Promise((resolve) => {
210
211
  setTimeout(resolve, 120000);
211
212
  });
@@ -217,18 +218,13 @@ const waitForSafeTransactionOrTimeout = (accountPublicAddress, signature, messag
217
218
  // the transaction is recorded first on the blockchain
218
219
  // redcoast verify WILL fail if it attempts to verify the signature
219
220
  // that has not yet been properly processed!
220
- const waitForSafeTransaction = (address, signature, messageToSign, client) => __awaiter(void 0, void 0, void 0, function* () {
221
+ const waitForSafeTransaction = (signature, messageToSign, contract) => __awaiter(void 0, void 0, void 0, function* () {
221
222
  // wait for safe wallet to finish txn on the blockchain contract
222
223
  for (let i = 0; i < 120; i++) {
223
224
  try {
224
225
  // this will result in an exception if the transaction is still not ready
225
226
  // we need to catch it below
226
- const result = yield (client === null || client === void 0 ? void 0 : client.readContract({
227
- abi: IS_VALID_SIGNATURE_ABI,
228
- address: address,
229
- args: [hashMessage(messageToSign), signature],
230
- functionName: 'isValidSignature',
231
- }));
227
+ const result = yield contract.isValidSignature(ethers.utils.hashMessage(messageToSign), signature);
232
228
  if (result === MAGIC_VALUE)
233
229
  return;
234
230
  }