@dynamic-labs/multi-wallet 0.14.30 → 0.14.31
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/package.json +4 -2
- package/src/wallets/walletConnect/walletConnectV2.d.ts +2 -1
- package/src/wallets/walletConnect/walletConnectV2.js +93 -17
- package/src/wallets/walletConnect/walletConnectV2.js.map +1 -1
- package/src/wallets/clients/walletConnect/walletConnectV2.d.ts +0 -10
- package/src/wallets/clients/walletConnect/walletConnectV2.js +0 -104
- package/src/wallets/clients/walletConnect/walletConnectV2.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/multi-wallet",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.31",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -21,9 +21,11 @@
|
|
|
21
21
|
"@onflow/fcl": "^1.3.2",
|
|
22
22
|
"get-starknet": "^1.5.0",
|
|
23
23
|
"@walletconnect/ethereum-provider": "^1.8.0",
|
|
24
|
-
"@walletconnect/types": "^2.2.1",
|
|
25
24
|
"tslib": "^2.4.1"
|
|
26
25
|
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@walletconnect/types": "^2.2.1"
|
|
28
|
+
},
|
|
27
29
|
"description": "Multi-wallet is a toolkit for working with many different wallets to create and verify signatures",
|
|
28
30
|
"bugs": {
|
|
29
31
|
"url": "https://github.com/dynamic-labs/DynamicAuth/issues"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import SignClient from '@walletconnect/sign-client';
|
|
1
2
|
import { EvmNetwork } from '../ethereum/evm-network';
|
|
2
3
|
import { EthProvider } from '../ethereum/ethProvider';
|
|
3
4
|
import { WalletConnector, Chain, FetchPublicAddressOpts, WalletEventListeners } from '../wallet-connector';
|
|
@@ -16,7 +17,7 @@ declare class WalletConnectV2 extends EthProvider implements WalletConnector {
|
|
|
16
17
|
walletName: string;
|
|
17
18
|
});
|
|
18
19
|
get key(): string;
|
|
19
|
-
getClient(): Promise<
|
|
20
|
+
getClient(): Promise<SignClient>;
|
|
20
21
|
supportsNetworkSwitching(): boolean;
|
|
21
22
|
setupEventListeners(listeners: WalletEventListeners): void;
|
|
22
23
|
teardownEventListeners(): void;
|
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
const sign_client_1 = tslib_1.__importDefault(require("@walletconnect/sign-client"));
|
|
4
5
|
const normalizeWalletName_1 = require("../../utils/normalizeWalletName");
|
|
5
6
|
const walletConnect_1 = require("../../utils/walletConnect");
|
|
6
|
-
const walletConnectV2_1 = require("../clients/walletConnect/walletConnectV2");
|
|
7
7
|
const ethProvider_1 = require("../ethereum/ethProvider");
|
|
8
8
|
const console_1 = tslib_1.__importDefault(require("../../utils/console"));
|
|
9
|
+
const isMobile_1 = require("../../utils/isMobile");
|
|
10
|
+
const walletConnect_2 = require("../clients/walletConnect");
|
|
11
|
+
let signClient;
|
|
12
|
+
const getInitializedSignClient = (signClientOpts) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
if (!signClient) {
|
|
14
|
+
signClient = yield sign_client_1.default.init(signClientOpts);
|
|
15
|
+
}
|
|
16
|
+
return signClient;
|
|
17
|
+
});
|
|
18
|
+
const performPlatformSpecificConnectionMethod = (uri, metadata, opts) => {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
if ((0, isMobile_1.isMobile)()) {
|
|
21
|
+
const deepLink = (0, walletConnect_2.getDeepLink)(uri, metadata);
|
|
22
|
+
window.location.href = deepLink;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.desktop) === null || _a === void 0 ? void 0 : _a.native) {
|
|
26
|
+
const desktopUri = (0, walletConnect_2.getDeepLink)(uri, metadata);
|
|
27
|
+
(_b = opts === null || opts === void 0 ? void 0 : opts.onDesktopUri) === null || _b === void 0 ? void 0 : _b.call(opts, desktopUri);
|
|
28
|
+
}
|
|
29
|
+
(_c = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _c === void 0 ? void 0 : _c.call(opts, uri);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
9
32
|
const sessionTopicKey = (walletName) => `dynamic-wc2-session-topic-${walletName}`;
|
|
10
33
|
class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
11
34
|
constructor({ evmNetworks, projectId = '576019bf293b1e85c695806832b20fe7', walletName, }) {
|
|
@@ -24,7 +47,7 @@ class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
|
24
47
|
}
|
|
25
48
|
getClient() {
|
|
26
49
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
return
|
|
50
|
+
return getInitializedSignClient({
|
|
28
51
|
projectId: this.projectId,
|
|
29
52
|
});
|
|
30
53
|
});
|
|
@@ -33,14 +56,24 @@ class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
|
33
56
|
return false;
|
|
34
57
|
}
|
|
35
58
|
setupEventListeners(listeners) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
59
|
+
if (!signClient) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
signClient.on('session_event', (args) => {
|
|
63
|
+
console_1.default.log('session_event', args);
|
|
64
|
+
});
|
|
65
|
+
signClient.on('session_delete', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
var _a;
|
|
67
|
+
localStorage.removeItem(sessionTopicKey(this.name));
|
|
68
|
+
yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
|
|
69
|
+
}));
|
|
41
70
|
}
|
|
42
71
|
teardownEventListeners() {
|
|
43
|
-
|
|
72
|
+
if (!signClient) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
signClient.removeAllListeners('session_event');
|
|
76
|
+
signClient.removeAllListeners('session_delete');
|
|
44
77
|
}
|
|
45
78
|
getWeb3Provider() {
|
|
46
79
|
return undefined;
|
|
@@ -59,14 +92,38 @@ class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
|
59
92
|
if (accounts.length) {
|
|
60
93
|
return accounts[0];
|
|
61
94
|
}
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
95
|
+
const client = yield this.getClient();
|
|
96
|
+
const metadata = (0, walletConnect_1.getWalletConnectMetadata)(this.name);
|
|
97
|
+
const { uri, approval } = yield client.connect({
|
|
98
|
+
pairingTopic: undefined,
|
|
99
|
+
relays: undefined,
|
|
100
|
+
requiredNamespaces: {
|
|
101
|
+
// todo: generalize this input based on Dynamic project settings
|
|
102
|
+
eip155: {
|
|
103
|
+
chains: ['eip155:1'],
|
|
104
|
+
events: ['chainChanged', 'accountsChanged'],
|
|
105
|
+
methods: [
|
|
106
|
+
'eth_sendTransaction',
|
|
107
|
+
'eth_signTransaction',
|
|
108
|
+
'eth_sign',
|
|
109
|
+
'personal_sign',
|
|
110
|
+
'eth_signTypedData',
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
if (uri) {
|
|
116
|
+
performPlatformSpecificConnectionMethod(uri, metadata, {
|
|
117
|
+
onDesktopUri: opts === null || opts === void 0 ? void 0 : opts.onDesktopUri,
|
|
118
|
+
onDisplayUri: opts === null || opts === void 0 ? void 0 : opts.onDisplayUri,
|
|
119
|
+
});
|
|
120
|
+
const session = yield approval();
|
|
121
|
+
if (session) {
|
|
122
|
+
localStorage.setItem(sessionTopicKey(this.name), session.topic);
|
|
123
|
+
return session.namespaces.eip155.accounts[0].split(':')[2];
|
|
124
|
+
}
|
|
69
125
|
}
|
|
126
|
+
return undefined;
|
|
70
127
|
});
|
|
71
128
|
}
|
|
72
129
|
signMessage(messageToSign) {
|
|
@@ -75,7 +132,16 @@ class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
|
75
132
|
if (!storedSessionTopic) {
|
|
76
133
|
return;
|
|
77
134
|
}
|
|
78
|
-
|
|
135
|
+
const client = yield this.getClient();
|
|
136
|
+
const session = client.session.get(storedSessionTopic);
|
|
137
|
+
return client.request({
|
|
138
|
+
chainId: 'eip155:1',
|
|
139
|
+
request: {
|
|
140
|
+
method: 'personal_sign',
|
|
141
|
+
params: [messageToSign, session.namespaces.eip155.accounts[0]],
|
|
142
|
+
},
|
|
143
|
+
topic: session.topic,
|
|
144
|
+
});
|
|
79
145
|
});
|
|
80
146
|
}
|
|
81
147
|
proveOwnership(messageToSign) {
|
|
@@ -89,8 +155,18 @@ class WalletConnectV2 extends ethProvider_1.EthProvider {
|
|
|
89
155
|
if (!storedSessionTopic) {
|
|
90
156
|
return;
|
|
91
157
|
}
|
|
158
|
+
if (!signClient) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
92
161
|
try {
|
|
93
|
-
yield
|
|
162
|
+
yield signClient.disconnect({
|
|
163
|
+
// https://github.com/WalletConnect/walletconnect-monorepo/blob/v2.0/packages/utils/src/errors.ts#L87-L90
|
|
164
|
+
reason: {
|
|
165
|
+
code: 6000,
|
|
166
|
+
message: 'User disconnected',
|
|
167
|
+
},
|
|
168
|
+
topic: storedSessionTopic,
|
|
169
|
+
});
|
|
94
170
|
localStorage.removeItem(sessionTopicKey(this.name));
|
|
95
171
|
}
|
|
96
172
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletConnectV2.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/walletConnect/walletConnectV2.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"walletConnectV2.js","sourceRoot":"","sources":["../../../../../../packages/multi-wallet/src/wallets/walletConnect/walletConnectV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import SignClient from '@walletconnect/sign-client';
|
|
2
|
-
import { SignClientTypes } from '@walletconnect/types';
|
|
3
|
-
import { WalletConnectWalletMetadata } from '../../../types';
|
|
4
|
-
import { FetchPublicAddressOpts, WalletEventListeners } from '../../wallet-connector';
|
|
5
|
-
export declare const getInitializedSignClient: (signClientOpts: SignClientTypes.Options) => Promise<SignClient>;
|
|
6
|
-
export declare const fetchWalletConnectPublicAddress: (metadata: WalletConnectWalletMetadata, client: SignClient, opts?: FetchPublicAddressOpts) => Promise<import("@walletconnect/types").SessionTypes.Struct | undefined>;
|
|
7
|
-
export declare const signWalletConnectPersonalMessage: (messageToSign: string, metadata: WalletConnectWalletMetadata, client: SignClient, sessionTopic: string) => Promise<string | undefined>;
|
|
8
|
-
export declare const setupWalletConnectEventListeners: (listeners: WalletEventListeners) => void;
|
|
9
|
-
export declare const teardownWalletConnectEventListeners: () => void;
|
|
10
|
-
export declare const disconnectWalletConnectSession: (sessionTopic: string) => Promise<void>;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.disconnectWalletConnectSession = exports.teardownWalletConnectEventListeners = exports.setupWalletConnectEventListeners = exports.signWalletConnectPersonalMessage = exports.fetchWalletConnectPublicAddress = exports.getInitializedSignClient = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const sign_client_1 = tslib_1.__importDefault(require("@walletconnect/sign-client"));
|
|
6
|
-
const console_1 = tslib_1.__importDefault(require("../../../utils/console"));
|
|
7
|
-
const isMobile_1 = require("../../../utils/isMobile");
|
|
8
|
-
const walletConnect_1 = require("./walletConnect");
|
|
9
|
-
let signClient;
|
|
10
|
-
const getInitializedSignClient = (signClientOpts) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
11
|
-
if (!signClient) {
|
|
12
|
-
signClient = yield sign_client_1.default.init(signClientOpts);
|
|
13
|
-
}
|
|
14
|
-
return signClient;
|
|
15
|
-
});
|
|
16
|
-
exports.getInitializedSignClient = getInitializedSignClient;
|
|
17
|
-
const fetchWalletConnectPublicAddress = (metadata, client, opts) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
18
|
-
var _a, _b, _c, _d;
|
|
19
|
-
const { uri, approval } = yield client.connect({
|
|
20
|
-
pairingTopic: undefined,
|
|
21
|
-
relays: undefined,
|
|
22
|
-
requiredNamespaces: {
|
|
23
|
-
// todo: generalize this input based on Dynamic project settings
|
|
24
|
-
eip155: {
|
|
25
|
-
chains: ['eip155:1'],
|
|
26
|
-
events: ['chainChanged', 'accountsChanged'],
|
|
27
|
-
methods: [
|
|
28
|
-
'eth_sendTransaction',
|
|
29
|
-
'eth_signTransaction',
|
|
30
|
-
'eth_sign',
|
|
31
|
-
'personal_sign',
|
|
32
|
-
'eth_signTypedData',
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
if (uri) {
|
|
38
|
-
if ((0, isMobile_1.isMobile)()) {
|
|
39
|
-
const deepLink = (0, walletConnect_1.getDeepLink)(uri, metadata);
|
|
40
|
-
window.location.href = deepLink;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.desktop) === null || _a === void 0 ? void 0 : _a.native) {
|
|
44
|
-
const desktopUri = (0, walletConnect_1.getDeepLink)(uri, metadata);
|
|
45
|
-
(_b = opts === null || opts === void 0 ? void 0 : opts.onDesktopUri) === null || _b === void 0 ? void 0 : _b.call(opts, desktopUri);
|
|
46
|
-
}
|
|
47
|
-
(_c = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _c === void 0 ? void 0 : _c.call(opts, uri);
|
|
48
|
-
}
|
|
49
|
-
const session = yield approval();
|
|
50
|
-
// TODO: update callback param
|
|
51
|
-
(_d = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _d === void 0 ? void 0 : _d.call(opts, session);
|
|
52
|
-
// TODO: handle multiple accounts
|
|
53
|
-
return session;
|
|
54
|
-
}
|
|
55
|
-
return undefined;
|
|
56
|
-
});
|
|
57
|
-
exports.fetchWalletConnectPublicAddress = fetchWalletConnectPublicAddress;
|
|
58
|
-
const signWalletConnectPersonalMessage = (messageToSign, metadata, client, sessionTopic) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
-
const session = client.session.get(sessionTopic);
|
|
60
|
-
return client.request({
|
|
61
|
-
chainId: 'eip155:1',
|
|
62
|
-
request: {
|
|
63
|
-
method: 'personal_sign',
|
|
64
|
-
params: [messageToSign, session.namespaces.eip155.accounts[0]],
|
|
65
|
-
},
|
|
66
|
-
topic: session.topic,
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
exports.signWalletConnectPersonalMessage = signWalletConnectPersonalMessage;
|
|
70
|
-
const setupWalletConnectEventListeners = (listeners) => {
|
|
71
|
-
if (!signClient) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
signClient.on('session_event', (args) => {
|
|
75
|
-
console_1.default.log('session_event', args);
|
|
76
|
-
});
|
|
77
|
-
if (listeners.onDisconnect) {
|
|
78
|
-
signClient.on('session_delete', listeners.onDisconnect);
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
exports.setupWalletConnectEventListeners = setupWalletConnectEventListeners;
|
|
82
|
-
const teardownWalletConnectEventListeners = () => {
|
|
83
|
-
if (!signClient) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
signClient.removeAllListeners('session_event');
|
|
87
|
-
signClient.removeAllListeners('session_delete');
|
|
88
|
-
};
|
|
89
|
-
exports.teardownWalletConnectEventListeners = teardownWalletConnectEventListeners;
|
|
90
|
-
const disconnectWalletConnectSession = (sessionTopic) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
91
|
-
if (!signClient) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
yield signClient.disconnect({
|
|
95
|
-
// https://github.com/WalletConnect/walletconnect-monorepo/blob/v2.0/packages/utils/src/errors.ts#L87-L90
|
|
96
|
-
reason: {
|
|
97
|
-
code: 6000,
|
|
98
|
-
message: 'User disconnected',
|
|
99
|
-
},
|
|
100
|
-
topic: sessionTopic,
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
exports.disconnectWalletConnectSession = disconnectWalletConnectSession;
|
|
104
|
-
//# sourceMappingURL=walletConnectV2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"walletConnectV2.js","sourceRoot":"","sources":["../../../../../../../packages/multi-wallet/src/wallets/clients/walletConnect/walletConnectV2.ts"],"names":[],"mappings":";;;;AAAA,qFAAoD;AAIpD,6EAA6C;AAC7C,sDAAmD;AAMnD,mDAA8C;AAE9C,IAAI,UAAkC,CAAC;AAEhC,MAAM,wBAAwB,GAAG,CACtC,cAAuC,EACvC,EAAE;IACF,IAAI,CAAC,UAAU,EAAE;QACf,UAAU,GAAG,MAAM,qBAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACpD;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAA,CAAC;AARW,QAAA,wBAAwB,4BAQnC;AAEK,MAAM,+BAA+B,GAAG,CAC7C,QAAqC,EACrC,MAAkB,EAClB,IAA6B,EAC7B,EAAE;;IACF,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAC7C,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,SAAS;QACjB,kBAAkB,EAAE;YAClB,gEAAgE;YAChE,MAAM,EAAE;gBACN,MAAM,EAAE,CAAC,UAAU,CAAC;gBACpB,MAAM,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;gBAC3C,OAAO,EAAE;oBACP,qBAAqB;oBACrB,qBAAqB;oBACrB,UAAU;oBACV,eAAe;oBACf,mBAAmB;iBACpB;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAI,GAAG,EAAE;QACP,IAAI,IAAA,mBAAQ,GAAE,EAAE;YACd,MAAM,QAAQ,GAAG,IAAA,2BAAW,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC;SACjC;aAAM;YACL,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,MAAM,EAAE;gBAC7B,MAAM,UAAU,GAAG,IAAA,2BAAW,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC9C,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,qDAAG,UAAU,CAAC,CAAC;aAClC;YAED,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,qDAAG,GAAG,CAAC,CAAC;SAC3B;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,EAAE,CAAC;QAEjC,8BAA8B;QAC9B,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,qDAAG,OAAc,CAAC,CAAC;QAElC,iCAAiC;QACjC,OAAO,OAAO,CAAC;KAChB;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAA,CAAC;AA/CW,QAAA,+BAA+B,mCA+C1C;AAEK,MAAM,gCAAgC,GAAG,CAC9C,aAAqB,EACrB,QAAqC,EACrC,MAAkB,EAClB,YAAoB,EACS,EAAE;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,OAAO,EAAE,UAAU;QACnB,OAAO,EAAE;YACP,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SAC/D;QACD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAfW,QAAA,gCAAgC,oCAe3C;AAEK,MAAM,gCAAgC,GAAG,CAC9C,SAA+B,EAC/B,EAAE;IACF,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QACtC,iBAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,YAAY,EAAE;QAC1B,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;KACzD;AACH,CAAC,CAAC;AAdW,QAAA,gCAAgC,oCAc3C;AAEK,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,UAAU,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC/C,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC,CAAC;AAPW,QAAA,mCAAmC,uCAO9C;AAEK,MAAM,8BAA8B,GAAG,CAAO,YAAoB,EAAE,EAAE;IAC3E,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,MAAM,UAAU,CAAC,UAAU,CAAC;QAC1B,yGAAyG;QACzG,MAAM,EAAE;YACN,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,mBAAmB;SAC7B;QACD,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAbW,QAAA,8BAA8B,kCAazC"}
|