@dynamic-labs/global-wallet-client 4.25.9 → 4.25.10

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 (40) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +9 -9
  5. package/src/lib/functions/addWebWalletOpenerService/addWebWalletOpenerService.cjs +11 -32
  6. package/src/lib/functions/addWebWalletOpenerService/addWebWalletOpenerService.js +11 -32
  7. package/src/lib/functions/addWebWalletOpenerService/methods/index.d.ts +0 -1
  8. package/src/lib/functions/connect/connect.cjs +2 -1
  9. package/src/lib/functions/connect/connect.js +2 -1
  10. package/src/lib/functions/addWebWalletOpenerService/methods/iframeWalletOpener.cjs +0 -84
  11. package/src/lib/functions/addWebWalletOpenerService/methods/iframeWalletOpener.d.ts +0 -15
  12. package/src/lib/functions/addWebWalletOpenerService/methods/iframeWalletOpener.js +0 -80
  13. package/src/lib/protocol/functions/decodeFromBase64.d.ts +0 -7
  14. package/src/lib/protocol/functions/encodeToBase64.d.ts +0 -7
  15. package/src/lib/protocol/functions/generateNonce.d.ts +0 -6
  16. package/src/lib/protocol/functions/generateRandomHex.d.ts +0 -7
  17. package/src/lib/protocol/functions/walletRequest/addActionToWalletRequest.d.ts +0 -15
  18. package/src/lib/protocol/functions/walletRequest/createWalletRequest.d.ts +0 -7
  19. package/src/lib/protocol/functions/walletRequest/decodeWalletRequest.d.ts +0 -8
  20. package/src/lib/protocol/functions/walletRequest/decryptWalletRequest.d.ts +0 -10
  21. package/src/lib/protocol/functions/walletRequest/encodeWalletRequest.d.ts +0 -8
  22. package/src/lib/protocol/functions/walletRequest/encryptWalletRequest.d.ts +0 -10
  23. package/src/lib/protocol/functions/walletRequest/getActionFromWalletRequest.d.ts +0 -9
  24. package/src/lib/protocol/functions/walletRequest/isEncryptedWalletRequest.d.ts +0 -8
  25. package/src/lib/protocol/functions/walletResponse/addActionErrorToWalletResponse.d.ts +0 -9
  26. package/src/lib/protocol/functions/walletResponse/addActionResultToWalletResponse.d.ts +0 -9
  27. package/src/lib/protocol/functions/walletResponse/addErrorToWalletResponse.d.ts +0 -8
  28. package/src/lib/protocol/functions/walletResponse/addNextNonceToWalletResponse.d.ts +0 -8
  29. package/src/lib/protocol/functions/walletResponse/createWalletResponse.d.ts +0 -8
  30. package/src/lib/protocol/functions/walletResponse/decodeWalletResponse.d.ts +0 -8
  31. package/src/lib/protocol/functions/walletResponse/decryptWalletResponse.d.ts +0 -10
  32. package/src/lib/protocol/functions/walletResponse/encodeWalletResponse.d.ts +0 -8
  33. package/src/lib/protocol/functions/walletResponse/encryptWalletResponse.d.ts +0 -10
  34. package/src/lib/protocol/functions/walletResponse/getActionErrorFromWalletResponse.d.ts +0 -9
  35. package/src/lib/protocol/functions/walletResponse/getActionResultFromWalletResponse.d.ts +0 -10
  36. package/src/lib/protocol/functions/walletResponse/getErrorFromWalletResponse.d.ts +0 -8
  37. package/src/lib/protocol/functions/walletResponse/getNextNonceFromWalletResponse.d.ts +0 -8
  38. package/src/lib/protocol/functions/walletResponse/isEncryptedWalletResponse.d.ts +0 -8
  39. package/src/lib/protocol/index.d.ts +0 -24
  40. package/src/lib/protocol/types.d.ts +0 -48
package/CHANGELOG.md CHANGED
@@ -1,4 +1,18 @@
1
1
 
