@dynamic-labs/client 4.0.0-alpha.2 → 4.0.0-alpha.21
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 +185 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +7 -14
- package/src/client/client.cjs +4 -0
- package/src/client/client.d.ts +1 -1
- package/src/client/client.js +4 -0
- package/src/client/core/core.cjs +42 -40
- package/src/client/core/core.d.ts +6 -5
- package/src/client/core/core.js +41 -39
- package/src/client/core/modules/initializationModule/initializationModule.cjs +24 -1
- package/src/client/core/modules/initializationModule/initializationModule.js +24 -1
- package/src/client/core/modules/manifestModule/manifestModule.cjs +5 -1
- package/src/client/core/modules/manifestModule/manifestModule.d.ts +1 -1
- package/src/client/core/modules/manifestModule/manifestModule.js +5 -1
- package/src/client/core/modules/manifestModule/validateManifest/validateManifest.cjs +2 -2
- package/src/client/core/modules/manifestModule/validateManifest/validateManifest.js +2 -2
- package/src/index.cjs +3 -1
- package/src/index.d.ts +1 -1
- package/src/index.js +4 -0
- package/src/modules/authModule/authModule.cjs +8 -1
- package/src/modules/authModule/authModule.d.ts +8 -3
- package/src/modules/authModule/authModule.js +9 -2
- package/src/modules/authModule/emailAuthModule/emailAuthModule.cjs +7 -2
- package/src/modules/authModule/emailAuthModule/emailAuthModule.d.ts +3 -2
- package/src/modules/authModule/emailAuthModule/emailAuthModule.js +8 -3
- package/src/modules/authModule/smsAuthModule/smsAuthModule.cjs +7 -2
- package/src/modules/authModule/smsAuthModule/smsAuthModule.d.ts +3 -2
- package/src/modules/authModule/smsAuthModule/smsAuthModule.js +8 -3
- package/src/modules/networksModule/networksModule.d.ts +1 -1
- package/src/modules/sdkModule/sdkModule.cjs +6 -1
- package/src/modules/sdkModule/sdkModule.d.ts +6 -2
- package/src/modules/sdkModule/sdkModule.js +6 -1
- package/src/modules/userInterfaceModule/userInterfaceModule.cjs +7 -2
- package/src/modules/userInterfaceModule/userInterfaceModule.d.ts +5 -2
- package/src/modules/userInterfaceModule/userInterfaceModule.js +8 -3
- package/src/modules/walletsModule/accountAbstractionModule/accountAbstractionModule.cjs +17 -0
- package/src/modules/walletsModule/accountAbstractionModule/accountAbstractionModule.d.ts +14 -0
- package/src/modules/walletsModule/accountAbstractionModule/accountAbstractionModule.js +13 -0
- package/src/modules/walletsModule/accountAbstractionModule/index.d.ts +1 -0
- package/src/modules/walletsModule/createWalletListenerMethods/createWalletListenerMethods.cjs +31 -0
- package/src/modules/walletsModule/createWalletListenerMethods/createWalletListenerMethods.d.ts +8 -0
- package/src/modules/walletsModule/createWalletListenerMethods/createWalletListenerMethods.js +27 -0
- package/src/modules/walletsModule/createWalletListenerMethods/index.d.ts +1 -0
- package/src/modules/walletsModule/embeddedWalletsModule/embeddedWalletsModule.cjs +1 -1
- package/src/modules/walletsModule/embeddedWalletsModule/embeddedWalletsModule.d.ts +6 -3
- package/src/modules/walletsModule/embeddedWalletsModule/embeddedWalletsModule.js +2 -2
- package/src/modules/walletsModule/walletsModule.cjs +19 -1
- package/src/modules/walletsModule/walletsModule.d.ts +14 -3
- package/src/modules/walletsModule/walletsModule.js +20 -2
- package/src/types.d.ts +2 -0
- package/src/utils/pickListenerActions/pickListenerActions.cjs +9 -3
- package/src/utils/pickListenerActions/pickListenerActions.d.ts +2 -1
- package/src/utils/pickListenerActions/pickListenerActions.js +9 -3
- package/src/utils/setupFetchHandler/index.d.ts +1 -0
- package/src/utils/setupFetchHandler/setupFetchHandler.cjs +24 -0
- package/src/utils/setupFetchHandler/setupFetchHandler.d.ts +2 -0
- package/src/utils/setupFetchHandler/setupFetchHandler.js +20 -0
|
@@ -5,8 +5,11 @@ 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
|
|
|
12
|
+
const defaultConnectedWalletHandler = () => Promise.resolve(true);
|
|
10
13
|
const createWalletsModule = (core) => {
|
|
11
14
|
const requestChannel = messageTransport.createRequestChannel(core.messageTransport);
|
|
12
15
|
const store = messageTransport.createStore({
|
|
@@ -14,15 +17,30 @@ const createWalletsModule = (core) => {
|
|
|
14
17
|
key: 'wallets',
|
|
15
18
|
messageTransport: core.messageTransport,
|
|
16
19
|
});
|
|
20
|
+
const messageEvents = messageTransport.createEventEmitterForMessages({
|
|
21
|
+
eventNames: messageTransport.userWalletsEventNames,
|
|
22
|
+
initialEventEmitter: store.eventEmitter,
|
|
23
|
+
messageTransport: core.messageTransport,
|
|
24
|
+
});
|
|
17
25
|
const signMessage = (params) => requestChannel.request('signMessage', params);
|
|
18
26
|
const getBalance = (params) => requestChannel.request('getBalance', params);
|
|
19
27
|
const switchNetwork = (params) => requestChannel.request('switchNetwork', params);
|
|
20
28
|
const getNetwork = (params) => requestChannel.request('getNetwork', params);
|
|
21
29
|
const setPrimary = (params) => requestChannel.request('setPrimary', params);
|
|
22
|
-
|
|
30
|
+
const { offWalletEvent, onWalletEvent } = createWalletListenerMethods.createWalletListenerMethods(requestChannel);
|
|
31
|
+
const handlers = {
|
|
32
|
+
walletConnected: defaultConnectedWalletHandler,
|
|
33
|
+
};
|
|
34
|
+
requestChannel.handle('handleConnectedWallet', (wallet) => handlers.walletConnected(wallet));
|
|
35
|
+
return Object.assign(store.getters, pickListenerActions.pickListenerActions(messageEvents), {
|
|
36
|
+
accountAbstraction: accountAbstractionModule.createAccountAbstractionModule(core),
|
|
37
|
+
clearHandler: () => (handlers.walletConnected = defaultConnectedWalletHandler),
|
|
23
38
|
embedded: embeddedWalletsModule.createEmbeddedWalletsModule(core),
|
|
24
39
|
getBalance,
|
|
25
40
|
getNetwork,
|
|
41
|
+
offWalletEvent,
|
|
42
|
+
onWalletEvent,
|
|
43
|
+
setHandler: (_, handler) => (handlers.walletConnected = handler),
|
|
26
44
|
setPrimary,
|
|
27
45
|
signMessage,
|
|
28
46
|
switchNetwork,
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { StoreEventListeners, WalletsModuleMessages, WalletsModuleState } from '@dynamic-labs/message-transport';
|
|
1
|
+
import { PickedEventListeners, StoreEventListeners, WalletsModuleMessages, WalletsModuleState, userWalletsEventNames } from '@dynamic-labs/message-transport';
|
|
2
|
+
import { BaseWallet } from '@dynamic-labs/types';
|
|
2
3
|
import { Core } from '../../client/core';
|
|
4
|
+
import { type AccountAbstractionModule } from './accountAbstractionModule';
|
|
5
|
+
import { WalletEventListener } from './createWalletListenerMethods';
|
|
3
6
|
import { EmbeddedWalletsModule } from './embeddedWalletsModule';
|
|
4
|
-
export type
|
|
7
|
+
export type PublicWalletModuleMessages = Pick<WalletsModuleMessages, typeof userWalletsEventNames[number]>;
|
|
8
|
+
export type WalletsModule = WalletsModuleState & PickedEventListeners<PublicWalletModuleMessages> & StoreEventListeners<WalletsModuleState> & {
|
|
5
9
|
embedded: EmbeddedWalletsModule;
|
|
10
|
+
accountAbstraction: AccountAbstractionModule;
|
|
6
11
|
signMessage: WalletsModuleMessages['signMessage'];
|
|
7
12
|
switchNetwork: WalletsModuleMessages['switchNetwork'];
|
|
8
13
|
getBalance: WalletsModuleMessages['getBalance'];
|
|
9
14
|
getNetwork: WalletsModuleMessages['getNetwork'];
|
|
10
15
|
setPrimary: WalletsModuleMessages['setPrimary'];
|
|
11
|
-
|
|
16
|
+
onWalletEvent: WalletEventListener;
|
|
17
|
+
offWalletEvent: WalletEventListener;
|
|
18
|
+
setHandler: (name: 'walletConnected', handler: ConnectedWalletsHandler) => void;
|
|
19
|
+
clearHandler: (name: 'walletConnected') => void;
|
|
20
|
+
};
|
|
21
|
+
type ConnectedWalletsHandler = (wallet: Partial<BaseWallet>) => Promise<boolean>;
|
|
12
22
|
export declare const createWalletsModule: (core: Core) => WalletsModule;
|
|
23
|
+
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
import { createRequestChannel, createStore } from '@dynamic-labs/message-transport';
|
|
2
|
+
import { createRequestChannel, createStore, createEventEmitterForMessages, userWalletsEventNames } 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
|
|
|
8
|
+
const defaultConnectedWalletHandler = () => Promise.resolve(true);
|
|
6
9
|
const createWalletsModule = (core) => {
|
|
7
10
|
const requestChannel = createRequestChannel(core.messageTransport);
|
|
8
11
|
const store = createStore({
|
|
@@ -10,15 +13,30 @@ const createWalletsModule = (core) => {
|
|
|
10
13
|
key: 'wallets',
|
|
11
14
|
messageTransport: core.messageTransport,
|
|
12
15
|
});
|
|
16
|
+
const messageEvents = createEventEmitterForMessages({
|
|
17
|
+
eventNames: userWalletsEventNames,
|
|
18
|
+
initialEventEmitter: store.eventEmitter,
|
|
19
|
+
messageTransport: core.messageTransport,
|
|
20
|
+
});
|
|
13
21
|
const signMessage = (params) => requestChannel.request('signMessage', params);
|
|
14
22
|
const getBalance = (params) => requestChannel.request('getBalance', params);
|
|
15
23
|
const switchNetwork = (params) => requestChannel.request('switchNetwork', params);
|
|
16
24
|
const getNetwork = (params) => requestChannel.request('getNetwork', params);
|
|
17
25
|
const setPrimary = (params) => requestChannel.request('setPrimary', params);
|
|
18
|
-
|
|
26
|
+
const { offWalletEvent, onWalletEvent } = createWalletListenerMethods(requestChannel);
|
|
27
|
+
const handlers = {
|
|
28
|
+
walletConnected: defaultConnectedWalletHandler,
|
|
29
|
+
};
|
|
30
|
+
requestChannel.handle('handleConnectedWallet', (wallet) => handlers.walletConnected(wallet));
|
|
31
|
+
return Object.assign(store.getters, pickListenerActions(messageEvents), {
|
|
32
|
+
accountAbstraction: createAccountAbstractionModule(core),
|
|
33
|
+
clearHandler: () => (handlers.walletConnected = defaultConnectedWalletHandler),
|
|
19
34
|
embedded: createEmbeddedWalletsModule(core),
|
|
20
35
|
getBalance,
|
|
21
36
|
getNetwork,
|
|
37
|
+
offWalletEvent,
|
|
38
|
+
onWalletEvent,
|
|
39
|
+
setHandler: (_, handler) => (handlers.walletConnected = handler),
|
|
22
40
|
setPrimary,
|
|
23
41
|
signMessage,
|
|
24
42
|
switchNetwork,
|
package/src/types.d.ts
ADDED
|
@@ -9,9 +9,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
9
9
|
*/
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
11
|
const pickListenerActions = (emitter) => ({
|
|
12
|
-
off:
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
off: (eventName, listener) => {
|
|
13
|
+
emitter.off(eventName, listener);
|
|
14
|
+
},
|
|
15
|
+
on: (eventName, listener) => {
|
|
16
|
+
emitter.on(eventName, listener);
|
|
17
|
+
},
|
|
18
|
+
once: (eventName, listener) => {
|
|
19
|
+
emitter.once(eventName, listener);
|
|
20
|
+
},
|
|
15
21
|
});
|
|
16
22
|
|
|
17
23
|
exports.pickListenerActions = pickListenerActions;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import EventEmitter from 'eventemitter3';
|
|
2
|
+
import { PickedEventListeners } from '@dynamic-labs/message-transport';
|
|
2
3
|
/**
|
|
3
4
|
* This only serves to limit the methods of an event emitter to
|
|
4
5
|
* only the ones necessary for event listening
|
|
5
6
|
*/
|
|
6
|
-
export declare const pickListenerActions: <T extends
|
|
7
|
+
export declare const pickListenerActions: <T extends Record<string, any>>(emitter: EventEmitter<T>) => PickedEventListeners<T>;
|
|
@@ -5,9 +5,15 @@
|
|
|
5
5
|
*/
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
7
|
const pickListenerActions = (emitter) => ({
|
|
8
|
-
off:
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
off: (eventName, listener) => {
|
|
9
|
+
emitter.off(eventName, listener);
|
|
10
|
+
},
|
|
11
|
+
on: (eventName, listener) => {
|
|
12
|
+
emitter.on(eventName, listener);
|
|
13
|
+
},
|
|
14
|
+
once: (eventName, listener) => {
|
|
15
|
+
emitter.once(eventName, listener);
|
|
16
|
+
},
|
|
11
17
|
});
|
|
12
18
|
|
|
13
19
|
export { pickListenerActions };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { setupFetchHandler } from './setupFetchHandler';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../_virtual/_tslib.cjs');
|
|
7
|
+
var messageTransport = require('@dynamic-labs/message-transport');
|
|
8
|
+
|
|
9
|
+
const setupFetchHandler = (core) => {
|
|
10
|
+
const fetchRequestChannel = messageTransport.createRequestChannel(core.messageTransport);
|
|
11
|
+
fetchRequestChannel.handle('fetch', (input, init) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
|
+
const response = yield fetch(input, init);
|
|
13
|
+
const responseBody = yield response.text();
|
|
14
|
+
return {
|
|
15
|
+
body: responseBody,
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
18
|
+
status: response.status,
|
|
19
|
+
statusText: response.statusText,
|
|
20
|
+
};
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.setupFetchHandler = setupFetchHandler;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../_virtual/_tslib.js';
|
|
3
|
+
import { createRequestChannel } from '@dynamic-labs/message-transport';
|
|
4
|
+
|
|
5
|
+
const setupFetchHandler = (core) => {
|
|
6
|
+
const fetchRequestChannel = createRequestChannel(core.messageTransport);
|
|
7
|
+
fetchRequestChannel.handle('fetch', (input, init) => __awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
const response = yield fetch(input, init);
|
|
9
|
+
const responseBody = yield response.text();
|
|
10
|
+
return {
|
|
11
|
+
body: responseBody,
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
14
|
+
status: response.status,
|
|
15
|
+
statusText: response.statusText,
|
|
16
|
+
};
|
|
17
|
+
}));
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export { setupFetchHandler };
|