@dynamic-labs/ethereum 2.1.0-alpha.30 → 2.1.0-alpha.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,30 @@
1
1
 
2
+ ## [2.1.0-alpha.32](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.31...v2.1.0-alpha.32) (2024-06-04)
3
+
4
+
5
+ ### Features
6
+
7
+ * favor base mainnet when using coinbase sdk ([#5834](https://github.com/dynamic-labs/DynamicAuth/issues/5834)) ([fee5294](https://github.com/dynamic-labs/DynamicAuth/commit/fee529461e6b033938d3ec044c139f5efcb24f6d))
8
+ * open OKX deep link for Bitcoin ([#5818](https://github.com/dynamic-labs/DynamicAuth/issues/5818)) ([c33e93c](https://github.com/dynamic-labs/DynamicAuth/commit/c33e93c81b384d8cd91b3bd0414dd9ea669405c4))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * change Bitget Wallet to Bitget ([#5824](https://github.com/dynamic-labs/DynamicAuth/issues/5824)) ([23b8813](https://github.com/dynamic-labs/DynamicAuth/commit/23b8813e233be07392f5a3e283226b238b9fd99b))
14
+ * coinbase isInstalled ([#5821](https://github.com/dynamic-labs/DynamicAuth/issues/5821)) ([d0e5a37](https://github.com/dynamic-labs/DynamicAuth/commit/d0e5a37c6dd0cb6b85a5704767c93d495aa22854))
15
+ * filter window.solana in solProviderHelper if no extensionLocators are set ([#5819](https://github.com/dynamic-labs/DynamicAuth/issues/5819)) ([ca098ad](https://github.com/dynamic-labs/DynamicAuth/commit/ca098adb787365f9969c1a1f853d3c65ddd40d54))
16
+ * only send ordinal address if only one address retrieved from btc wallet ([#5817](https://github.com/dynamic-labs/DynamicAuth/issues/5817)) ([d54cef4](https://github.com/dynamic-labs/DynamicAuth/commit/d54cef424368b804fde0a4e607fefce22877a304))
17
+
18
+ ## [2.1.0-alpha.31](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.30...v2.1.0-alpha.31) (2024-05-31)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * export solana private keys in the correct format ([#5809](https://github.com/dynamic-labs/DynamicAuth/issues/5809)) ([08ac1f8](https://github.com/dynamic-labs/DynamicAuth/commit/08ac1f87bb02ad07fd1fc1f544fdcc64ebe635b8))
24
+ * magiceden evm network switching ([#5800](https://github.com/dynamic-labs/DynamicAuth/issues/5800)) ([9b86797](https://github.com/dynamic-labs/DynamicAuth/commit/9b8679735f3db4b33bb57409c3a69adf2beb82aa))
25
+ * pass all signing inputs to createPsbtOptions ([#5798](https://github.com/dynamic-labs/DynamicAuth/issues/5798)) ([628ad4f](https://github.com/dynamic-labs/DynamicAuth/commit/628ad4f8c161496a0610ecbc3052735f8ceae98d))
26
+ * trigger onboarding async ([#5805](https://github.com/dynamic-labs/DynamicAuth/issues/5805)) ([2c1f98c](https://github.com/dynamic-labs/DynamicAuth/commit/2c1f98c0d91422f75e2d6d32ea4a27c2bc8d8376))
27
+
2
28
  ## [2.1.0-alpha.30](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.29...v2.1.0-alpha.30) (2024-05-31)
3
29
 
4
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum",
3
- "version": "2.1.0-alpha.30",
3
+ "version": "2.1.0-alpha.32",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -27,17 +27,17 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@dynamic-labs/sdk-api-core": "0.0.453",
30
- "@coinbase/wallet-sdk": "4.0.0-beta.14",
30
+ "@coinbase/wallet-sdk": "4.0.3",
31
31
  "@walletconnect/ethereum-provider": "2.11.2",
32
32
  "eventemitter3": "5.0.1",
33
33
  "buffer": "6.0.3",
34
- "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.30",
35
- "@dynamic-labs/turnkey": "2.1.0-alpha.30",
36
- "@dynamic-labs/types": "2.1.0-alpha.30",
37
- "@dynamic-labs/utils": "2.1.0-alpha.30",
38
- "@dynamic-labs/viem-utils": "2.1.0-alpha.30",
39
- "@dynamic-labs/wallet-book": "2.1.0-alpha.30",
40
- "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.30",
34
+ "@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.32",
35
+ "@dynamic-labs/turnkey": "2.1.0-alpha.32",
36
+ "@dynamic-labs/types": "2.1.0-alpha.32",
37
+ "@dynamic-labs/utils": "2.1.0-alpha.32",
38
+ "@dynamic-labs/viem-utils": "2.1.0-alpha.32",
39
+ "@dynamic-labs/wallet-book": "2.1.0-alpha.32",
40
+ "@dynamic-labs/wallet-connector-core": "2.1.0-alpha.32",
41
41
  "stream": "0.0.2"
42
42
  },
43
43
  "peerDependencies": {
@@ -143,7 +143,11 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
143
143
  if (!this.supportsNetworkSwitching()) {
144
144
  throw new utils.DynamicError('Network switching is not supported');
145
145
  }
146
- return yield provider.switchChain(utils.getOrMapViemChain(network));
146
+ yield provider.switchChain(utils.getOrMapViemChain(network));
147
+ if (this.key === 'magiceden') {
148
+ const newChainId = yield provider.getChainId();
149
+ this.emit('chainChange', { chain: newChainId.toString() });
150
+ }
147
151
  }
148
152
  catch (error) {
149
153
  // we need to check for unrecognized chain error first because it also contains 'rejected' in message
@@ -139,7 +139,11 @@ class EthWalletConnector extends WalletConnectorBase {
139
139
  if (!this.supportsNetworkSwitching()) {
140
140
  throw new DynamicError('Network switching is not supported');
141
141
  }
142
- return yield provider.switchChain(getOrMapViemChain(network));
142
+ yield provider.switchChain(getOrMapViemChain(network));
143
+ if (this.key === 'magiceden') {
144
+ const newChainId = yield provider.getChainId();
145
+ this.emit('chainChange', { chain: newChainId.toString() });
146
+ }
143
147
  }
144
148
  catch (error) {
145
149
  // we need to check for unrecognized chain error first because it also contains 'rejected' in message
@@ -45,6 +45,10 @@ class Coinbase extends EthWalletConnector.EthWalletConnector {
45
45
  }
46
46
  });
47
47
  }
48
+ isInstalledOnBrowser() {
49
+ var _a;
50
+ return Boolean((_a = window === null || window === void 0 ? void 0 : window.coinbaseWalletExtension) === null || _a === void 0 ? void 0 : _a.isCoinbaseWallet);
51
+ }
48
52
  getAddress() {
49
53
  return _tslib.__awaiter(this, void 0, void 0, function* () {
50
54
  const [address] = yield this.coinbaseProvider.request({
@@ -11,6 +11,7 @@ export declare class Coinbase extends EthWalletConnector {
11
11
  private coinbaseProvider;
12
12
  constructor({ appName, appLogoUrl, evmNetworks, coinbaseWalletPreference, ...props }: CoinbaseOpts);
13
13
  getConnectedAccounts(): Promise<string[]>;
14
+ isInstalledOnBrowser(): boolean;
14
15
  getAddress(): Promise<string | undefined>;
15
16
  signMessage(messageToSign: string): Promise<string | undefined>;
16
17
  setupEventListeners(): void;
@@ -41,6 +41,10 @@ class Coinbase extends EthWalletConnector {
41
41
  }
42
42
  });
43
43
  }
44
+ isInstalledOnBrowser() {
45
+ var _a;
46
+ return Boolean((_a = window === null || window === void 0 ? void 0 : window.coinbaseWalletExtension) === null || _a === void 0 ? void 0 : _a.isCoinbaseWallet);
47
+ }
44
48
  getAddress() {
45
49
  return __awaiter(this, void 0, void 0, function* () {
46
50
  const [address] = yield this.coinbaseProvider.request({
@@ -8,16 +8,19 @@ var walletSdk = require('@coinbase/wallet-sdk');
8
8
  // storing a reference to the coinbase provider because the provider methods work better when
9
9
  // they are called on the same instance
10
10
  let coinbaseProvider;
11
+ const baseSepolia = 84532;
12
+ const baseMainnet = 8453;
11
13
  const getCoinbaseProvider = ({ opts: { appLogoUrl, appName, evmNetworks, walletPreference } = {}, }) => {
12
- // favoring base sepolia since that is the only chain that works for now
13
- // when coinbase launches in mainnet, customers can simply disable the base sepolia chain
14
- // from their dynamic settings, and everything will still work
15
- const hasBaseSepolia = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === 84532);
16
14
  const appChainIds = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.map((network) => Number(network.chainId));
15
+ // just brings base sepolia to the front of the list, because that is treated as the default chain
16
+ const hasBaseSepolia = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === baseSepolia);
17
17
  if (hasBaseSepolia) {
18
- // just brings base sepolia to the front, because that is the chain that the coinbase
19
- // provider returns when calling getNetwork
20
- appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => (a === 84532 ? -1 : b === 84532 ? 1 : 0));
18
+ appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => a === baseSepolia ? -1 : b === baseSepolia ? 1 : 0);
19
+ }
20
+ // just brings base mainnet to the front, because that that is treated as the default chain
21
+ const hasBaseMainnet = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === baseMainnet);
22
+ if (hasBaseMainnet) {
23
+ appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => a === baseMainnet ? -1 : b === baseMainnet ? 1 : 0);
21
24
  }
22
25
  if (!coinbaseProvider) {
23
26
  const coinbaseSdk = new walletSdk.CoinbaseWalletSDK({
@@ -4,16 +4,19 @@ import { CoinbaseWalletSDK } from '@coinbase/wallet-sdk';
4
4
  // storing a reference to the coinbase provider because the provider methods work better when
5
5
  // they are called on the same instance
6
6
  let coinbaseProvider;
7
+ const baseSepolia = 84532;
8
+ const baseMainnet = 8453;
7
9
  const getCoinbaseProvider = ({ opts: { appLogoUrl, appName, evmNetworks, walletPreference } = {}, }) => {
8
- // favoring base sepolia since that is the only chain that works for now
9
- // when coinbase launches in mainnet, customers can simply disable the base sepolia chain
10
- // from their dynamic settings, and everything will still work
11
- const hasBaseSepolia = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === 84532);
12
10
  const appChainIds = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.map((network) => Number(network.chainId));
11
+ // just brings base sepolia to the front of the list, because that is treated as the default chain
12
+ const hasBaseSepolia = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === baseSepolia);
13
13
  if (hasBaseSepolia) {
14
- // just brings base sepolia to the front, because that is the chain that the coinbase
15
- // provider returns when calling getNetwork
16
- appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => (a === 84532 ? -1 : b === 84532 ? 1 : 0));
14
+ appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => a === baseSepolia ? -1 : b === baseSepolia ? 1 : 0);
15
+ }
16
+ // just brings base mainnet to the front, because that that is treated as the default chain
17
+ const hasBaseMainnet = evmNetworks === null || evmNetworks === void 0 ? void 0 : evmNetworks.some((network) => network.chainId === baseMainnet);
18
+ if (hasBaseMainnet) {
19
+ appChainIds === null || appChainIds === void 0 ? void 0 : appChainIds.sort((a, b) => a === baseMainnet ? -1 : b === baseMainnet ? 1 : 0);
17
20
  }
18
21
  if (!coinbaseProvider) {
19
22
  const coinbaseSdk = new CoinbaseWalletSDK({
@@ -63,9 +63,9 @@ class EthProviderHelper {
63
63
  }
64
64
  return providers;
65
65
  }
66
- installedProviderLookup(providerFlags) {
66
+ installedProviderLookup(extensionLocators) {
67
67
  const allInstalledProviders = this.installedProviders();
68
- return walletConnectorCore.ProviderLookup(allInstalledProviders, providerFlags);
68
+ return walletConnectorCore.ProviderLookup(allInstalledProviders, extensionLocators);
69
69
  }
70
70
  eip6963ProviderLookup(rdns) {
71
71
  var _a;
@@ -1,7 +1,7 @@
1
1
  import { Hex, WalletClient } from 'viem';
2
2
  import { ProviderCondition, WalletConnector } from '@dynamic-labs/wallet-connector-core';
3
3
  import { WalletSchema } from '@dynamic-labs/wallet-book';
4
- import { IEthereum, ProviderFlag } from './types';
4
+ import { IEthereum, ExtensionLocator } from './types';
5
5
  import { EthWalletConnector } from '.';
6
6
  export declare class EthProviderHelper {
7
7
  private wallet;
@@ -25,7 +25,7 @@ export declare class EthProviderHelper {
25
25
  windowLocations?: string[] | undefined;
26
26
  } | undefined;
27
27
  installedProviders(): IEthereum[];
28
- installedProviderLookup(providerFlags: Array<ProviderCondition<ProviderFlag>>): IEthereum | undefined;
28
+ installedProviderLookup(extensionLocators: Array<ProviderCondition<ExtensionLocator>>): IEthereum | undefined;
29
29
  eip6963ProviderLookup(rdns: string): IEthereum | undefined;
30
30
  isInstalledHelper(): boolean;
31
31
  findProvider(): IEthereum | undefined;
@@ -59,9 +59,9 @@ class EthProviderHelper {
59
59
  }
60
60
  return providers;
61
61
  }
62
- installedProviderLookup(providerFlags) {
62
+ installedProviderLookup(extensionLocators) {
63
63
  const allInstalledProviders = this.installedProviders();
64
- return ProviderLookup(allInstalledProviders, providerFlags);
64
+ return ProviderLookup(allInstalledProviders, extensionLocators);
65
65
  }
66
66
  eip6963ProviderLookup(rdns) {
67
67
  var _a;
package/src/types.d.ts CHANGED
@@ -17,15 +17,15 @@ declare global {
17
17
  }
18
18
  }
19
19
  export type IEthereum = {
20
- [key in ProviderFlag]: boolean;
20
+ [key in ExtensionLocator]: boolean;
21
21
  } & {
22
22
  providers?: object[];
23
23
  request: <T extends string>(params: {
24
24
  method: T;
25
25
  } | object) => Promise<T extends 'eth_requestAccounts' ? [string] : object>;
26
26
  } & EventEmitter;
27
- export type ProviderFlag = 'isDawn' | 'isBraveWallet' | 'isCoinbaseWallet' | 'isFrame' | 'isGamestop' | 'isMetaMask' | 'isExodus' | 'isOpera' | 'isBlocto' | 'isTrustWallet' | 'isZerion' | 'isPhantom' | 'isSuperb' | 'isRabby' | 'isOkxWallet';
28
- export type EthProviderCondition = ProviderCondition<ProviderFlag>;
27
+ export type ExtensionLocator = 'isDawn' | 'isBraveWallet' | 'isCoinbaseWallet' | 'isFrame' | 'isGamestop' | 'isMetaMask' | 'isExodus' | 'isOpera' | 'isBlocto' | 'isTrustWallet' | 'isZerion' | 'isPhantom' | 'isSuperb' | 'isRabby' | 'isOkxWallet';
28
+ export type EthProviderCondition = ProviderCondition<ExtensionLocator>;
29
29
  export type Provider = () => PublicClient | undefined;
30
30
  export type ExternalProviderEventEmitter = PublicClient & {
31
31
  on: (event: string, listener: (...args: Array<any>) => unknown) => void;