2
+ ### [4.25.10](https://github.com/dynamic-labs/dynamic-auth/compare/v4.25.9...v4.25.10) (2025-08-07)
3
+
4
+
5
+ ### Features
6
+
7
+ * trigger event for social account changes ([#9291](https://github.com/dynamic-labs/dynamic-auth/issues/9291)) ([6766754](https://github.com/dynamic-labs/dynamic-auth/commit/6766754dd6858628003781fab6cca42c1898dd2d))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * allow using the custom transport config in EthereumWallet walletClient creation ([#9310](https://github.com/dynamic-labs/dynamic-auth/issues/9310)) ([e1db68a](https://github.com/dynamic-labs/dynamic-auth/commit/e1db68a16d51d4db3317b707f27ff35b64056829))
13
+ * incorrect modal showing up when linking MetaMask SOL in headless mode ([#9317](https://github.com/dynamic-labs/dynamic-auth/issues/9317)) ([c7f9644](https://github.com/dynamic-labs/dynamic-auth/commit/c7f9644abe51d537100997db47d8a6d1b78cf8e7))
14
+ * prevent logged-in users from trying to signing in again with social ([#9315](https://github.com/dynamic-labs/dynamic-auth/issues/9315)) ([365c65c](https://github.com/dynamic-labs/dynamic-auth/commit/365c65c0c7bb22c47e77ca58727a473b60887e24))
15
+
2
16
  ### [4.25.9](https://github.com/dynamic-labs/dynamic-auth/compare/v4.25.8...v4.25.9) (2025-08-01)
3
17
 
4
18
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.25.9";
6
+ var version = "4.25.10";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.25.9";
2
+ var version = "4.25.10";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/global-wallet-client",
3
- "version": "4.25.9",
3
+ "version": "4.25.10",
4
4
  "description": "Core package for building Dynamic's Global Wallet",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -63,13 +63,13 @@
63
63
  },
64
64
  "homepage": "https://www.dynamic.xyz/",
65
65
  "dependencies": {
66
- "@dynamic-labs/assert-package-version": "4.25.9",
67
- "@dynamic-labs/ethereum-aa-zksync": "4.25.9",
68
- "@dynamic-labs/logger": "4.25.9",
69
- "@dynamic-labs/message-transport": "4.25.9",
70
- "@dynamic-labs/store": "4.25.9",
71
- "@dynamic-labs/types": "4.25.9",
72
- "@dynamic-labs/utils": "4.25.9",
66
+ "@dynamic-labs/assert-package-version": "4.25.10",
67
+ "@dynamic-labs/ethereum-aa-zksync": "4.25.10",
68
+ "@dynamic-labs/logger": "4.25.10",
69
+ "@dynamic-labs/message-transport": "4.25.10",
70
+ "@dynamic-labs/store": "4.25.10",
71
+ "@dynamic-labs/types": "4.25.10",
72
+ "@dynamic-labs/utils": "4.25.10",
73
73
  "eventemitter3": "5.0.1"
74
74
  },
75
75
  "peerDependencies": {
@@ -81,7 +81,7 @@
81
81
  "zksync-sso": "0.2.0",
82
82
  "@wallet-standard/wallet": "^1.1.0",
83
83
  "@zerodev/sdk": "5.4.36",
84
- "@dynamic-labs/ethereum-aa": "4.25.9"
84
+ "@dynamic-labs/ethereum-aa": "4.25.10"
85
85
  },
86
86
  "peerDependenciesMeta": {
87
87
  "viem": {
@@ -3,12 +3,10 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../../../../_virtual/_tslib.cjs');
7
6
  require('eventemitter3');
8
7
  require('@dynamic-labs/logger');
9
8
  require('@dynamic-labs/store');
10
9
  require('../../errors/DisconnectError.cjs');
11
- var iframeWalletOpener = require('./methods/iframeWalletOpener.cjs');
12
10
  var popupWalletOpener = require('./methods/popupWalletOpener.cjs');
13
11
  var getCore = require('../../client/getCore/getCore.cjs');
14
12
 
@@ -25,41 +23,22 @@ const addWebWalletOpenerService = (client, globalWindow = global.window) => {
25
23
  lastActionId: null,
26
24
  popup: null,
27
25
  };
28
- const iframeState = {
29
- iframe: null,
30
- lastActionId: null,
31
- };
32
26
  const popupHeight = (_a = popupInfo.height) !== null && _a !== void 0 ? _a : 640;
33
27
  const popupWidth = (_b = popupInfo.width) !== null && _b !== void 0 ? _b : 420;
34
28
  const postfixUrlWithVersion = (_c = developmentOptions.postfixPopupUrlWithVersion) !== null && _c !== void 0 ? _c : true;
35
- const walletOpener = (props) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
36
- const iframeWalletOpener$1 = iframeWalletOpener.createIframeWalletOpener({
37
- environmentId,
38
- eventEmitter,
39
- globalWindow,
40
- iframeState,
41
- logger,
42
- popupInfo,
43
- postfixUrlWithVersion,
44
- });
45
- const popupWalletOpener$1 = popupWalletOpener.createPopupWalletOpener({
46
- environmentId,
47
- eventEmitter,
48
- globalWindow,
49
- logger,
50
- popupHeight,
51
- popupInfo,
52
- popupState,
53
- popupWidth,
54
- postfixUrlWithVersion,
55
- });
56
- if (props.useIframe) {
57
- return iframeWalletOpener$1(props);
58
- }
59
- return popupWalletOpener$1(props);
29
+ const popupWalletOpener$1 = popupWalletOpener.createPopupWalletOpener({
30
+ environmentId,
31
+ eventEmitter,
32
+ globalWindow,
33
+ logger,
34
+ popupHeight,
35
+ popupInfo,
36
+ popupState,
37
+ popupWidth,
38
+ postfixUrlWithVersion,
60
39
  });
61
40
  registry.set('walletOpenerService', {
62
- openWallet: walletOpener,
41
+ openWallet: popupWalletOpener$1,
63
42
  });
64
43
  };
65
44
 
@@ -1,10 +1,8 @@
1
1
  'use client'
2
- import { __awaiter } from '../../../../_virtual/_tslib.js';
3
2
  import 'eventemitter3';
4
3
  import '@dynamic-labs/logger';
5
4
  import '@dynamic-labs/store';
6
5
  import '../../errors/DisconnectError.js';
7
- import { createIframeWalletOpener } from './methods/iframeWalletOpener.js';
8
6
  import { createPopupWalletOpener } from './methods/popupWalletOpener.js';
9
7
  import { getCore } from '../../client/getCore/getCore.js';
10
8
 
@@ -21,41 +19,22 @@ const addWebWalletOpenerService = (client, globalWindow = global.window) => {
21
19
  lastActionId: null,
22
20
  popup: null,
23
21
  };
24
- const iframeState = {
25
- iframe: null,
26
- lastActionId: null,
27
- };
28
22
  const popupHeight = (_a = popupInfo.height) !== null && _a !== void 0 ? _a : 640;
29
23
  const popupWidth = (_b = popupInfo.width) !== null && _b !== void 0 ? _b : 420;
30
24
  const postfixUrlWithVersion = (_c = developmentOptions.postfixPopupUrlWithVersion) !== null && _c !== void 0 ? _c : true;
31
- const walletOpener = (props) => __awaiter(void 0, void 0, void 0, function* () {
32
- const iframeWalletOpener = createIframeWalletOpener({
33
- environmentId,
34
- eventEmitter,
35
- globalWindow,
36
- iframeState,
37
- logger,
38
- popupInfo,
39
- postfixUrlWithVersion,
40
- });
41
- const popupWalletOpener = createPopupWalletOpener({
42
- environmentId,
43
- eventEmitter,
44
- globalWindow,
45
- logger,
46
- popupHeight,
47
- popupInfo,
48
- popupState,
49
- popupWidth,
50
- postfixUrlWithVersion,
51
- });
52
- if (props.useIframe) {
53
- return iframeWalletOpener(props);
54
- }
55
- return popupWalletOpener(props);
25
+ const popupWalletOpener = createPopupWalletOpener({
26
+ environmentId,
27
+ eventEmitter,
28
+ globalWindow,
29
+ logger,
30
+ popupHeight,
31
+ popupInfo,
32
+ popupState,
33
+ popupWidth,
34
+ postfixUrlWithVersion,
56
35
  });
57
36
  registry.set('walletOpenerService', {
58
- openWallet: walletOpener,
37
+ openWallet: popupWalletOpener,
59
38
  });
60
39
  };
61
40
 
@@ -1,2 +1 @@
1
- export { createIframeWalletOpener } from './iframeWalletOpener';
2
1
  export { createPopupWalletOpener } from './popupWalletOpener';
@@ -40,12 +40,13 @@ const connect = (client) => _tslib.__awaiter(void 0, void 0, void 0, function* (
40
40
  connection: getActiveConnection.getActiveConnection(client),
41
41
  name: 'connect',
42
42
  });
43
- const { encryptedMessage, expiresAt, iv, providerPublicKey } = data;
43
+ const { connectionId, encryptedMessage, expiresAt, iv, providerPublicKey } = data;
44
44
  const sharedSecret = yield utils.deriveSharedSecret(keyPair.privateKey, yield utils.convertPublicKeyHexToCryptoKey(providerPublicKey));
45
45
  const message = yield utils.decryptMessage(sharedSecret, encryptedMessage, iv);
46
46
  const { ethereum, solana, wallets, settings } = JSON.parse(message);
47
47
  setInitialConnectionState.setInitialConnectionState(client, {
48
48
  connection: {
49
+ connectionId,
49
50
  expiresAt,
50
51
  // TODO: use PlatformService
51
52
  origin: window.location.origin,
@@ -36,12 +36,13 @@ const connect = (client) => __awaiter(void 0, void 0, void 0, function* () {
36
36
  connection: getActiveConnection(client),
37
37
  name: 'connect',
38
38
  });
39
- const { encryptedMessage, expiresAt, iv, providerPublicKey } = data;
39
+ const { connectionId, encryptedMessage, expiresAt, iv, providerPublicKey } = data;
40
40
  const sharedSecret = yield deriveSharedSecret(keyPair.privateKey, yield convertPublicKeyHexToCryptoKey(providerPublicKey));
41
41
  const message = yield decryptMessage(sharedSecret, encryptedMessage, iv);
42
42
  const { ethereum, solana, wallets, settings } = JSON.parse(message);
43
43
  setInitialConnectionState(client, {
44
44
  connection: {
45
+ connectionId,
45
46
  expiresAt,
46
47
  // TODO: use PlatformService
47
48
  origin: window.location.origin,
@@ -1,84 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
- var utils = require('@dynamic-labs/utils');
8
- var mergeAndEncryptParams = require('../../mergeAndEncryptParams/mergeAndEncryptParams.cjs');
9
- var waitForResponse = require('../../waitForResponse/waitForResponse.cjs');
10
- var constructUrl = require('../constructUrl.cjs');
11
- var decodeResponse = require('./utils/decodeResponse.cjs');
12
- var handlePromiseResponse = require('./utils/handlePromiseResponse.cjs');
13
-
14
- const iframeActionTimeout = 1000;
15
- const createIframeWalletOpener = ({ popupInfo, environmentId, globalWindow, postfixUrlWithVersion, logger, eventEmitter, iframeState, }) => (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ args, name, connection, }) {
16
- const finalUrl = constructUrl.buildUrlWithParams({
17
- environmentId,
18
- globalWindow,
19
- name,
20
- postfixUrlWithVersion,
21
- urlInfo: popupInfo,
22
- });
23
- // Used as a unique identifier for the action
24
- const actionId = new Date().getTime();
25
- iframeState.lastActionId = actionId;
26
- const closeIframe = () => {
27
- var _a;
28
- logger.logVerboseTroubleshootingMessage('closeIframe', {
29
- lastActionId: iframeState.lastActionId,
30
- });
31
- if (iframeState.iframe) {
32
- (_a = iframeState.iframe.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframeState.iframe);
33
- iframeState.iframe = null;
34
- }
35
- if (typeof globalWindow !== 'undefined') {
36
- globalWindow.removeEventListener('beforeunload', closeIframe);
37
- }
38
- iframeState.lastActionId = null;
39
- };
40
- // Add beforeunload listener for cleanup
41
- if (typeof globalWindow !== 'undefined') {
42
- globalWindow.addEventListener('beforeunload', closeIframe);
43
- }
44
- const resultDeferredPromise = new utils.DeferredPromise();
45
- if (iframeState.iframe === null) {
46
- iframeState.iframe = document.createElement('iframe');
47
- if (iframeState.iframe) {
48
- iframeState.iframe.style.position = 'fixed';
49
- iframeState.iframe.style.top = '0';
50
- iframeState.iframe.style.left = '0';
51
- iframeState.iframe.style.width = '0';
52
- iframeState.iframe.style.height = '0';
53
- iframeState.iframe.style.zIndex = '-1';
54
- iframeState.iframe.style.border = 'none';
55
- iframeState.iframe.style.visibility = 'hidden';
56
- }
57
- }
58
- if (args) {
59
- yield mergeAndEncryptParams.mergeAndEncryptParams(finalUrl, args, connection);
60
- }
61
- if (iframeState.iframe === null) {
62
- throw new Error('Failed to open iframe');
63
- }
64
- waitForResponse.waitForResponse({
65
- decode: (data) => _tslib.__awaiter(void 0, void 0, void 0, function* () { return decodeResponse.decodeResponse(connection, data); }),
66
- onError: (error) => resultDeferredPromise.reject(error),
67
- onResponse: (response) => resultDeferredPromise.resolve(response.data),
68
- url: finalUrl.toString(),
69
- });
70
- iframeState.iframe.src = finalUrl.toString();
71
- document.body.appendChild(iframeState.iframe);
72
- const getLastActionId = () => iframeState.lastActionId;
73
- return handlePromiseResponse.handlePromiseResponse({
74
- actionId,
75
- close: closeIframe,
76
- eventEmitter,
77
- getLastActionId,
78
- logger,
79
- promise: resultDeferredPromise.promise,
80
- timeout: iframeActionTimeout,
81
- });
82
- });
83
-
84
- exports.createIframeWalletOpener = createIframeWalletOpener;
@@ -1,15 +0,0 @@
1
- import { WalletOpener } from '../../createWalletOpener';
2
- interface IframeOpenerDeps {
3
- popupInfo: any;
4
- environmentId: string;
5
- globalWindow: Window;
6
- postfixUrlWithVersion: boolean;
7
- logger: any;
8
- eventEmitter: any;
9
- iframeState: {
10
- lastActionId: number | null;
11
- iframe: HTMLIFrameElement | null;
12
- };
13
- }
14
- export declare const createIframeWalletOpener: ({ popupInfo, environmentId, globalWindow, postfixUrlWithVersion, logger, eventEmitter, iframeState, }: IframeOpenerDeps) => WalletOpener;
15
- export {};
@@ -1,80 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { DeferredPromise } from '@dynamic-labs/utils';
4
- import { mergeAndEncryptParams } from '../../mergeAndEncryptParams/mergeAndEncryptParams.js';
5
- import { waitForResponse } from '../../waitForResponse/waitForResponse.js';
6
- import { buildUrlWithParams } from '../constructUrl.js';
7
- import { decodeResponse } from './utils/decodeResponse.js';
8
- import { handlePromiseResponse } from './utils/handlePromiseResponse.js';
9
-
10
- const iframeActionTimeout = 1000;
11
- const createIframeWalletOpener = ({ popupInfo, environmentId, globalWindow, postfixUrlWithVersion, logger, eventEmitter, iframeState, }) => (_a) => __awaiter(void 0, [_a], void 0, function* ({ args, name, connection, }) {
12
- const finalUrl = buildUrlWithParams({
13
- environmentId,
14
- globalWindow,
15
- name,
16
- postfixUrlWithVersion,
17
- urlInfo: popupInfo,
18
- });
19
- // Used as a unique identifier for the action
20
- const actionId = new Date().getTime();
21
- iframeState.lastActionId = actionId;
22
- const closeIframe = () => {
23
- var _a;
24
- logger.logVerboseTroubleshootingMessage('closeIframe', {
25
- lastActionId: iframeState.lastActionId,
26
- });
27
- if (iframeState.iframe) {
28
- (_a = iframeState.iframe.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframeState.iframe);
29
- iframeState.iframe = null;
30
- }
31
- if (typeof globalWindow !== 'undefined') {
32
- globalWindow.removeEventListener('beforeunload', closeIframe);
33
- }
34
- iframeState.lastActionId = null;
35
- };
36
- // Add beforeunload listener for cleanup
37
- if (typeof globalWindow !== 'undefined') {
38
- globalWindow.addEventListener('beforeunload', closeIframe);
39
- }
40
- const resultDeferredPromise = new DeferredPromise();
41
- if (iframeState.iframe === null) {
42
- iframeState.iframe = document.createElement('iframe');
43
- if (iframeState.iframe) {
44
- iframeState.iframe.style.position = 'fixed';
45
- iframeState.iframe.style.top = '0';
46
- iframeState.iframe.style.left = '0';
47
- iframeState.iframe.style.width = '0';
48
- iframeState.iframe.style.height = '0';
49
- iframeState.iframe.style.zIndex = '-1';
50
- iframeState.iframe.style.border = 'none';
51
- iframeState.iframe.style.visibility = 'hidden';
52
- }
53
- }
54
- if (args) {
55
- yield mergeAndEncryptParams(finalUrl, args, connection);
56
- }
57
- if (iframeState.iframe === null) {
58
- throw new Error('Failed to open iframe');
59
- }
60
- waitForResponse({
61
- decode: (data) => __awaiter(void 0, void 0, void 0, function* () { return decodeResponse(connection, data); }),
62
- onError: (error) => resultDeferredPromise.reject(error),
63
- onResponse: (response) => resultDeferredPromise.resolve(response.data),
64
- url: finalUrl.toString(),
65
- });
66
- iframeState.iframe.src = finalUrl.toString();
67
- document.body.appendChild(iframeState.iframe);
68
- const getLastActionId = () => iframeState.lastActionId;
69
- return handlePromiseResponse({
70
- actionId,
71
- close: closeIframe,
72
- eventEmitter,
73
- getLastActionId,
74
- logger,
75
- promise: resultDeferredPromise.promise,
76
- timeout: iframeActionTimeout,
77
- });
78
- });
79
-
80
- export { createIframeWalletOpener };
@@ -1,7 +0,0 @@
1
- /**
2
- * Decodes a base64-encoded string to a UTF-8 string.
3
- *
4
- * @param encodedPayload - The base64-encoded string to decode
5
- * @returns A promise that resolves to the decoded UTF-8 string
6
- */
7
- export declare const decodeFromBase64: (encodedPayload: string) => Promise<string>;
@@ -1,7 +0,0 @@
1
- /**
2
- * Encodes a string to base64.
3
- *
4
- * @param payload - The string to encode
5
- * @returns A promise that resolves to the base64-encoded string
6
- */
7
- export declare const encodeToBase64: (payload: string) => Promise<string>;
@@ -1,6 +0,0 @@
1
- /**
2
- * Generates a 6-character hexadecimal nonce for encrypted communications.
3
- *
4
- * @returns A 6-character hexadecimal string to use as a nonce
5
- */
6
- export declare const generateNonce: () => string;
@@ -1,7 +0,0 @@
1
- /**
2
- * Generates a random hexadecimal string of a specified length.
3
- *
4
- * @param length - The length of the hexadecimal string to generate (default: 6)
5
- * @returns A random hexadecimal string
6
- */
7
- export declare const generateRandomHex: (length?: number) => string;
@@ -1,15 +0,0 @@
1
- import { WalletRequest, WalletRequestAction } from '../../types';
2
- /**
3
- * Adds a new action to an existing wallet request.
4
- *
5
- * @param request - The wallet request to add the action to
6
- * @param action - The action to add, containing name and arguments
7
- * @returns The created WalletRequestAction with auto-generated ID
8
- */
9
- export declare const addActionToWalletRequest: <T extends {
10
- name: string;
11
- args: Record<string, unknown>;
12
- } = {
13
- name: never;
14
- args: never;
15
- }>(request: WalletRequest, action: T) => WalletRequestAction;
@@ -1,7 +0,0 @@
1
- import { WalletRequest } from '../../types';
2
- /**
3
- * Creates a new wallet request with an empty body and a generated request ID.
4
- *
5
- * @returns A new WalletRequest object with empty body and auto-generated request ID
6
- */
7
- export declare const createWalletRequest: () => WalletRequest;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletRequest, WalletRequest } from '../../types';
2
- /**
3
- * Decodes a base64-encoded wallet request string back to a request object.
4
- *
5
- * @param encodedRequest - The base64-encoded request string to decode
6
- * @returns A promise that resolves to the decoded wallet request (encrypted or unencrypted)
7
- */
8
- export declare const decodeWalletRequest: (encodedRequest: string) => Promise<WalletRequest | EncryptedWalletRequest>;
@@ -1,10 +0,0 @@
1
- import { EncryptedWalletRequest, WalletRequest } from '../../types';
2
- /**
3
- * Decrypts an encrypted wallet request using AES-GCM decryption with a shared secret and nonce.
4
- *
5
- * @param encryptedRequest - The encrypted wallet request to decrypt
6
- * @param sharedSecret - The shared secret key for decryption
7
- * @param nonce - The nonce value used during encryption
8
- * @returns A promise that resolves to the decrypted wallet request
9
- */
10
- export declare const decryptWalletRequest: (encryptedRequest: EncryptedWalletRequest, sharedSecret: string, nonce: string) => Promise<WalletRequest>;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletRequest, WalletRequest } from '../../types';
2
- /**
3
- * Encodes a wallet request (encrypted or unencrypted) to a base64 string for transmission.
4
- *
5
- * @param request - The wallet request to encode
6
- * @returns A promise that resolves to the base64-encoded request string
7
- */
8
- export declare const encodeWalletRequest: (request: WalletRequest | EncryptedWalletRequest) => Promise<string>;
@@ -1,10 +0,0 @@
1
- import { EncryptedWalletRequest, WalletRequest } from '../../types';
2
- /**
3
- * Encrypts a wallet request using AES-GCM encryption with a shared secret and nonce.
4
- *
5
- * @param request - The wallet request to encrypt
6
- * @param sharedSecret - The shared secret key for encryption
7
- * @param nonce - The nonce value to use for encryption
8
- * @returns A promise that resolves to the encrypted wallet request
9
- */
10
- export declare const encryptWalletRequest: (request: WalletRequest, sharedSecret: string, nonce: string) => Promise<EncryptedWalletRequest>;
@@ -1,9 +0,0 @@
1
- import { WalletRequest, WalletRequestAction } from '../../types';
2
- /**
3
- * Retrieves the first action from a wallet request.
4
- *
5
- * @param request - The wallet request to extract the action from
6
- * @returns The first action found in the request
7
- * @throws {Error} When no action is found in the request
8
- */
9
- export declare const getActionFromWalletRequest: (request: WalletRequest) => WalletRequestAction;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletRequest, WalletRequest } from '../../types';
2
- /**
3
- * Type guard to determine if a wallet request is encrypted.
4
- *
5
- * @param request - The wallet request to check
6
- * @returns True if the request is encrypted, false otherwise
7
- */
8
- export declare const isEncryptedWalletRequest: (request: WalletRequest | EncryptedWalletRequest) => request is EncryptedWalletRequest;
@@ -1,9 +0,0 @@
1
- import { WalletResponse, WalletRequestAction } from '../../types';
2
- /**
3
- * Adds an action-specific error to a wallet response.
4
- *
5
- * @param response - The wallet response to add the error to
6
- * @param action - The action that failed
7
- * @param error - The error that occurred during action execution
8
- */
9
- export declare const addActionErrorToWalletResponse: (response: WalletResponse, action: WalletRequestAction, error: Error) => void;
@@ -1,9 +0,0 @@
1
- import { WalletRequestAction, WalletResponse } from '../../types';
2
- /**
3
- * Adds a successful action result to a wallet response.
4
- *
5
- * @param response - The wallet response to add the result to
6
- * @param requestAction - The action that was executed successfully
7
- * @param result - The result data from executing the action
8
- */
9
- export declare const addActionResultToWalletResponse: (response: WalletResponse, requestAction: WalletRequestAction, result: Record<string, unknown>) => void;
@@ -1,8 +0,0 @@
1
- import { WalletResponse } from '../../types';
2
- /**
3
- * Adds a general error to a wallet response.
4
- *
5
- * @param response - The wallet response to add the error to
6
- * @param error - The general error that occurred
7
- */
8
- export declare const addErrorToWalletResponse: (response: WalletResponse, error: Error) => void;
@@ -1,8 +0,0 @@
1
- import { WalletResponse } from '../../types';
2
- /**
3
- * Adds a next nonce to a wallet response for encrypted communication flows.
4
- *
5
- * @param response - The wallet response to add the next nonce to
6
- * @param nonce - The nonce value to include for the next encrypted exchange
7
- */
8
- export declare const addNextNonceToWalletResponse: (response: WalletResponse, nonce: string) => void;
@@ -1,8 +0,0 @@
1
- import { WalletRequest, WalletResponse } from '../../types';
2
- /**
3
- * Creates a new wallet response, optionally linked to a request.
4
- *
5
- * @param request - Optional wallet request to link this response to
6
- * @returns A new WalletResponse object with empty body and optional request ID
7
- */
8
- export declare const createWalletResponse: (request?: WalletRequest) => WalletResponse;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletResponse, WalletResponse } from '../../types';
2
- /**
3
- * Decodes a base64-encoded wallet response string back to a response object.
4
- *
5
- * @param response - The base64-encoded response string to decode
6
- * @returns A promise that resolves to the decoded wallet response (encrypted or unencrypted)
7
- */
8
- export declare const decodeWalletResponse: (response: string) => Promise<WalletResponse | EncryptedWalletResponse>;
@@ -1,10 +0,0 @@
1
- import { EncryptedWalletResponse, WalletResponse } from '../../types';
2
- /**
3
- * Decrypts an encrypted wallet response using AES-GCM decryption with a shared secret and nonce.
4
- *
5
- * @param encryptedResponse - The encrypted wallet response to decrypt
6
- * @param sharedSecret - The shared secret key for decryption
7
- * @param nonce - The nonce value used during encryption
8
- * @returns A promise that resolves to the decrypted wallet response
9
- */
10
- export declare const decryptWalletResponse: (encryptedResponse: EncryptedWalletResponse, sharedSecret: string, nonce: string) => Promise<WalletResponse>;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletResponse, WalletResponse } from '../../types';
2
- /**
3
- * Encodes a wallet response (encrypted or unencrypted) to a base64 string for transmission.
4
- *
5
- * @param response - The wallet response to encode
6
- * @returns A promise that resolves to the base64-encoded response string
7
- */
8
- export declare const encodeWalletResponse: (response: WalletResponse | EncryptedWalletResponse) => Promise<string>;
@@ -1,10 +0,0 @@
1
- import { EncryptedWalletResponse, WalletResponse } from '../../types';
2
- /**
3
- * Encrypts a wallet response using AES-GCM encryption with a shared secret and nonce.
4
- *
5
- * @param response - The wallet response to encrypt
6
- * @param sharedSecret - The shared secret key for encryption
7
- * @param nonce - The nonce value to use for encryption
8
- * @returns A promise that resolves to the encrypted wallet response
9
- */
10
- export declare const encryptWalletResponse: (response: WalletResponse, sharedSecret: string, nonce: string) => Promise<EncryptedWalletResponse>;
@@ -1,9 +0,0 @@
1
- import { WalletResponse, WalletRequestAction } from '../../types';
2
- /**
3
- * Retrieves an action-specific error from a wallet response.
4
- *
5
- * @param response - The wallet response to search for the action error
6
- * @param action - The action to find the error for
7
- * @returns The action error if found, null otherwise
8
- */
9
- export declare const getActionErrorFromWalletResponse: (response: WalletResponse, action: WalletRequestAction) => Error | null;
@@ -1,10 +0,0 @@
1
- import { WalletRequestAction, WalletResponse } from '../../types';
2
- /**
3
- * Retrieves the result data for a specific action from a wallet response.
4
- *
5
- * @param response - The wallet response to search for the action result
6
- * @param action - The action to find the result for
7
- * @returns The action result data
8
- * @throws {Error} When no action result is found for the given action
9
- */
10
- export declare const getActionResultFromWalletResponse: <T extends Record<string, unknown> = never>(response: WalletResponse, action: WalletRequestAction) => T;
@@ -1,8 +0,0 @@
1
- import { WalletResponse } from '../../types';
2
- /**
3
- * Retrieves a general error from a wallet response.
4
- *
5
- * @param response - The wallet response to search for the general error
6
- * @returns The general error if found, null otherwise
7
- */
8
- export declare const getErrorFromWalletResponse: (response: WalletResponse) => Error | null;
@@ -1,8 +0,0 @@
1
- import { WalletResponse } from '../../types';
2
- /**
3
- * Extracts the next nonce from a wallet response for encrypted communication flows.
4
- *
5
- * @param response - The wallet response to extract the next nonce from
6
- * @returns The next nonce string if found, null otherwise
7
- */
8
- export declare const getNextNonceFromWalletResponse: (response: WalletResponse) => string | null;
@@ -1,8 +0,0 @@
1
- import { EncryptedWalletResponse, WalletResponse } from '../../types';
2
- /**
3
- * Type guard to determine if a wallet response is encrypted.
4
- *
5
- * @param response - The wallet response to check
6
- * @returns True if the response is encrypted, false otherwise
7
- */
8
- export declare const isEncryptedWalletResponse: (response: WalletResponse | EncryptedWalletResponse) => response is EncryptedWalletResponse;
@@ -1,24 +0,0 @@
1
- export type { WalletRequest, WalletResponse, EncryptedWalletRequest, EncryptedWalletResponse, } from './types';
2
- export { createWalletRequest } from './functions/walletRequest/createWalletRequest';
3
- export { getActionResultFromWalletResponse } from './functions/walletResponse/getActionResultFromWalletResponse';
4
- export { addActionResultToWalletResponse } from './functions/walletResponse/addActionResultToWalletResponse';
5
- export { addActionToWalletRequest } from './functions/walletRequest/addActionToWalletRequest';
6
- export { createWalletResponse } from './functions/walletResponse/createWalletResponse';
7
- export { encodeWalletRequest } from './functions/walletRequest/encodeWalletRequest';
8
- export { decodeWalletRequest } from './functions/walletRequest/decodeWalletRequest';
9
- export { encodeWalletResponse } from './functions/walletResponse/encodeWalletResponse';
10
- export { decodeWalletResponse } from './functions/walletResponse/decodeWalletResponse';
11
- export { decryptWalletRequest } from './functions/walletRequest/decryptWalletRequest';
12
- export { decryptWalletResponse } from './functions/walletResponse/decryptWalletResponse';
13
- export { encryptWalletRequest } from './functions/walletRequest/encryptWalletRequest';
14
- export { encryptWalletResponse } from './functions/walletResponse/encryptWalletResponse';
15
- export { isEncryptedWalletRequest } from './functions/walletRequest/isEncryptedWalletRequest';
16
- export { isEncryptedWalletResponse } from './functions/walletResponse/isEncryptedWalletResponse';
17
- export { getActionFromWalletRequest } from './functions/walletRequest/getActionFromWalletRequest';
18
- export { generateNonce } from './functions/generateNonce';
19
- export { addNextNonceToWalletResponse } from './functions/walletResponse/addNextNonceToWalletResponse';
20
- export { getNextNonceFromWalletResponse } from './functions/walletResponse/getNextNonceFromWalletResponse';
21
- export { addActionErrorToWalletResponse } from './functions/walletResponse/addActionErrorToWalletResponse';
22
- export { addErrorToWalletResponse } from './functions/walletResponse/addErrorToWalletResponse';
23
- export { getActionErrorFromWalletResponse } from './functions/walletResponse/getActionErrorFromWalletResponse';
24
- export { getErrorFromWalletResponse } from './functions/walletResponse/getErrorFromWalletResponse';
@@ -1,48 +0,0 @@
1
- import { SerializedError } from '@dynamic-labs/message-transport';
2
- export type WalletRequestAction = {
3
- id: string;
4
- type: 'action';
5
- name: string;
6
- args: Record<string, unknown>;
7
- };
8
- export type WalletRequestBody = WalletRequestAction[];
9
- export type WalletRequest = {
10
- version: string;
11
- requestId: string;
12
- body: WalletRequestBody;
13
- };
14
- export type EncryptedWalletRequest = {
15
- iv: string;
16
- encryptedMessage: string;
17
- };
18
- export type WalletResponseBodyActionResult = {
19
- type: 'action-result';
20
- actionId: string;
21
- data: Record<string, unknown>;
22
- };
23
- export type WalletResponseBodyNextNonce = {
24
- type: 'next-nonce';
25
- nonce: string;
26
- };
27
- export type WalletResponseBodyEvent = {
28
- type: 'event';
29
- data: Record<string, unknown>;
30
- };
31
- export type WalletResponseBodyActionError = {
32
- type: 'action-error';
33
- actionId: string;
34
- error: SerializedError;
35
- };
36
- export type WalletResponseBodyError = {
37
- type: 'error';
38
- error: SerializedError;
39
- };
40
- export type WalletResponseBody = (WalletResponseBodyActionResult | WalletResponseBodyNextNonce | WalletResponseBodyEvent | WalletResponseBodyActionError | WalletResponseBodyError)[];
41
- export type WalletResponse = {
42
- requestId?: string;
43
- body: WalletResponseBody;
44
- };
45
- export type EncryptedWalletResponse = {
46
- iv: string;
47
- encryptedMessage: string;
48
- };