@dynamic-labs/client 4.0.0-alpha.5 → 4.0.0-alpha.7

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,43 @@
1
1
 
2
+ ## [4.0.0-alpha.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.6...v4.0.0-alpha.7) (2024-10-03)
3
+
4
+
5
+ ### Features
6
+
7
+ * add account abstraction module to client ([#7002](https://github.com/dynamic-labs/dynamic-auth/issues/7002)) ([2f06975](https://github.com/dynamic-labs/dynamic-auth/commit/2f06975083dfa9d40537ef4a99b414eda1a68e01))
8
+ * add support for wallet events in rn ([#7061](https://github.com/dynamic-labs/dynamic-auth/issues/7061)) ([c7c4ce5](https://github.com/dynamic-labs/dynamic-auth/commit/c7c4ce51f27a2b84a1710c120d7006a00920c1e7))
9
+ * add zerodev extension for react native ([#7028](https://github.com/dynamic-labs/dynamic-auth/issues/7028)) ([858b8a8](https://github.com/dynamic-labs/dynamic-auth/commit/858b8a851cfa0cddc8e4559541b03992cf5ccdfc))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * do not modify sol tx blockhash as tx could have been signed already ([#7050](https://github.com/dynamic-labs/dynamic-auth/issues/7050)) ([770edb4](https://github.com/dynamic-labs/dynamic-auth/commit/770edb49ddc231b75fb45a9f6d563f22e5185df2))
15
+ * ensure the correct auth mode is used on social redirect ([#7047](https://github.com/dynamic-labs/dynamic-auth/issues/7047)) ([7c27172](https://github.com/dynamic-labs/dynamic-auth/commit/7c271721d5ddf19e3fd1bf56ddb1d49e0e2bca07))
16
+ * prevent react native message timeout before sdk is ready ([#7051](https://github.com/dynamic-labs/dynamic-auth/issues/7051)) ([6421237](https://github.com/dynamic-labs/dynamic-auth/commit/6421237d677d788b824d53432c1a75b9d571aa78))
17
+ * update version error text ([#7054](https://github.com/dynamic-labs/dynamic-auth/issues/7054)) ([713dacb](https://github.com/dynamic-labs/dynamic-auth/commit/713dacb79c2513323c2e6840d7418716011c2dcd))
18
+ * use project settings sdk network for send flow ([#7011](https://github.com/dynamic-labs/dynamic-auth/issues/7011)) ([983e796](https://github.com/dynamic-labs/dynamic-auth/commit/983e79632762f71ee0502c92057a32ea985ae19c))
19
+
20
+ ## [4.0.0-alpha.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.0.0-alpha.5...v4.0.0-alpha.6) (2024-10-01)
21
+
22
+
23
+ ### ⚠ BREAKING CHANGES
24
+
25
+ * remove support to magic ([#7033](https://github.com/dynamic-labs/dynamic-auth/issues/7033)) ([0fdc41f](https://github.com/dynamic-labs/dynamic-auth/commit/0fdc41f05f87b32f56b73db068f984f18bdf69a0))
26
+
27
+ ### Features
28
+
29
+ * global connectivity disconnect ([#7008](https://github.com/dynamic-labs/dynamic-auth/issues/7008)) ([80d705b](https://github.com/dynamic-labs/dynamic-auth/commit/80d705ba252aa3b01cbf4861507fed00e460215f))
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * add popper context to send balance ([#7016](https://github.com/dynamic-labs/dynamic-auth/issues/7016)) ([73aa6f1](https://github.com/dynamic-labs/dynamic-auth/commit/73aa6f122afe0db660ebb654f3e018ae7bf445c5))
35
+ * add retry to useConnectWithOtp ([#7012](https://github.com/dynamic-labs/dynamic-auth/issues/7012)) ([d551d72](https://github.com/dynamic-labs/dynamic-auth/commit/d551d72a463f8a03964858b30ec174d41985a7b1))
36
+ * don't re-fetch wallet address on network change ([#7019](https://github.com/dynamic-labs/dynamic-auth/issues/7019)) ([4e7900c](https://github.com/dynamic-labs/dynamic-auth/commit/4e7900cc24b3abda736bc81466eda7512cf7fc61))
37
+ * fix sign message with solana wallet standard provider ([#7014](https://github.com/dynamic-labs/dynamic-auth/issues/7014)) ([ffaf972](https://github.com/dynamic-labs/dynamic-auth/commit/ffaf972e8b190b0b8cd0103e0ef67bfdee6c8f7c))
38
+ * update wallet reference when user switches wallet in connect-only ([#7030](https://github.com/dynamic-labs/dynamic-auth/issues/7030)) ([75d9aa6](https://github.com/dynamic-labs/dynamic-auth/commit/75d9aa66f63fc5536caeff12d8b860c0ba86106f))
39
+
40
+
2
41
  ## [4.0.0-alpha.5](https://github.com/dynamic-labs/DynamicAuth/compare/v4.0.0-alpha.4...v4.0.0-alpha.5) (2024-09-25)
3
42
 
4
43
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.0.0-alpha.5";
6
+ var version = "4.0.0-alpha.7";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.0.0-alpha.5";
2
+ var version = "4.0.0-alpha.7";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,16 +1,7 @@
1
1
  {
2
2
  "name": "@dynamic-labs/client",
3
- "version": "4.0.0-alpha.5",
4
- "repository": {
5
- "type": "git",
6
- "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
7
- "directory": "packages/client"
8
- },
3
+ "version": "4.0.0-alpha.7",
9
4
  "description": "Core package for utilizing Dynamic's sdk",
10
- "bugs": {
11
- "url": "https://github.com/dynamic-labs/DynamicAuth/issues"
12
- },
13
- "homepage": "https://github.com/dynamic-labs/DynamicAuth/main/packages/client#readme",
14
5
  "author": "Dynamic Labs, Inc.",
15
6
  "license": "MIT",
16
7
  "main": "./src/index.cjs",
@@ -25,11 +16,13 @@
25
16
  },
26
17
  "./package.json": "./package.json"
27
18
  },
19
+ "homepage": "https://www.dynamic.xyz/",
28
20
  "dependencies": {
29
21
  "@vue/reactivity": "3.4.21",
30
- "@dynamic-labs/logger": "4.0.0-alpha.5",
31
- "@dynamic-labs/message-transport": "4.0.0-alpha.5",
32
- "@dynamic-labs/types": "4.0.0-alpha.5",
22
+ "@dynamic-labs/assert-package-version": "4.0.0-alpha.7",
23
+ "@dynamic-labs/logger": "4.0.0-alpha.7",
24
+ "@dynamic-labs/message-transport": "4.0.0-alpha.7",
25
+ "@dynamic-labs/types": "4.0.0-alpha.7",
33
26
  "eventemitter3": "5.0.1"
34
27
  },
35
28
  "peerDependencies": {}
@@ -32,11 +32,12 @@ export declare const createCore: (props: ClientProps) => {
32
32
  * Note: Doesn't implement forwarding messages to/from webview yet.
33
33
  * The user is expected to extend the client with an Extension that implements that.
34
34
  */
35
- messageTransport: {
35
+ messageTransport: import("@dynamic-labs/message-transport").MessageTransport & {
36
+ emit: (message: import("@dynamic-labs/message-transport").MessageTransportData, options?: {
37
+ onEmit?: VoidFunction | undefined;
38
+ } | undefined) => void;
36
39
  unblock: () => void;
37
- emit: (message: import("@dynamic-labs/message-transport").MessageTransportData) => void;
38
- off: (callback: import("@dynamic-labs/message-transport").MessageTransportCallback) => void;
39
- on: (callback: import("@dynamic-labs/message-transport").MessageTransportCallback) => void;
40
+ isBlocked: boolean;
40
41
  } & {
41
42
  defaultOrigin: "webview" | "host";
42
43
  emit: (message: import("@dynamic-labs/message-transport").MessageTransportDataOptionalOrigin) => void;
package/src/index.cjs CHANGED
@@ -3,11 +3,13 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
+ var assertPackageVersion = require('@dynamic-labs/assert-package-version');
7
+ var _package = require('../package.cjs');
6
8
  var Extendable = require('./utils/Extendable/Extendable.cjs');
7
9
  var hasExtension = require('./utils/Extendable/hasExtension/hasExtension.cjs');
8
10
  var client = require('./client/client.cjs');
9
11
 
10
-
12
+ assertPackageVersion.assertPackageVersion('@dynamic-labs/client', _package.version);
11
13
 
12
14
  exports.Extendable = Extendable.Extendable;
13
15
  exports.hasExtension = hasExtension.hasExtension;
package/src/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export type { SocialProvider } from '@dynamic-labs/message-transport';
2
- export type { BaseWallet as Wallet } from '@dynamic-labs/types';
3
2
  export { type Core } from './client/core';
3
+ export type { Wallet } from './types';
4
4
  export { Extendable, type Extension } from './utils/Extendable';
5
5
  export { hasExtension } from './utils/Extendable/hasExtension';
6
6
  export { createClient, type BaseClient, type ClientProps, baseClientExtensionName, } from './client';
package/src/index.js CHANGED
@@ -1,4 +1,8 @@
1
1
  'use client'
2
+ import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
3
+ import { version } from '../package.js';
2
4
  export { Extendable } from './utils/Extendable/Extendable.js';
3
5
  export { hasExtension } from './utils/Extendable/hasExtension/hasExtension.js';
4
6
  export { baseClientExtensionName, createClient } from './client/client.js';
7
+
8
+ assertPackageVersion('@dynamic-labs/client', version);
@@ -0,0 +1,17 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var messageTransport = require('@dynamic-labs/message-transport');
7
+
8
+ const createAccountAbstractionModule = (core) => {
9
+ const accountAbstractionRequestChannel = messageTransport.createRequestChannel(core.messageTransport);
10
+ return {
11
+ getEOAWallet: (args) => accountAbstractionRequestChannel.request('getEOAWallet', args),
12
+ getSmartWallet: (args) => accountAbstractionRequestChannel.request('getSmartWallet', args),
13
+ isSmartWallet: (args) => accountAbstractionRequestChannel.request('isSmartWallet', args),
14
+ };
15
+ };
16
+
17
+ exports.createAccountAbstractionModule = createAccountAbstractionModule;
@@ -0,0 +1,14 @@
1
+ import { Core } from '../../../client/core';
2
+ import { Wallet } from '../../../types';
3
+ export type AccountAbstractionModule = {
4
+ isSmartWallet: (args: {
5
+ wallet: Wallet;
6
+ }) => Promise<boolean>;
7
+ getEOAWallet: (args: {
8
+ wallet: Wallet;
9
+ }) => Promise<Wallet | null>;
10
+ getSmartWallet: (args: {
11
+ wallet: Wallet;
12
+ }) => Promise<Wallet | null>;
13
+ };
14
+ export declare const createAccountAbstractionModule: (core: Core) => AccountAbstractionModule;
@@ -0,0 +1,13 @@
1
+ 'use client'
2
+ import { createRequestChannel } from '@dynamic-labs/message-transport';
3
+
4
+ const createAccountAbstractionModule = (core) => {
5
+ const accountAbstractionRequestChannel = createRequestChannel(core.messageTransport);
6
+ return {
7
+ getEOAWallet: (args) => accountAbstractionRequestChannel.request('getEOAWallet', args),
8
+ getSmartWallet: (args) => accountAbstractionRequestChannel.request('getSmartWallet', args),
9
+ isSmartWallet: (args) => accountAbstractionRequestChannel.request('isSmartWallet', args),
10
+ };
11
+ };
12
+
13
+ export { createAccountAbstractionModule };
@@ -0,0 +1 @@
1
+ export { createAccountAbstractionModule, type AccountAbstractionModule, } from './accountAbstractionModule';
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const createWalletListenerMethods = (requestChannel) => {
7
+ const getWalletListenerKey = (walletId, event) => `${walletId}__${event}`;
8
+ const walletListeners = {};
9
+ const onWalletEvent = (wallet, event, callback) => {
10
+ const listenerKey = getWalletListenerKey(wallet.id, event);
11
+ if (!walletListeners[listenerKey])
12
+ walletListeners[listenerKey] = new Set();
13
+ walletListeners[listenerKey].add(callback);
14
+ };
15
+ const offWalletEvent = (wallet, event, callback) => {
16
+ const listenerKey = getWalletListenerKey(wallet.id, event);
17
+ if (!walletListeners[listenerKey])
18
+ return;
19
+ walletListeners[listenerKey].delete(callback);
20
+ if (walletListeners[listenerKey].size === 0)
21
+ delete walletListeners[listenerKey];
22
+ };
23
+ requestChannel.handle('onWalletEvent', ({ event, eventParams, walletId }) => {
24
+ var _a;
25
+ const listenerKey = getWalletListenerKey(walletId, event);
26
+ (_a = walletListeners[listenerKey]) === null || _a === void 0 ? void 0 : _a.forEach((callback) => callback(...eventParams));
27
+ });
28
+ return { offWalletEvent, onWalletEvent };
29
+ };
30
+
31
+ exports.createWalletListenerMethods = createWalletListenerMethods;
@@ -0,0 +1,8 @@
1
+ import { RequestChannel, WalletEvents, WalletsModuleMessages } from '@dynamic-labs/message-transport';
2
+ import { BaseWallet } from '@dynamic-labs/types';
3
+ export type WalletEventListener = <E extends keyof WalletEvents>(wallet: BaseWallet, event: E, callback: WalletEvents[E]) => void;
4
+ export type CreateWalletListenerMethodsReturn = {
5
+ onWalletEvent: WalletEventListener;
6
+ offWalletEvent: WalletEventListener;
7
+ };
8
+ export declare const createWalletListenerMethods: (requestChannel: RequestChannel<WalletsModuleMessages>) => CreateWalletListenerMethodsReturn;
@@ -0,0 +1,27 @@
1
+ 'use client'
2
+ const createWalletListenerMethods = (requestChannel) => {
3
+ const getWalletListenerKey = (walletId, event) => `${walletId}__${event}`;
4
+ const walletListeners = {};
5
+ const onWalletEvent = (wallet, event, callback) => {
6
+ const listenerKey = getWalletListenerKey(wallet.id, event);
7
+ if (!walletListeners[listenerKey])
8
+ walletListeners[listenerKey] = new Set();
9
+ walletListeners[listenerKey].add(callback);
10
+ };
11
+ const offWalletEvent = (wallet, event, callback) => {
12
+ const listenerKey = getWalletListenerKey(wallet.id, event);
13
+ if (!walletListeners[listenerKey])
14
+ return;
15
+ walletListeners[listenerKey].delete(callback);
16
+ if (walletListeners[listenerKey].size === 0)
17
+ delete walletListeners[listenerKey];
18
+ };
19
+ requestChannel.handle('onWalletEvent', ({ event, eventParams, walletId }) => {
20
+ var _a;
21
+ const listenerKey = getWalletListenerKey(walletId, event);
22
+ (_a = walletListeners[listenerKey]) === null || _a === void 0 ? void 0 : _a.forEach((callback) => callback(...eventParams));
23
+ });
24
+ return { offWalletEvent, onWalletEvent };
25
+ };
26
+
27
+ export { createWalletListenerMethods };
@@ -0,0 +1 @@
1
+ export * from './createWalletListenerMethods';
@@ -5,6 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var messageTransport = require('@dynamic-labs/message-transport');
7
7
  var pickListenerActions = require('../../utils/pickListenerActions/pickListenerActions.cjs');
8
+ var accountAbstractionModule = require('./accountAbstractionModule/accountAbstractionModule.cjs');
9
+ var createWalletListenerMethods = require('./createWalletListenerMethods/createWalletListenerMethods.cjs');
8
10
  var embeddedWalletsModule = require('./embeddedWalletsModule/embeddedWalletsModule.cjs');
9
11
 
10
12
  const createWalletsModule = (core) => {
@@ -19,10 +21,14 @@ const createWalletsModule = (core) => {
19
21
  const switchNetwork = (params) => requestChannel.request('switchNetwork', params);
20
22
  const getNetwork = (params) => requestChannel.request('getNetwork', params);
21
23
  const setPrimary = (params) => requestChannel.request('setPrimary', params);
24
+ const { offWalletEvent, onWalletEvent } = createWalletListenerMethods.createWalletListenerMethods(requestChannel);
22
25
  return Object.assign(store.getters, pickListenerActions.pickListenerActions(store.eventEmitter), {
26
+ accountAbstraction: accountAbstractionModule.createAccountAbstractionModule(core),
23
27
  embedded: embeddedWalletsModule.createEmbeddedWalletsModule(core),
24
28
  getBalance,
25
29
  getNetwork,
30
+ offWalletEvent,
31
+ onWalletEvent,
26
32
  setPrimary,
27
33
  signMessage,
28
34
  switchNetwork,
@@ -1,12 +1,17 @@
1
1
  import { StoreEventListeners, WalletsModuleMessages, WalletsModuleState } from '@dynamic-labs/message-transport';
2
2
  import { Core } from '../../client/core';
3
+ import { type AccountAbstractionModule } from './accountAbstractionModule';
4
+ import { WalletEventListener } from './createWalletListenerMethods';
3
5
  import { EmbeddedWalletsModule } from './embeddedWalletsModule';
4
6
  export type WalletsModule = WalletsModuleState & {
5
7
  embedded: EmbeddedWalletsModule;
8
+ accountAbstraction: AccountAbstractionModule;
6
9
  signMessage: WalletsModuleMessages['signMessage'];
7
10
  switchNetwork: WalletsModuleMessages['switchNetwork'];
8
11
  getBalance: WalletsModuleMessages['getBalance'];
9
12
  getNetwork: WalletsModuleMessages['getNetwork'];
10
13
  setPrimary: WalletsModuleMessages['setPrimary'];
14
+ onWalletEvent: WalletEventListener;
15
+ offWalletEvent: WalletEventListener;
11
16
  } & StoreEventListeners<WalletsModuleState>;
12
17
  export declare const createWalletsModule: (core: Core) => WalletsModule;
@@ -1,6 +1,8 @@
1
1
  'use client'
2
2
  import { createRequestChannel, createStore } from '@dynamic-labs/message-transport';
3
3
  import { pickListenerActions } from '../../utils/pickListenerActions/pickListenerActions.js';
4
+ import { createAccountAbstractionModule } from './accountAbstractionModule/accountAbstractionModule.js';
5
+ import { createWalletListenerMethods } from './createWalletListenerMethods/createWalletListenerMethods.js';
4
6
  import { createEmbeddedWalletsModule } from './embeddedWalletsModule/embeddedWalletsModule.js';
5
7
 
6
8
  const createWalletsModule = (core) => {
@@ -15,10 +17,14 @@ const createWalletsModule = (core) => {
15
17
  const switchNetwork = (params) => requestChannel.request('switchNetwork', params);
16
18
  const getNetwork = (params) => requestChannel.request('getNetwork', params);
17
19
  const setPrimary = (params) => requestChannel.request('setPrimary', params);
20
+ const { offWalletEvent, onWalletEvent } = createWalletListenerMethods(requestChannel);
18
21
  return Object.assign(store.getters, pickListenerActions(store.eventEmitter), {
22
+ accountAbstraction: createAccountAbstractionModule(core),
19
23
  embedded: createEmbeddedWalletsModule(core),
20
24
  getBalance,
21
25
  getNetwork,
26
+ offWalletEvent,
27
+ onWalletEvent,
22
28
  setPrimary,
23
29
  signMessage,
24
30
  switchNetwork,
package/src/types.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import type { BaseWallet } from '@dynamic-labs/types';
2
+ export type Wallet = BaseWallet;