@dynamic-labs/global-wallet-client 4.19.2 → 4.19.4
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 +9 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +19 -7
- package/src/lib/client/createCore/createCore.cjs +8 -15
- package/src/lib/client/createCore/createCore.d.ts +7 -2
- package/src/lib/client/createCore/createCore.js +8 -15
- package/src/lib/client/createGlobalWalletClient/createGlobalWalletClient.cjs +2 -0
- package/src/lib/client/createGlobalWalletClient/createGlobalWalletClient.js +2 -0
- package/src/lib/ethereum/functions/eip1193Provider/createEIP1193Provider.cjs +6 -6
- package/src/lib/ethereum/functions/eip1193Provider/createEIP1193Provider.js +6 -6
- package/src/lib/functions/{createPopupOpener/createPopupOpener.cjs → addWebWalletOpenerService/addWebWalletOpenerService.cjs} +39 -17
- package/src/lib/functions/addWebWalletOpenerService/addWebWalletOpenerService.d.ts +7 -0
- package/src/lib/functions/{createPopupOpener/createPopupOpener.js → addWebWalletOpenerService/addWebWalletOpenerService.js} +35 -13
- package/src/lib/functions/addWebWalletOpenerService/index.d.ts +1 -0
- package/src/lib/functions/clearStore/clearStore.cjs +1 -1
- package/src/lib/functions/clearStore/clearStore.js +1 -1
- package/src/lib/functions/connect/connect.cjs +5 -5
- package/src/lib/functions/connect/connect.js +5 -5
- package/src/lib/functions/createRegistry/createRegistry.cjs +24 -0
- package/src/lib/functions/createRegistry/createRegistry.d.ts +6 -0
- package/src/lib/functions/createRegistry/createRegistry.js +20 -0
- package/src/lib/functions/createRegistry/index.d.ts +1 -0
- package/src/lib/functions/createWalletOpener/createWalletOpener.cjs +11 -0
- package/src/lib/functions/createWalletOpener/createWalletOpener.d.ts +12 -0
- package/src/lib/functions/createWalletOpener/createWalletOpener.js +7 -0
- package/src/lib/functions/createWalletOpener/index.d.ts +1 -0
- package/src/lib/functions/createZksyncSession/createZksyncSession.cjs +55 -0
- package/src/lib/functions/createZksyncSession/createZksyncSession.d.ts +25 -0
- package/src/lib/functions/createZksyncSession/createZksyncSession.js +51 -0
- package/src/lib/functions/createZksyncSession/index.d.ts +1 -0
- package/src/lib/functions/disconnect/disconnect.cjs +3 -3
- package/src/lib/functions/disconnect/disconnect.js +3 -3
- package/src/lib/functions/getActiveConnection/getActiveConnection.cjs +2 -2
- package/src/lib/functions/getActiveConnection/getActiveConnection.js +2 -2
- package/src/lib/functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.cjs +1 -1
- package/src/lib/functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.js +1 -1
- package/src/lib/functions/getCurrentSolanaNetwork/getCurrentSolanaNetwork.cjs +1 -1
- package/src/lib/functions/getCurrentSolanaNetwork/getCurrentSolanaNetwork.js +1 -1
- package/src/lib/functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.cjs +1 -1
- package/src/lib/functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.js +1 -1
- package/src/lib/functions/getWalletNetwork/getWalletNetwork.cjs +1 -1
- package/src/lib/functions/getWalletNetwork/getWalletNetwork.js +1 -1
- package/src/lib/functions/listZksyncSessions/index.d.ts +1 -0
- package/src/lib/functions/listZksyncSessions/listZksyncSessions.cjs +54 -0
- package/src/lib/functions/listZksyncSessions/listZksyncSessions.d.ts +25 -0
- package/src/lib/functions/listZksyncSessions/listZksyncSessions.js +50 -0
- package/src/lib/functions/onEvent/onEvent.cjs +1 -1
- package/src/lib/functions/onEvent/onEvent.js +1 -1
- package/src/lib/functions/revokeZksyncSession/index.d.ts +1 -0
- package/src/lib/functions/revokeZksyncSession/revokeZksyncSession.cjs +54 -0
- package/src/lib/functions/revokeZksyncSession/revokeZksyncSession.d.ts +21 -0
- package/src/lib/functions/revokeZksyncSession/revokeZksyncSession.js +50 -0
- package/src/lib/functions/setInitialConnectionState/setInitialConnectionState.cjs +1 -1
- package/src/lib/functions/setInitialConnectionState/setInitialConnectionState.js +1 -1
- package/src/lib/functions/signEthereumMessage/signEthereumMessage.cjs +5 -5
- package/src/lib/functions/signEthereumMessage/signEthereumMessage.js +5 -5
- package/src/lib/functions/signSolanaMessage/signSolanaMessage.cjs +5 -5
- package/src/lib/functions/signSolanaMessage/signSolanaMessage.js +5 -5
- package/src/lib/functions/switchEthereumNetwork/switchEthereumNetwork.cjs +2 -2
- package/src/lib/functions/switchEthereumNetwork/switchEthereumNetwork.js +2 -2
- package/src/lib/functions/switchNetwork/switchNetwork.cjs +1 -1
- package/src/lib/functions/switchNetwork/switchNetwork.js +1 -1
- package/src/lib/solana/functions/createSolanaSignAndSendTransactionFeature/createSolanaSignAndSendTransactionFeature.cjs +5 -5
- package/src/lib/solana/functions/createSolanaSignAndSendTransactionFeature/createSolanaSignAndSendTransactionFeature.js +5 -5
- package/src/lib/solana/functions/createSolanaSignMessageFeature/createSolanaSignMessageFeature.cjs +5 -5
- package/src/lib/solana/functions/createSolanaSignMessageFeature/createSolanaSignMessageFeature.js +5 -5
- package/src/lib/solana/functions/createSolanaSignTransactionFeature/createSolanaSignTransactionFeature.cjs +5 -5
- package/src/lib/solana/functions/createSolanaSignTransactionFeature/createSolanaSignTransactionFeature.js +5 -5
- package/src/zksync.cjs +14 -0
- package/src/zksync.d.ts +3 -0
- package/src/zksync.js +4 -0
- package/src/lib/functions/createPopupOpener/createPopupOpener.d.ts +0 -18
- package/src/lib/functions/createPopupOpener/index.d.ts +0 -1
- package/src/lib/functions/createPopupOpener/utils/mapErrorFromPopup.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.19.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.19.3...v4.19.4) (2025-05-31)
|
|
3
|
+
|
|
4
|
+
### [4.19.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.19.2...v4.19.3) (2025-05-28)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* rerender issue with Slush wallet pop up appearing multiple times ([#8817](https://github.com/dynamic-labs/dynamic-auth/issues/8817)) ([bea0da6](https://github.com/dynamic-labs/dynamic-auth/commit/bea0da647bab983610ebbf18a6ca66ba0ac569bf))
|
|
10
|
+
|
|
2
11
|
### [4.19.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.19.1...v4.19.2) (2025-05-27)
|
|
3
12
|
|
|
4
13
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/global-wallet-client",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.4",
|
|
4
4
|
"description": "Core package for building Dynamic's Global Wallet",
|
|
5
5
|
"author": "Dynamic Labs, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
],
|
|
20
20
|
"features": [
|
|
21
21
|
"./src/features.d.ts"
|
|
22
|
+
],
|
|
23
|
+
"zksync": [
|
|
24
|
+
"./src/zksync.d.ts"
|
|
22
25
|
]
|
|
23
26
|
}
|
|
24
27
|
},
|
|
@@ -43,16 +46,21 @@
|
|
|
43
46
|
"import": "./src/features.js",
|
|
44
47
|
"default": "./src/features.cjs"
|
|
45
48
|
},
|
|
49
|
+
"./zksync": {
|
|
50
|
+
"types": "./src/zksync.d.ts",
|
|
51
|
+
"import": "./src/zksync.js",
|
|
52
|
+
"default": "./src/zksync.cjs"
|
|
53
|
+
},
|
|
46
54
|
"./package.json": "./package.json"
|
|
47
55
|
},
|
|
48
56
|
"homepage": "https://www.dynamic.xyz/",
|
|
49
57
|
"dependencies": {
|
|
50
|
-
"@dynamic-labs/assert-package-version": "4.19.
|
|
51
|
-
"@dynamic-labs/logger": "4.19.
|
|
52
|
-
"@dynamic-labs/message-transport": "4.19.
|
|
53
|
-
"@dynamic-labs/store": "4.19.
|
|
54
|
-
"@dynamic-labs/types": "4.19.
|
|
55
|
-
"@dynamic-labs/utils": "4.19.
|
|
58
|
+
"@dynamic-labs/assert-package-version": "4.19.4",
|
|
59
|
+
"@dynamic-labs/logger": "4.19.4",
|
|
60
|
+
"@dynamic-labs/message-transport": "4.19.4",
|
|
61
|
+
"@dynamic-labs/store": "4.19.4",
|
|
62
|
+
"@dynamic-labs/types": "4.19.4",
|
|
63
|
+
"@dynamic-labs/utils": "4.19.4",
|
|
56
64
|
"eventemitter3": "5.0.1"
|
|
57
65
|
},
|
|
58
66
|
"peerDependencies": {
|
|
@@ -61,12 +69,16 @@
|
|
|
61
69
|
"@solana/wallet-standard-features": "^1.2.0",
|
|
62
70
|
"@wallet-standard/features": "^1.0.3",
|
|
63
71
|
"@wallet-standard/base": "^1.0.1",
|
|
72
|
+
"zksync-sso": "0.2.0",
|
|
64
73
|
"@wallet-standard/wallet": "^1.1.0"
|
|
65
74
|
},
|
|
66
75
|
"peerDependenciesMeta": {
|
|
67
76
|
"viem": {
|
|
68
77
|
"optional": true
|
|
69
78
|
},
|
|
79
|
+
"zksync-sso": {
|
|
80
|
+
"optional": true
|
|
81
|
+
},
|
|
70
82
|
"@solana/web3.js": {
|
|
71
83
|
"optional": true
|
|
72
84
|
},
|
|
@@ -8,32 +8,25 @@ var logger = require('@dynamic-labs/logger');
|
|
|
8
8
|
var fakeStorage = require('../../constants/fakeStorage/fakeStorage.cjs');
|
|
9
9
|
var createClientStore = require('../createClientStore/createClientStore.cjs');
|
|
10
10
|
var isSSR = require('../../functions/isSSR/isSSR.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var createPopupOpener = require('../../functions/createPopupOpener/createPopupOpener.cjs');
|
|
11
|
+
var createRegistry = require('../../functions/createRegistry/createRegistry.cjs');
|
|
12
|
+
var createWalletOpener = require('../../functions/createWalletOpener/createWalletOpener.cjs');
|
|
14
13
|
|
|
15
14
|
const createCore = ({ environmentId, popupInfo, developmentOptions, }) => {
|
|
16
|
-
var _a;
|
|
17
15
|
const eventEmitter = new eventemitter3.EventEmitter();
|
|
18
16
|
const logger$1 = new logger.Logger('@dynamic-labs/global-wallet-client');
|
|
17
|
+
const registry = createRegistry.createRegistry();
|
|
19
18
|
const store = createClientStore.createClientStore({
|
|
20
19
|
environmentId,
|
|
21
20
|
storage: isSSR.isSSR() ? fakeStorage.fakeStorage : localStorage,
|
|
22
21
|
});
|
|
23
|
-
const
|
|
24
|
-
const popupUrl = postfixPopupUrlWithVersion
|
|
25
|
-
? addVersionPostfixToUrl.addVersionPostfixToUrl(_package.version, popupInfo.url)
|
|
26
|
-
: popupInfo.url;
|
|
27
|
-
const request = createPopupOpener.createPopupOpener({
|
|
28
|
-
environmentId,
|
|
29
|
-
onError: (error) => eventEmitter.emit('error', error),
|
|
30
|
-
popupHeight: popupInfo.height,
|
|
31
|
-
popupUrl,
|
|
32
|
-
popupWidth: popupInfo.width,
|
|
33
|
-
});
|
|
22
|
+
const request = createWalletOpener.createWalletOpener(registry);
|
|
34
23
|
return {
|
|
24
|
+
developmentOptions,
|
|
25
|
+
environmentId,
|
|
35
26
|
eventEmitter,
|
|
36
27
|
logger: logger$1,
|
|
28
|
+
popupInfo,
|
|
29
|
+
registry,
|
|
37
30
|
request,
|
|
38
31
|
store,
|
|
39
32
|
};
|
|
@@ -3,12 +3,17 @@ import { Logger } from '@dynamic-labs/logger';
|
|
|
3
3
|
import { ClientStore } from '../createClientStore';
|
|
4
4
|
import { ClientEventEmitterEvents } from '../types';
|
|
5
5
|
import { DevelopmentOptions, PopupInfo } from '../../types';
|
|
6
|
-
import {
|
|
6
|
+
import { Registry } from '../../functions/createRegistry/createRegistry';
|
|
7
|
+
import { type WalletOpener } from '../../functions/createWalletOpener';
|
|
7
8
|
export type Core = {
|
|
8
9
|
eventEmitter: EventEmitter<ClientEventEmitterEvents>;
|
|
9
10
|
logger: Logger;
|
|
10
|
-
request: PopupOpener;
|
|
11
11
|
store: ClientStore;
|
|
12
|
+
popupInfo: PopupInfo;
|
|
13
|
+
developmentOptions: DevelopmentOptions;
|
|
14
|
+
environmentId: string;
|
|
15
|
+
registry: Registry;
|
|
16
|
+
request: WalletOpener;
|
|
12
17
|
};
|
|
13
18
|
type CreateCoreProps = {
|
|
14
19
|
environmentId: string;
|
|
@@ -4,32 +4,25 @@ import { Logger } from '@dynamic-labs/logger';
|
|
|
4
4
|
import { fakeStorage } from '../../constants/fakeStorage/fakeStorage.js';
|
|
5
5
|
import { createClientStore } from '../createClientStore/createClientStore.js';
|
|
6
6
|
import { isSSR } from '../../functions/isSSR/isSSR.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { createPopupOpener } from '../../functions/createPopupOpener/createPopupOpener.js';
|
|
7
|
+
import { createRegistry } from '../../functions/createRegistry/createRegistry.js';
|
|
8
|
+
import { createWalletOpener } from '../../functions/createWalletOpener/createWalletOpener.js';
|
|
10
9
|
|
|
11
10
|
const createCore = ({ environmentId, popupInfo, developmentOptions, }) => {
|
|
12
|
-
var _a;
|
|
13
11
|
const eventEmitter = new EventEmitter();
|
|
14
12
|
const logger = new Logger('@dynamic-labs/global-wallet-client');
|
|
13
|
+
const registry = createRegistry();
|
|
15
14
|
const store = createClientStore({
|
|
16
15
|
environmentId,
|
|
17
16
|
storage: isSSR() ? fakeStorage : localStorage,
|
|
18
17
|
});
|
|
19
|
-
const
|
|
20
|
-
const popupUrl = postfixPopupUrlWithVersion
|
|
21
|
-
? addVersionPostfixToUrl(version, popupInfo.url)
|
|
22
|
-
: popupInfo.url;
|
|
23
|
-
const request = createPopupOpener({
|
|
24
|
-
environmentId,
|
|
25
|
-
onError: (error) => eventEmitter.emit('error', error),
|
|
26
|
-
popupHeight: popupInfo.height,
|
|
27
|
-
popupUrl,
|
|
28
|
-
popupWidth: popupInfo.width,
|
|
29
|
-
});
|
|
18
|
+
const request = createWalletOpener(registry);
|
|
30
19
|
return {
|
|
20
|
+
developmentOptions,
|
|
21
|
+
environmentId,
|
|
31
22
|
eventEmitter,
|
|
32
23
|
logger,
|
|
24
|
+
popupInfo,
|
|
25
|
+
registry,
|
|
33
26
|
request,
|
|
34
27
|
store,
|
|
35
28
|
};
|
|
@@ -9,6 +9,7 @@ var onEvent = require('../../functions/onEvent/onEvent.cjs');
|
|
|
9
9
|
var disconnect = require('../../functions/disconnect/disconnect.cjs');
|
|
10
10
|
var DisconnectError = require('../../errors/DisconnectError.cjs');
|
|
11
11
|
var assignClient = require('../assignClient/assignClient.cjs');
|
|
12
|
+
var addWebWalletOpenerService = require('../../functions/addWebWalletOpenerService/addWebWalletOpenerService.cjs');
|
|
12
13
|
|
|
13
14
|
const createGlobalWalletClient = ({ environmentId, popup: popupInfo, developmentOptions = {}, }) => {
|
|
14
15
|
const core = createCore.createCore({
|
|
@@ -29,6 +30,7 @@ const createGlobalWalletClient = ({ environmentId, popup: popupInfo, development
|
|
|
29
30
|
disconnect.disconnect(clientWithCore);
|
|
30
31
|
}
|
|
31
32
|
});
|
|
33
|
+
addWebWalletOpenerService.addWebWalletOpenerService(clientWithCore);
|
|
32
34
|
return clientWithCore;
|
|
33
35
|
};
|
|
34
36
|
|
|
@@ -5,6 +5,7 @@ import { onEvent } from '../../functions/onEvent/onEvent.js';
|
|
|
5
5
|
import { disconnect } from '../../functions/disconnect/disconnect.js';
|
|
6
6
|
import { DisconnectError } from '../../errors/DisconnectError.js';
|
|
7
7
|
import { assignClient } from '../assignClient/assignClient.js';
|
|
8
|
+
import { addWebWalletOpenerService } from '../../functions/addWebWalletOpenerService/addWebWalletOpenerService.js';
|
|
8
9
|
|
|
9
10
|
const createGlobalWalletClient = ({ environmentId, popup: popupInfo, developmentOptions = {}, }) => {
|
|
10
11
|
const core = createCore({
|
|
@@ -25,6 +26,7 @@ const createGlobalWalletClient = ({ environmentId, popup: popupInfo, development
|
|
|
25
26
|
disconnect(clientWithCore);
|
|
26
27
|
}
|
|
27
28
|
});
|
|
29
|
+
addWebWalletOpenerService(clientWithCore);
|
|
28
30
|
return clientWithCore;
|
|
29
31
|
};
|
|
30
32
|
|
|
@@ -8,12 +8,12 @@ var viem = require('viem');
|
|
|
8
8
|
var eventemitter3 = require('eventemitter3');
|
|
9
9
|
require('@dynamic-labs/logger');
|
|
10
10
|
require('@dynamic-labs/store');
|
|
11
|
+
var onEvent = require('../../../functions/onEvent/onEvent.cjs');
|
|
12
|
+
var disconnect = require('../../../functions/disconnect/disconnect.cjs');
|
|
13
|
+
var DisconnectError = require('../../../errors/DisconnectError.cjs');
|
|
11
14
|
require('@dynamic-labs/utils');
|
|
12
15
|
var logger = require('../../../constants/logger.cjs');
|
|
13
|
-
var DisconnectError = require('../../../errors/DisconnectError.cjs');
|
|
14
16
|
var PopupClosedError = require('../../../errors/PopupClosedError.cjs');
|
|
15
|
-
var onEvent = require('../../../functions/onEvent/onEvent.cjs');
|
|
16
|
-
var disconnect = require('../../../functions/disconnect/disconnect.cjs');
|
|
17
17
|
var getCore = require('../../../client/getCore/getCore.cjs');
|
|
18
18
|
var isEthereumNetworkSupported = require('../../../functions/isEthereumNetworkSupported/isEthereumNetworkSupported.cjs');
|
|
19
19
|
var connect = require('../../../functions/connect/connect.cjs');
|
|
@@ -154,13 +154,13 @@ const handleMethodInPopup = (_a) => _tslib.__awaiter(void 0, [_a], void 0, funct
|
|
|
154
154
|
}
|
|
155
155
|
const { data } = yield getCore.getCore(client)
|
|
156
156
|
.request({
|
|
157
|
-
|
|
158
|
-
params: {
|
|
157
|
+
args: {
|
|
159
158
|
chainId: currentEthereumNetworkId,
|
|
160
159
|
method,
|
|
161
160
|
params,
|
|
162
161
|
},
|
|
163
|
-
|
|
162
|
+
connection: getActiveConnection.getActiveConnection(client),
|
|
163
|
+
name: 'eth-request',
|
|
164
164
|
})
|
|
165
165
|
.catch(mapErrorToStandard);
|
|
166
166
|
return data;
|
|
@@ -4,12 +4,12 @@ import { toHex, ProviderDisconnectedError, http, UnsupportedProviderMethodError,
|
|
|
4
4
|
import { EventEmitter } from 'eventemitter3';
|
|
5
5
|
import '@dynamic-labs/logger';
|
|
6
6
|
import '@dynamic-labs/store';
|
|
7
|
+
import { onEvent } from '../../../functions/onEvent/onEvent.js';
|
|
8
|
+
import { disconnect } from '../../../functions/disconnect/disconnect.js';
|
|
9
|
+
import { DisconnectError } from '../../../errors/DisconnectError.js';
|
|
7
10
|
import '@dynamic-labs/utils';
|
|
8
11
|
import { logger } from '../../../constants/logger.js';
|
|
9
|
-
import { DisconnectError } from '../../../errors/DisconnectError.js';
|
|
10
12
|
import { PopupClosedError } from '../../../errors/PopupClosedError.js';
|
|
11
|
-
import { onEvent } from '../../../functions/onEvent/onEvent.js';
|
|
12
|
-
import { disconnect } from '../../../functions/disconnect/disconnect.js';
|
|
13
13
|
import { getCore } from '../../../client/getCore/getCore.js';
|
|
14
14
|
import { isEthereumNetworkSupported } from '../../../functions/isEthereumNetworkSupported/isEthereumNetworkSupported.js';
|
|
15
15
|
import { connect } from '../../../functions/connect/connect.js';
|
|
@@ -150,13 +150,13 @@ const handleMethodInPopup = (_a) => __awaiter(void 0, [_a], void 0, function* ({
|
|
|
150
150
|
}
|
|
151
151
|
const { data } = yield getCore(client)
|
|
152
152
|
.request({
|
|
153
|
-
|
|
154
|
-
params: {
|
|
153
|
+
args: {
|
|
155
154
|
chainId: currentEthereumNetworkId,
|
|
156
155
|
method,
|
|
157
156
|
params,
|
|
158
157
|
},
|
|
159
|
-
|
|
158
|
+
connection: getActiveConnection(client),
|
|
159
|
+
name: 'eth-request',
|
|
160
160
|
})
|
|
161
161
|
.catch(mapErrorToStandard);
|
|
162
162
|
return data;
|
|
@@ -5,20 +5,39 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var utils = require('@dynamic-labs/utils');
|
|
8
|
+
require('eventemitter3');
|
|
9
|
+
require('@dynamic-labs/logger');
|
|
10
|
+
require('@dynamic-labs/store');
|
|
11
|
+
require('../../errors/DisconnectError.cjs');
|
|
12
|
+
var addVersionPostfixToUrl = require('../addVersionPostfixToUrl/addVersionPostfixToUrl.cjs');
|
|
13
|
+
var _package = require('../../../../package.cjs');
|
|
14
|
+
var getCenteredPopupFeatures = require('../getCenteredPopupFeatures/getCenteredPopupFeatures.cjs');
|
|
15
|
+
var mergeAndEncryptParams = require('../mergeAndEncryptParams/mergeAndEncryptParams.cjs');
|
|
8
16
|
var waitForPopupResponse = require('../waitForPopupResponse/waitForPopupResponse.cjs');
|
|
9
17
|
var onPopupClose = require('../onPopupClose/onPopupClose.cjs');
|
|
10
|
-
var mergeAndEncryptParams = require('../mergeAndEncryptParams/mergeAndEncryptParams.cjs');
|
|
11
|
-
var getCenteredPopupFeatures = require('../getCenteredPopupFeatures/getCenteredPopupFeatures.cjs');
|
|
12
18
|
var PopupClosedError = require('../../errors/PopupClosedError.cjs');
|
|
13
|
-
var
|
|
19
|
+
var getCore = require('../../client/getCore/getCore.cjs');
|
|
14
20
|
|
|
15
|
-
const
|
|
16
|
-
|
|
21
|
+
const popupActionTimeout = 1000;
|
|
22
|
+
/**
|
|
23
|
+
* Adds a web wallet opener service to the client.
|
|
24
|
+
* This service is used to open a popup to connect a wallet
|
|
25
|
+
* and other wallet-related actions.
|
|
26
|
+
*/
|
|
27
|
+
const addWebWalletOpenerService = (client, globalWindow = global.window) => {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
const { developmentOptions, popupInfo, logger, registry, environmentId, eventEmitter, } = getCore.getCore(client);
|
|
30
|
+
const popupHeight = (_a = popupInfo.height) !== null && _a !== void 0 ? _a : 640;
|
|
31
|
+
const popupWidth = (_b = popupInfo.width) !== null && _b !== void 0 ? _b : 420;
|
|
17
32
|
let popup = null;
|
|
18
33
|
let didOpenPopup = false;
|
|
19
34
|
let lastActionId = null;
|
|
35
|
+
const postfixPopupUrlWithVersion = (_c = developmentOptions.postfixPopupUrlWithVersion) !== null && _c !== void 0 ? _c : true;
|
|
36
|
+
const popupUrl = postfixPopupUrlWithVersion
|
|
37
|
+
? addVersionPostfixToUrl.addVersionPostfixToUrl(_package.version, popupInfo.url)
|
|
38
|
+
: popupInfo.url;
|
|
20
39
|
const closePopup = () => {
|
|
21
|
-
logger.
|
|
40
|
+
logger.logVerboseTroubleshootingMessage('closePopup', { lastActionId });
|
|
22
41
|
popup === null || popup === void 0 ? void 0 : popup.close();
|
|
23
42
|
popup = null;
|
|
24
43
|
didOpenPopup = false;
|
|
@@ -30,10 +49,10 @@ onError, globalWindow = global.window, }) => {
|
|
|
30
49
|
if (typeof globalWindow !== 'undefined') {
|
|
31
50
|
globalWindow.addEventListener('beforeunload', closePopup);
|
|
32
51
|
}
|
|
33
|
-
|
|
34
|
-
logger.
|
|
35
|
-
|
|
36
|
-
|
|
52
|
+
const popupOpener = (_d) => _tslib.__awaiter(void 0, [_d], void 0, function* ({ args, name, connection, }) {
|
|
53
|
+
logger.logVerboseTroubleshootingMessage('new popup action', {
|
|
54
|
+
args,
|
|
55
|
+
name,
|
|
37
56
|
});
|
|
38
57
|
// Used as a unique identifier for the action
|
|
39
58
|
const actionId = new Date().getTime();
|
|
@@ -41,7 +60,7 @@ onError, globalWindow = global.window, }) => {
|
|
|
41
60
|
const popupFinalUrl = new URL(popupUrl);
|
|
42
61
|
const resultDeferredPromise = new utils.DeferredPromise();
|
|
43
62
|
// Setup popup URL and data
|
|
44
|
-
popupFinalUrl.hash = `/${
|
|
63
|
+
popupFinalUrl.hash = `/${name}`;
|
|
45
64
|
popupFinalUrl.searchParams.set('provider_env_id', environmentId);
|
|
46
65
|
// TODO: use PlatformService
|
|
47
66
|
popupFinalUrl.searchParams.set('requester_origin', globalWindow.location.origin);
|
|
@@ -54,8 +73,8 @@ onError, globalWindow = global.window, }) => {
|
|
|
54
73
|
popup = globalWindow.open('', '_blank', features);
|
|
55
74
|
}
|
|
56
75
|
// Encrypt params if active connection is present
|
|
57
|
-
if (
|
|
58
|
-
yield mergeAndEncryptParams.mergeAndEncryptParams(popupFinalUrl,
|
|
76
|
+
if (args) {
|
|
77
|
+
yield mergeAndEncryptParams.mergeAndEncryptParams(popupFinalUrl, args, connection);
|
|
59
78
|
}
|
|
60
79
|
if (popup === null) {
|
|
61
80
|
throw new Error('Failed to open popup');
|
|
@@ -91,7 +110,7 @@ onError, globalWindow = global.window, }) => {
|
|
|
91
110
|
didOpenPopup = true;
|
|
92
111
|
return resultDeferredPromise.promise
|
|
93
112
|
.then((result) => {
|
|
94
|
-
logger.
|
|
113
|
+
logger.logVerboseTroubleshootingMessage('popup action result', {
|
|
95
114
|
actionId,
|
|
96
115
|
lastActionId,
|
|
97
116
|
result,
|
|
@@ -99,12 +118,12 @@ onError, globalWindow = global.window, }) => {
|
|
|
99
118
|
return result;
|
|
100
119
|
})
|
|
101
120
|
.catch((err) => {
|
|
102
|
-
logger.
|
|
121
|
+
logger.logVerboseTroubleshootingMessage('popup action error', {
|
|
103
122
|
actionId,
|
|
104
123
|
err,
|
|
105
124
|
lastActionId,
|
|
106
125
|
});
|
|
107
|
-
|
|
126
|
+
eventEmitter.emit('error', err);
|
|
108
127
|
closePopup();
|
|
109
128
|
throw err;
|
|
110
129
|
})
|
|
@@ -120,6 +139,9 @@ onError, globalWindow = global.window, }) => {
|
|
|
120
139
|
}, popupActionTimeout);
|
|
121
140
|
});
|
|
122
141
|
});
|
|
142
|
+
registry.set('walletOpenerService', {
|
|
143
|
+
openWallet: popupOpener,
|
|
144
|
+
});
|
|
123
145
|
};
|
|
124
146
|
|
|
125
|
-
exports.
|
|
147
|
+
exports.addWebWalletOpenerService = addWebWalletOpenerService;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GlobalWalletClient } from '../../client';
|
|
2
|
+
/**
|
|
3
|
+
* Adds a web wallet opener service to the client.
|
|
4
|
+
* This service is used to open a popup to connect a wallet
|
|
5
|
+
* and other wallet-related actions.
|
|
6
|
+
*/
|
|
7
|
+
export declare const addWebWalletOpenerService: (client: GlobalWalletClient, globalWindow?: Window) => void;
|
|
@@ -1,18 +1,37 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
3
|
import { DeferredPromise, isEncryptedMessage, decryptMessage } from '@dynamic-labs/utils';
|
|
4
|
+
import 'eventemitter3';
|
|
5
|
+
import '@dynamic-labs/logger';
|
|
6
|
+
import '@dynamic-labs/store';
|
|
7
|
+
import '../../errors/DisconnectError.js';
|
|
8
|
+
import { addVersionPostfixToUrl } from '../addVersionPostfixToUrl/addVersionPostfixToUrl.js';
|
|
9
|
+
import { version } from '../../../../package.js';
|
|
10
|
+
import { getCenteredPopupFeatures } from '../getCenteredPopupFeatures/getCenteredPopupFeatures.js';
|
|
11
|
+
import { mergeAndEncryptParams } from '../mergeAndEncryptParams/mergeAndEncryptParams.js';
|
|
4
12
|
import { waitForPopupResponse } from '../waitForPopupResponse/waitForPopupResponse.js';
|
|
5
13
|
import { onPopupClose } from '../onPopupClose/onPopupClose.js';
|
|
6
|
-
import { mergeAndEncryptParams } from '../mergeAndEncryptParams/mergeAndEncryptParams.js';
|
|
7
|
-
import { getCenteredPopupFeatures } from '../getCenteredPopupFeatures/getCenteredPopupFeatures.js';
|
|
8
14
|
import { PopupClosedError } from '../../errors/PopupClosedError.js';
|
|
9
|
-
import {
|
|
15
|
+
import { getCore } from '../../client/getCore/getCore.js';
|
|
10
16
|
|
|
11
|
-
const
|
|
12
|
-
|
|
17
|
+
const popupActionTimeout = 1000;
|
|
18
|
+
/**
|
|
19
|
+
* Adds a web wallet opener service to the client.
|
|
20
|
+
* This service is used to open a popup to connect a wallet
|
|
21
|
+
* and other wallet-related actions.
|
|
22
|
+
*/
|
|
23
|
+
const addWebWalletOpenerService = (client, globalWindow = global.window) => {
|
|
24
|
+
var _a, _b, _c;
|
|
25
|
+
const { developmentOptions, popupInfo, logger, registry, environmentId, eventEmitter, } = getCore(client);
|
|
26
|
+
const popupHeight = (_a = popupInfo.height) !== null && _a !== void 0 ? _a : 640;
|
|
27
|
+
const popupWidth = (_b = popupInfo.width) !== null && _b !== void 0 ? _b : 420;
|
|
13
28
|
let popup = null;
|
|
14
29
|
let didOpenPopup = false;
|
|
15
30
|
let lastActionId = null;
|
|
31
|
+
const postfixPopupUrlWithVersion = (_c = developmentOptions.postfixPopupUrlWithVersion) !== null && _c !== void 0 ? _c : true;
|
|
32
|
+
const popupUrl = postfixPopupUrlWithVersion
|
|
33
|
+
? addVersionPostfixToUrl(version, popupInfo.url)
|
|
34
|
+
: popupInfo.url;
|
|
16
35
|
const closePopup = () => {
|
|
17
36
|
logger.logVerboseTroubleshootingMessage('closePopup', { lastActionId });
|
|
18
37
|
popup === null || popup === void 0 ? void 0 : popup.close();
|
|
@@ -26,10 +45,10 @@ onError, globalWindow = global.window, }) => {
|
|
|
26
45
|
if (typeof globalWindow !== 'undefined') {
|
|
27
46
|
globalWindow.addEventListener('beforeunload', closePopup);
|
|
28
47
|
}
|
|
29
|
-
|
|
48
|
+
const popupOpener = (_d) => __awaiter(void 0, [_d], void 0, function* ({ args, name, connection, }) {
|
|
30
49
|
logger.logVerboseTroubleshootingMessage('new popup action', {
|
|
31
|
-
|
|
32
|
-
|
|
50
|
+
args,
|
|
51
|
+
name,
|
|
33
52
|
});
|
|
34
53
|
// Used as a unique identifier for the action
|
|
35
54
|
const actionId = new Date().getTime();
|
|
@@ -37,7 +56,7 @@ onError, globalWindow = global.window, }) => {
|
|
|
37
56
|
const popupFinalUrl = new URL(popupUrl);
|
|
38
57
|
const resultDeferredPromise = new DeferredPromise();
|
|
39
58
|
// Setup popup URL and data
|
|
40
|
-
popupFinalUrl.hash = `/${
|
|
59
|
+
popupFinalUrl.hash = `/${name}`;
|
|
41
60
|
popupFinalUrl.searchParams.set('provider_env_id', environmentId);
|
|
42
61
|
// TODO: use PlatformService
|
|
43
62
|
popupFinalUrl.searchParams.set('requester_origin', globalWindow.location.origin);
|
|
@@ -50,8 +69,8 @@ onError, globalWindow = global.window, }) => {
|
|
|
50
69
|
popup = globalWindow.open('', '_blank', features);
|
|
51
70
|
}
|
|
52
71
|
// Encrypt params if active connection is present
|
|
53
|
-
if (
|
|
54
|
-
yield mergeAndEncryptParams(popupFinalUrl,
|
|
72
|
+
if (args) {
|
|
73
|
+
yield mergeAndEncryptParams(popupFinalUrl, args, connection);
|
|
55
74
|
}
|
|
56
75
|
if (popup === null) {
|
|
57
76
|
throw new Error('Failed to open popup');
|
|
@@ -100,7 +119,7 @@ onError, globalWindow = global.window, }) => {
|
|
|
100
119
|
err,
|
|
101
120
|
lastActionId,
|
|
102
121
|
});
|
|
103
|
-
|
|
122
|
+
eventEmitter.emit('error', err);
|
|
104
123
|
closePopup();
|
|
105
124
|
throw err;
|
|
106
125
|
})
|
|
@@ -116,6 +135,9 @@ onError, globalWindow = global.window, }) => {
|
|
|
116
135
|
}, popupActionTimeout);
|
|
117
136
|
});
|
|
118
137
|
});
|
|
138
|
+
registry.set('walletOpenerService', {
|
|
139
|
+
openWallet: popupOpener,
|
|
140
|
+
});
|
|
119
141
|
};
|
|
120
142
|
|
|
121
|
-
export {
|
|
143
|
+
export { addWebWalletOpenerService };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { addWebWalletOpenerService } from './addWebWalletOpenerService';
|
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
require('eventemitter3');
|
|
7
7
|
require('@dynamic-labs/logger');
|
|
8
8
|
require('@dynamic-labs/store');
|
|
9
|
+
require('../../errors/DisconnectError.cjs');
|
|
9
10
|
require('../../../../_virtual/_tslib.cjs');
|
|
10
11
|
require('@dynamic-labs/utils');
|
|
11
12
|
require('../../constants/logger.cjs');
|
|
12
|
-
require('../../errors/DisconnectError.cjs');
|
|
13
13
|
var getCore = require('../../client/getCore/getCore.cjs');
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import 'eventemitter3';
|
|
3
3
|
import '@dynamic-labs/logger';
|
|
4
4
|
import '@dynamic-labs/store';
|
|
5
|
+
import '../../errors/DisconnectError.js';
|
|
5
6
|
import '../../../../_virtual/_tslib.js';
|
|
6
7
|
import '@dynamic-labs/utils';
|
|
7
8
|
import '../../constants/logger.js';
|
|
8
|
-
import '../../errors/DisconnectError.js';
|
|
9
9
|
import { getCore } from '../../client/getCore/getCore.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -8,11 +8,11 @@ var utils = require('@dynamic-labs/utils');
|
|
|
8
8
|
require('eventemitter3');
|
|
9
9
|
require('@dynamic-labs/logger');
|
|
10
10
|
require('@dynamic-labs/store');
|
|
11
|
-
require('../../constants/logger.cjs');
|
|
12
|
-
require('../../errors/DisconnectError.cjs');
|
|
13
11
|
var clearStore = require('../clearStore/clearStore.cjs');
|
|
14
12
|
var getActiveConnection = require('../getActiveConnection/getActiveConnection.cjs');
|
|
13
|
+
require('../../errors/DisconnectError.cjs');
|
|
15
14
|
var assignClient = require('../../client/assignClient/assignClient.cjs');
|
|
15
|
+
require('../../constants/logger.cjs');
|
|
16
16
|
var getCore = require('../../client/getCore/getCore.cjs');
|
|
17
17
|
var setInitialConnectionState = require('../setInitialConnectionState/setInitialConnectionState.cjs');
|
|
18
18
|
|
|
@@ -34,11 +34,11 @@ const connect = (client) => _tslib.__awaiter(void 0, void 0, void 0, function* (
|
|
|
34
34
|
clearStore.clearStore(client);
|
|
35
35
|
const keyPair = yield utils.createKeyPair();
|
|
36
36
|
const data = yield core.request({
|
|
37
|
-
|
|
38
|
-
params: {
|
|
37
|
+
args: {
|
|
39
38
|
receiver_public_key: yield utils.convertPublicKeyCryptoKeyToHex(keyPair.publicKey),
|
|
40
39
|
},
|
|
41
|
-
|
|
40
|
+
connection: getActiveConnection.getActiveConnection(client),
|
|
41
|
+
name: 'connect',
|
|
42
42
|
});
|
|
43
43
|
const { encryptedMessage, expiresAt, iv, providerPublicKey } = data;
|
|
44
44
|
const sharedSecret = yield utils.deriveSharedSecret(keyPair.privateKey, yield utils.convertPublicKeyHexToCryptoKey(providerPublicKey));
|
|
@@ -4,11 +4,11 @@ import { createKeyPair, convertPublicKeyCryptoKeyToHex, deriveSharedSecret, conv
|
|
|
4
4
|
import 'eventemitter3';
|
|
5
5
|
import '@dynamic-labs/logger';
|
|
6
6
|
import '@dynamic-labs/store';
|
|
7
|
-
import '../../constants/logger.js';
|
|
8
|
-
import '../../errors/DisconnectError.js';
|
|
9
7
|
import { clearStore } from '../clearStore/clearStore.js';
|
|
10
8
|
import { getActiveConnection } from '../getActiveConnection/getActiveConnection.js';
|
|
9
|
+
import '../../errors/DisconnectError.js';
|
|
11
10
|
import { assignClient } from '../../client/assignClient/assignClient.js';
|
|
11
|
+
import '../../constants/logger.js';
|
|
12
12
|
import { getCore } from '../../client/getCore/getCore.js';
|
|
13
13
|
import { setInitialConnectionState } from '../setInitialConnectionState/setInitialConnectionState.js';
|
|
14
14
|
|
|
@@ -30,11 +30,11 @@ const connect = (client) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
30
30
|
clearStore(client);
|
|
31
31
|
const keyPair = yield createKeyPair();
|
|
32
32
|
const data = yield core.request({
|
|
33
|
-
|
|
34
|
-
params: {
|
|
33
|
+
args: {
|
|
35
34
|
receiver_public_key: yield convertPublicKeyCryptoKeyToHex(keyPair.publicKey),
|
|
36
35
|
},
|
|
37
|
-
|
|
36
|
+
connection: getActiveConnection(client),
|
|
37
|
+
name: 'connect',
|
|
38
38
|
});
|
|
39
39
|
const { encryptedMessage, expiresAt, iv, providerPublicKey } = data;
|
|
40
40
|
const sharedSecret = yield deriveSharedSecret(keyPair.privateKey, yield convertPublicKeyHexToCryptoKey(providerPublicKey));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
const createRegistry = () => {
|
|
7
|
+
const registry = new Map();
|
|
8
|
+
return {
|
|
9
|
+
find: (key) => {
|
|
10
|
+
const value = registry.get(key);
|
|
11
|
+
return value;
|
|
12
|
+
},
|
|
13
|
+
get: (key) => {
|
|
14
|
+
const value = registry.get(key);
|
|
15
|
+
if (!value) {
|
|
16
|
+
throw new Error(`Value not found for key: ${key}`);
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
},
|
|
20
|
+
set: (key, value) => registry.set(key, value),
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
exports.createRegistry = createRegistry;
|