@meshconnect/uwc-injected-connector 0.14.2 → 0.15.0-snapshot.03fa2e7
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/dist/injected-connector.d.ts +24 -1
- package/dist/injected-connector.d.ts.map +1 -1
- package/dist/injected-connector.js +105 -4
- package/dist/injected-connector.js.map +1 -1
- package/dist/services/connection-manager.d.ts.map +1 -1
- package/dist/services/connection-manager.js +45 -4
- package/dist/services/connection-manager.js.map +1 -1
- package/dist/services/tron/tron-transaction-builder.d.ts.map +1 -1
- package/dist/services/tron/tron-transaction-builder.js +25 -2
- package/dist/services/tron/tron-transaction-builder.js.map +1 -1
- package/package.json +6 -5
- package/src/injected-connector.test.ts +96 -0
- package/src/injected-connector.ts +124 -4
- package/src/services/connection-manager.test.ts +98 -1
- package/src/services/connection-manager.ts +57 -7
- package/src/services/tron/tron-transaction-builder.test.ts +31 -1
- package/src/services/tron/tron-transaction-builder.ts +31 -2
- package/src/services/tron/tron-transaction-service.test.ts +2 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Network, ExtensionInjectedProvider, IntegratedBrowserInjectedProvider, Connector, ConnectorResult, SwitchNetworkResult, Namespace, DetectedEIP6963WalletInfo, DetectedSolanaWalletInfo, DetectedTronWalletInfo, DetectedTonWalletInfo, TransactionRequest, TransactionResult, NetworkRpcMap, EVMCapabilities, SignatureType, EIP712TypedData, WalletMetadata, TonConnectConfig } from '@meshconnect/uwc-types';
|
|
2
|
+
import { type TronConnectorConfig } from '@meshconnect/uwc-tron-connector';
|
|
2
3
|
export declare class InjectedConnector implements Connector {
|
|
3
4
|
private readonly storageService;
|
|
4
5
|
private ethereumService;
|
|
@@ -10,7 +11,18 @@ export declare class InjectedConnector implements Connector {
|
|
|
10
11
|
private transactionService;
|
|
11
12
|
private networkRpcMap;
|
|
12
13
|
private tonConnectManifestUrl;
|
|
13
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Mesh-owned Tron connector. When set (via `tronConnectorConfig`), the Tron
|
|
16
|
+
* namespace is routed through `@meshconnect/uwc-tron-connector` instead of the
|
|
17
|
+
* legacy `window.tronWeb` path; the `tronService` is not consulted for Tron.
|
|
18
|
+
*/
|
|
19
|
+
private tronConnector;
|
|
20
|
+
/**
|
|
21
|
+
* Configured networks, used to resolve the Tron network for cross-namespace
|
|
22
|
+
* Tron auto-connect (see `enrichWithTron`).
|
|
23
|
+
*/
|
|
24
|
+
private networks;
|
|
25
|
+
constructor(networkRpcMap?: NetworkRpcMap, expectedWallets?: WalletMetadata[], tonConnectConfig?: TonConnectConfig, tronConnectorConfig?: TronConnectorConfig, networks?: Network[]);
|
|
14
26
|
/**
|
|
15
27
|
* Get available wallets for a specific namespace
|
|
16
28
|
*/
|
|
@@ -19,6 +31,17 @@ export declare class InjectedConnector implements Connector {
|
|
|
19
31
|
* Connect to a wallet
|
|
20
32
|
*/
|
|
21
33
|
connect(network: Network, provider: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider): Promise<ConnectorResult>;
|
|
34
|
+
/** Establish a fresh connection for the target namespace. */
|
|
35
|
+
private connectToNamespace;
|
|
36
|
+
/**
|
|
37
|
+
* Cross-namespace Tron gather: when the Tron connector is configured and the
|
|
38
|
+
* wallet exposes a detected Tron provider, connect Tron and merge its address
|
|
39
|
+
* into `availableAddresses` — the Tron equivalent of the ETH/Solana/TON
|
|
40
|
+
* gathers in `ConnectionManager`. Best-effort: a missing Tron network, an
|
|
41
|
+
* undetected wallet, or a declined prompt leaves the rest of the connection
|
|
42
|
+
* intact (same as the other gathers, which swallow their failures).
|
|
43
|
+
*/
|
|
44
|
+
private enrichWithTron;
|
|
22
45
|
/**
|
|
23
46
|
* Switch to a different network
|
|
24
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injected-connector.d.ts","sourceRoot":"","sources":["../src/injected-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,eAAe,
|
|
1
|
+
{"version":3,"file":"injected-connector.d.ts","sourceRoot":"","sources":["../src/injected-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAEP,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,eAAe,EAEf,mBAAmB,EACnB,SAAS,EACT,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EAEjB,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAA;AAiBxC,qBAAa,iBAAkB,YAAW,SAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,qBAAqB,CAAqC;IAClE;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAAsB;IAC3C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAW;gBAGzB,aAAa,GAAE,aAAkB,EACjC,eAAe,GAAE,cAAc,EAAO,EACtC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,QAAQ,GAAE,OAAO,EAAO;IAkC1B;;OAEG;IACG,mBAAmB,CACvB,SAAS,EAAE,SAAS,EACpB,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CACN,yBAAyB,EAAE,GAC3B,wBAAwB,EAAE,GAC1B,sBAAsB,EAAE,GACxB,qBAAqB,EAAE,CAC1B;IA8DD;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAqC3B,6DAA6D;YAC/C,kBAAkB;IAgChC;;;;;;;OAOG;YACW,cAAc;IAgC5B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,mBAAmB,CAAC;IAW/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,aAAa,CAAC;IAsFzB;;;;;OAKG;IACG,aAAa,CACjB,SAAS,EAAE,eAAe,EAC1B,SAAS,CAAC,EAAE,yBAAyB,GAAG,iCAAiC,GACxE,OAAO,CAAC,MAAM,CAAC;IA8BlB;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,iBAAiB,CAAC;IAkE7B;;;;OAIG;IACG,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAS3C;;;;;;OAMG;IACG,0BAA0B,CAC9B,YAAY,EAAE,UAAU,GACvB,OAAO,CAAC,UAAU,CAAC;CAgGvB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { assertSameMessage } from '@meshconnect/uwc-types';
|
|
2
|
+
import { TronConnector } from '@meshconnect/uwc-tron-connector';
|
|
2
3
|
import { Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
3
4
|
import { BridgeChild } from '@meshconnect/uwc-bridge-child';
|
|
4
5
|
import { EthereumWalletService } from './services/ethereum/ethereum-wallet-service';
|
|
@@ -22,9 +23,24 @@ export class InjectedConnector {
|
|
|
22
23
|
transactionService;
|
|
23
24
|
networkRpcMap;
|
|
24
25
|
tonConnectManifestUrl;
|
|
25
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Mesh-owned Tron connector. When set (via `tronConnectorConfig`), the Tron
|
|
28
|
+
* namespace is routed through `@meshconnect/uwc-tron-connector` instead of the
|
|
29
|
+
* legacy `window.tronWeb` path; the `tronService` is not consulted for Tron.
|
|
30
|
+
*/
|
|
31
|
+
tronConnector;
|
|
32
|
+
/**
|
|
33
|
+
* Configured networks, used to resolve the Tron network for cross-namespace
|
|
34
|
+
* Tron auto-connect (see `enrichWithTron`).
|
|
35
|
+
*/
|
|
36
|
+
networks;
|
|
37
|
+
constructor(networkRpcMap = {}, expectedWallets = [], tonConnectConfig, tronConnectorConfig, networks = []) {
|
|
26
38
|
this.networkRpcMap = networkRpcMap;
|
|
39
|
+
this.networks = networks;
|
|
27
40
|
this.tonConnectManifestUrl = tonConnectConfig?.manifestUrl;
|
|
41
|
+
this.tronConnector = tronConnectorConfig
|
|
42
|
+
? new TronConnector(tronConnectorConfig)
|
|
43
|
+
: null;
|
|
28
44
|
this.storageService = new StorageService();
|
|
29
45
|
this.ethereumService = new EthereumWalletService();
|
|
30
46
|
this.solanaService = new SolanaWalletService(this.storageService);
|
|
@@ -68,6 +84,9 @@ export class InjectedConnector {
|
|
|
68
84
|
}));
|
|
69
85
|
}
|
|
70
86
|
case 'tron': {
|
|
87
|
+
if (this.tronConnector) {
|
|
88
|
+
return (await this.tronConnector.getAvailableWallets('tron', expectedWallets));
|
|
89
|
+
}
|
|
71
90
|
await this.tronService.initializeDiscovery(expectedWallets);
|
|
72
91
|
return this.tronService.getDetectedWallets().map(wallet => ({
|
|
73
92
|
uuid: wallet.uuid,
|
|
@@ -94,22 +113,46 @@ export class InjectedConnector {
|
|
|
94
113
|
const targetNamespace = network.namespace;
|
|
95
114
|
// Check if we're already connected
|
|
96
115
|
const { address: existingAddress, availableAddresses } = await this.connectionManager.checkExistingConnections(targetNamespace, provider);
|
|
97
|
-
|
|
116
|
+
let result;
|
|
98
117
|
if (existingAddress) {
|
|
118
|
+
// Already connected — return the existing connection.
|
|
99
119
|
this.connectionManager.setCurrentNetworkId(network.id);
|
|
100
|
-
|
|
120
|
+
result = {
|
|
101
121
|
networkId: network.id,
|
|
102
122
|
address: existingAddress,
|
|
103
123
|
availableAddresses
|
|
104
124
|
};
|
|
105
125
|
}
|
|
106
|
-
|
|
126
|
+
else {
|
|
127
|
+
// Not connected, need to establish a new connection.
|
|
128
|
+
result = await this.connectToNamespace(targetNamespace, network, provider);
|
|
129
|
+
}
|
|
130
|
+
// Cross-namespace Tron auto-connect. When the Tron connector owns the Tron
|
|
131
|
+
// namespace, the legacy connection-manager gather is dormant, so a
|
|
132
|
+
// multi-namespace wallet (Trust, OKX, …) connected on EVM/Solana would
|
|
133
|
+
// otherwise never expose its Tron address. Mirror the ETH/Solana/TON
|
|
134
|
+
// gathers and connect Tron too (skipped when Tron is the connect target —
|
|
135
|
+
// that path connects Tron directly above).
|
|
136
|
+
if (targetNamespace !== 'tron') {
|
|
137
|
+
await this.enrichWithTron(provider, result.availableAddresses);
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
/** Establish a fresh connection for the target namespace. */
|
|
142
|
+
async connectToNamespace(targetNamespace, network, provider) {
|
|
107
143
|
switch (targetNamespace) {
|
|
108
144
|
case 'eip155':
|
|
109
145
|
return await this.connectionManager.connectEthereum(network, provider);
|
|
110
146
|
case 'solana':
|
|
111
147
|
return await this.connectionManager.connectSolana(network, provider);
|
|
112
148
|
case 'tron':
|
|
149
|
+
if (this.tronConnector) {
|
|
150
|
+
// Pass the provider through — the Tron connector reads the wallet's
|
|
151
|
+
// `namespaceMetaData.tron.injectedId` from it (metadata-driven).
|
|
152
|
+
const result = await this.tronConnector.connect(network, provider);
|
|
153
|
+
this.connectionManager.setCurrentNetworkId(network.id);
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
113
156
|
return await this.connectionManager.connectTron(network, provider);
|
|
114
157
|
case 'tvm':
|
|
115
158
|
return await this.connectionManager.connectTon(network, provider);
|
|
@@ -117,16 +160,66 @@ export class InjectedConnector {
|
|
|
117
160
|
throw new Error(`Namespace '${network.namespace}' is not implemented yet. Only 'eip155', 'solana', 'tron', and 'tvm' are currently supported.`);
|
|
118
161
|
}
|
|
119
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Cross-namespace Tron gather: when the Tron connector is configured and the
|
|
165
|
+
* wallet exposes a detected Tron provider, connect Tron and merge its address
|
|
166
|
+
* into `availableAddresses` — the Tron equivalent of the ETH/Solana/TON
|
|
167
|
+
* gathers in `ConnectionManager`. Best-effort: a missing Tron network, an
|
|
168
|
+
* undetected wallet, or a declined prompt leaves the rest of the connection
|
|
169
|
+
* intact (same as the other gathers, which swallow their failures).
|
|
170
|
+
*/
|
|
171
|
+
async enrichWithTron(provider, availableAddresses) {
|
|
172
|
+
if (!this.tronConnector)
|
|
173
|
+
return;
|
|
174
|
+
// The wallet must declare a Tron injected provider in its metadata.
|
|
175
|
+
if (!provider.namespaceMetaData?.tron?.injectedId)
|
|
176
|
+
return;
|
|
177
|
+
// Already gathered (e.g. a re-entrant connect) — don't reprompt.
|
|
178
|
+
if (availableAddresses.some(a => a.networkId.startsWith('tron:')))
|
|
179
|
+
return;
|
|
180
|
+
const tronNetwork = this.networks.find(n => n.namespace === 'tron' && provider.supportedNetworkIds.includes(n.id));
|
|
181
|
+
if (!tronNetwork)
|
|
182
|
+
return;
|
|
183
|
+
try {
|
|
184
|
+
// Pass the provider — the Tron connector reads its tron.injectedId.
|
|
185
|
+
const result = await this.tronConnector.connect(tronNetwork, provider);
|
|
186
|
+
for (const addr of result.availableAddresses) {
|
|
187
|
+
const dup = availableAddresses.some(a => a.networkId === addr.networkId && a.address === addr.address);
|
|
188
|
+
if (!dup)
|
|
189
|
+
availableAddresses.push(addr);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// Tron unavailable or the user declined the prompt — continue without it,
|
|
194
|
+
// same as the Solana/Tron/TON gathers in ConnectionManager.
|
|
195
|
+
}
|
|
196
|
+
}
|
|
120
197
|
/**
|
|
121
198
|
* Switch to a different network
|
|
122
199
|
*/
|
|
123
200
|
async switchNetwork(network, provider) {
|
|
201
|
+
if (this.tronConnector && network.namespace === 'tron') {
|
|
202
|
+
const result = await this.tronConnector.switchNetwork(network);
|
|
203
|
+
// Keep ConnectionManager's current network id in sync so subsequent
|
|
204
|
+
// signMessage/sendTransaction namespace routing isn't left stale.
|
|
205
|
+
this.connectionManager.setCurrentNetworkId(network.id);
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
124
208
|
return await this.connectionManager.switchNetwork(network, provider);
|
|
125
209
|
}
|
|
126
210
|
/**
|
|
127
211
|
* Disconnect from all wallets (only clears local state)
|
|
128
212
|
*/
|
|
129
213
|
async disconnect() {
|
|
214
|
+
if (this.tronConnector) {
|
|
215
|
+
// Best-effort: don't fail the overall disconnect if the connector throws.
|
|
216
|
+
try {
|
|
217
|
+
await this.tronConnector.disconnect();
|
|
218
|
+
}
|
|
219
|
+
catch {
|
|
220
|
+
// ignore
|
|
221
|
+
}
|
|
222
|
+
}
|
|
130
223
|
await this.connectionManager.disconnect();
|
|
131
224
|
}
|
|
132
225
|
/**
|
|
@@ -176,6 +269,11 @@ export class InjectedConnector {
|
|
|
176
269
|
};
|
|
177
270
|
}
|
|
178
271
|
else if (namespace === 'tron') {
|
|
272
|
+
if (this.tronConnector) {
|
|
273
|
+
// TronConnector.signMessage already returns a SignatureType
|
|
274
|
+
// ({ type: 'standard', signature }) — return it as-is, no re-wrap.
|
|
275
|
+
return await this.tronConnector.signMessage(message);
|
|
276
|
+
}
|
|
179
277
|
const tronProvider = this.tronService.getConnectedProvider();
|
|
180
278
|
if (!tronProvider) {
|
|
181
279
|
throw new Error('No connected Tron provider');
|
|
@@ -249,6 +347,9 @@ export class InjectedConnector {
|
|
|
249
347
|
return await this.transactionService.sendTransaction(request, namespace, solanaAdapter, currentNetworkId);
|
|
250
348
|
}
|
|
251
349
|
else if (namespace === 'tron') {
|
|
350
|
+
if (this.tronConnector) {
|
|
351
|
+
return await this.tronConnector.sendTransaction(request);
|
|
352
|
+
}
|
|
252
353
|
const tronProvider = this.tronService.getConnectedProvider();
|
|
253
354
|
if (!tronProvider) {
|
|
254
355
|
throw new Error('No connected Tron provider');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injected-connector.js","sourceRoot":"","sources":["../src/injected-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"injected-connector.js","sourceRoot":"","sources":["../src/injected-connector.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACL,aAAa,EAEd,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE,MAAM,OAAO,iBAAiB;IACX,cAAc,CAAgB;IACvC,eAAe,CAAuB;IACtC,aAAa,CAAqB;IAClC,WAAW,CAAmB;IAC9B,UAAU,CAAkB;IAC5B,iBAAiB,CAAmB;IACpC,gBAAgB,CAAkB;IAClC,kBAAkB,CAAoB;IACtC,aAAa,CAAe;IAC5B,qBAAqB,CAAqC;IAClE;;;;OAIG;IACK,aAAa,CAAsB;IAC3C;;;OAGG;IACK,QAAQ,CAAW;IAE3B,YACE,gBAA+B,EAAE,EACjC,kBAAoC,EAAE,EACtC,gBAAmC,EACnC,mBAAyC,EACzC,WAAsB,EAAE;QAExB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,EAAE,WAAW,CAAA;QAC1D,IAAI,CAAC,aAAa,GAAG,mBAAmB;YACtC,CAAC,CAAC,IAAI,aAAa,CAAC,mBAAmB,CAAC;YACxC,CAAC,CAAC,IAAI,CAAA;QAER,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAA;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CACpC,IAAI,CAAC,qBAAqB,EAC1B,gBAAgB,EAAE,iBAAiB,CACpC,CAAA;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC5C,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,CAChB,CAAA;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAA;QAC9C,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAEpE,IAAI,WAAW,CAAC;YACd,eAAe,EACb,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAAC,eAAe,CAAC;YACvE,eAAe,EACb,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,eAAe,CAAC;SACvE,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,SAAoB,EACpB,kBAAoC,EAAE;QAOtC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAA;gBAEjE,kCAAkC;gBAClC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;gBACjE,CAAC;gBAED,uCAAuC;gBACvC,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC9D,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC,CAAA;YACL,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,0BAA0B;gBAC1B,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAA;gBAE9C,uCAAuC;gBACvC,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC5D,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC,CAAA;YACL,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAClD,MAAM,EACN,eAAe,CAChB,CAA6B,CAAA;gBAChC,CAAC;gBACD,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;gBAE3D,OAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC1D,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC,CAAA;YACL,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAA;gBAE1D,OAAO,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzD,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC,CAAC,CAAA;YACL,CAAC;YAED;gBACE,OAAO,EAAE,CAAA;QACb,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,OAAgB,EAChB,QAAuE;QAEvE,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAA;QAEzC,mCAAmC;QACnC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,GACpD,MAAM,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CACnD,eAAuD,EACvD,QAAQ,CACT,CAAA;QAEH,IAAI,MAAuB,CAAA;QAC3B,IAAI,eAAe,EAAE,CAAC;YACpB,sDAAsD;YACtD,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACtD,MAAM,GAAG;gBACP,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,OAAO,EAAE,eAAe;gBACxB,kBAAkB;aACnB,CAAA;QACH,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC5E,CAAC;QAED,2EAA2E;QAC3E,mEAAmE;QACnE,uEAAuE;QACvE,qEAAqE;QACrE,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,6DAA6D;IACrD,KAAK,CAAC,kBAAkB,CAC9B,eAA0B,EAC1B,OAAgB,EAChB,QAAuE;QAEvE,QAAQ,eAAe,EAAE,CAAC;YACxB,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAExE,KAAK,QAAQ;gBACX,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAEtE,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,oEAAoE;oBACpE,iEAAiE;oBACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;oBAClE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;oBACtD,OAAO,MAAM,CAAA;gBACf,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAEpE,KAAK,KAAK;gBACR,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YAEnE;gBACE,MAAM,IAAI,KAAK,CACb,cAAc,OAAO,CAAC,SAAS,+FAA+F,CAC/H,CAAA;QACL,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,cAAc,CAC1B,QAAuE,EACvE,kBAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAM;QAE/B,oEAAoE;QACpE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,EAAE,UAAU;YAAE,OAAM;QAEzD,iEAAiE;QACjE,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAAE,OAAM;QAEzE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,IAAI,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAC3E,CAAA;QACD,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,IAAI,CAAC;YACH,oEAAoE;YACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YACtE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAClE,CAAA;gBACD,IAAI,CAAC,GAAG;oBAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,OAAgB,EAChB,QAAuE;QAEvE,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAC9D,oEAAoE;YACpE,kEAAkE;YAClE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACtD,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IACtE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,0EAA0E;YAC1E,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,OAAe,EACf,QAAuE;QAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAA;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,oEAAoE;QACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAItC,CAAA;QAET,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;QAEjE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACzD,CAAC;YAED,mCAAmC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAA;YAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;YACnD,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAC/D,OAAO,EACP,cAAc,EACd,WAAW,CACZ,CAAA;YACD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;aACrB,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,gCAAgC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAA;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAChD,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAC7D,OAAO,EACP,aAAa,CACd,CAAA;YACD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;aACrB,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,4DAA4D;gBAC5D,mEAAmE;gBACnE,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACtD,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAA;YAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/C,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAC3D,OAAO,EACP,YAAY,CACb,CAAA;YACD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,SAAS;aACrB,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,SAA0B,EAC1B,SAAyE;QAEzE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAA;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,yDAAyD,SAAS,EAAE,CACrE,CAAA;QACH,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;QACjE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAA;QAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAChD,SAAS,EACT,cAAc,EACd,WAAW,CACZ,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,OAA2B,EAC3B,QAAuE;QAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QAClE,CAAC;QAED,gDAAgD;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAA;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACjD,CAAC;QAED,oEAAoE;QACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAItC,CAAA;QAET,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,mCAAmC;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAA;YAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;YACnD,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAClD,OAAO,EACP,SAAS,EACT,WAAW,CACZ,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,gCAAgC;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAA;YAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YAChD,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAClD,OAAO,EACP,SAAS,EACT,aAAa,EACb,gBAA6B,CAC9B,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;YAC1D,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAA;YAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/C,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAClD,OAAO,EACP,SAAS,EACT,YAAY,CACb,CAAA;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAC1C,OAAmC,CACpC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAA;QAC3E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CACzB,IAAY,EACZ,QAAmB;QAEnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAA;QACrE,MAAM,SAAS,GAAG,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,0BAA0B,CAC9B,YAAwB;QAExB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAA;QACrE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAA;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAA;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAChD,CAAC;QAED,IAAI,CAAC;YACH,0EAA0E;YAC1E,uEAAuE;YACvE,uEAAuE;YACvE,MAAM,eAAe,GAAG,aAA8C,CAAA;YACtE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,eAAe,CAAA;YACvD,IAAI,SAAS,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBACtD,uEAAuE;gBACvE,gBAAgB;gBAChB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,0BAA0B,CAC7D,YAAY,EACZ,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,SAAS,CACxD,CAAA;gBACD,mEAAmE;gBACnE,yEAAyE;gBACzE,oDAAoD;gBACpD,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;gBACvC,OAAO,MAAM,CAAA;YACf,CAAC;YAED,qEAAqE;YACrE,MAAM,MAAM,GAAI,aAAuC,CAAC,MAAM,CAAA;YAC9D,MAAM,OAAO,GAAG,wBAAwB,CAAA;YAExC,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvE,MAAM,OAAO,GAAG,qBAAqB,CACnC,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAC3C,CAAA;gBACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACxC,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC;oBAC7C,OAAO;oBACP,WAAW,EAAE,YAAY;iBAC1B,CAAC,CAAA;gBACF,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;gBAC1D,CAAC;gBACD,yDAAyD;gBACzD,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACzD,OAAO,MAAM,CAAC,iBAAiB,CAAA;YACjC,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;YACtE,CAAC;YAED,gFAAgF;YAChF,IAAI,WAA+C,CAAA;YACnD,IAAI,CAAC;gBACH,WAAW,GAAG,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;YAC/D,MAAM,WAAW,GACf,MAAM,YAAY,oBAAoB;gBACpC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;gBACpB,CAAC,CAAC,IAAI,UAAU,CACZ,MAAM,CAAC,SAAS,CAAC;oBACf,oBAAoB,EAAE,KAAK;oBAC3B,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CACH,CAAA;YACP,yEAAyE;YACzE,yEAAyE;YACzE,iDAAiD;YACjD,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;YAC5C,OAAO,WAAW,CAAA;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,MAAM,UAAU,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AA8C3D,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,gBAAgB,CAAsB;gBAGpC,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,gBAAgB;IAGtC;;OAEG;IACG,wBAAwB,CAC5B,eAAe,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,EACrD,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;KACvC,CAAC;IAyJF;;OAEG;YACW,4BAA4B;IAkD1C;;OAEG;YACW,0BAA0B;IAmDxC;;OAEG;YACW,wBAAwB;IA0CtC;;;;OAIG;YACW,uBAAuB;IAgCrC;;;OAGG;YACW,kCAAkC;IAmBhD;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAgDjC;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA2C3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA8C3B;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAyC3B;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAuC3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAgBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
|
|
@@ -3,6 +3,40 @@ import { SolanaWalletService } from './solana/solana-wallet-service';
|
|
|
3
3
|
import { TronWalletService } from './tron/tron-wallet-service';
|
|
4
4
|
import { TonWalletService } from './ton/ton-wallet-service';
|
|
5
5
|
import { parseError } from '../utils/error-utils';
|
|
6
|
+
/** True when running inside an iframe. Cross-origin access to `window.top`
|
|
7
|
+
* throws, which itself means we are framed. */
|
|
8
|
+
function isFramedEmbed() {
|
|
9
|
+
try {
|
|
10
|
+
return typeof window !== 'undefined' && window.top !== window.self;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** The UWC bridge populates these `window` arrays with top-frame provider
|
|
17
|
+
* proxies. An absent/empty list means no bridged provider is available for that
|
|
18
|
+
* namespace, so a connect would fall to the iframe-local provider. */
|
|
19
|
+
function bridgedListEmpty(key) {
|
|
20
|
+
if (typeof window === 'undefined')
|
|
21
|
+
return true;
|
|
22
|
+
const list = window[key];
|
|
23
|
+
return !Array.isArray(list) || list.length === 0;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether to skip an EAGER cross-namespace `connect()` for a SECONDARY namespace
|
|
27
|
+
* (the ONC-3429 gather). Inside an iframe, an injected wallet's connect prompt is
|
|
28
|
+
* frame-position-gated (e.g. Trust Wallet → `dapp.frames-disallowed`). The
|
|
29
|
+
* non-gating path is the UWC bridge, which exposes top-frame providers via the
|
|
30
|
+
* `window.*Wallets` lists. So skip the eager connect only when we are framed AND
|
|
31
|
+
* the bridge has not populated that namespace's list — meaning the connect would
|
|
32
|
+
* hit the gating iframe-local provider. When the list is populated the connect
|
|
33
|
+
* routes to the top frame and is safe; in the top frame (extension) we never
|
|
34
|
+
* skip, preserving the eager gather. The TARGET namespace is connected via its
|
|
35
|
+
* own path in `connectToNamespace` and is unaffected.
|
|
36
|
+
*/
|
|
37
|
+
function skipFramedSecondaryConnect(bridgeKey) {
|
|
38
|
+
return isFramedEmbed() && bridgedListEmpty(bridgeKey);
|
|
39
|
+
}
|
|
6
40
|
export class ConnectionManager {
|
|
7
41
|
ethereumService;
|
|
8
42
|
solanaService;
|
|
@@ -139,7 +173,9 @@ export class ConnectionManager {
|
|
|
139
173
|
const accounts = await this.ethereumService.checkExistingConnection(ethWallet.provider);
|
|
140
174
|
const ethAddress = accounts && accounts.length > 0
|
|
141
175
|
? accounts[0]
|
|
142
|
-
:
|
|
176
|
+
: skipFramedSecondaryConnect('eip6963Wallets')
|
|
177
|
+
? undefined
|
|
178
|
+
: await this.ethereumService.connect(ethWallet.provider);
|
|
143
179
|
if (ethAddress) {
|
|
144
180
|
ethAccount = ethAddress;
|
|
145
181
|
this.ethereumService.setConnectionState(ethWallet.provider, ethAddress);
|
|
@@ -171,7 +207,9 @@ export class ConnectionManager {
|
|
|
171
207
|
if (solanaWallet?.adapter) {
|
|
172
208
|
try {
|
|
173
209
|
const solanaAddress = (await this.solanaService.checkExistingConnection(solanaWallet.adapter, solanaWalletUuid)) ||
|
|
174
|
-
(
|
|
210
|
+
(skipFramedSecondaryConnect('walletStandardWallets')
|
|
211
|
+
? undefined
|
|
212
|
+
: await this.solanaService.connect(solanaWallet.adapter, solanaWalletUuid));
|
|
175
213
|
if (solanaAddress) {
|
|
176
214
|
solanaAccount = solanaAddress;
|
|
177
215
|
this.solanaService.setConnectionState(solanaWallet.adapter, solanaAddress, solanaWalletUuid);
|
|
@@ -201,7 +239,10 @@ export class ConnectionManager {
|
|
|
201
239
|
const tronWallet = this.tronService.findWalletByUuid(tronWalletUuid);
|
|
202
240
|
if (tronWallet?.provider) {
|
|
203
241
|
try {
|
|
204
|
-
const address = (await this.tronService.checkExistingConnection(tronWallet.provider)) ||
|
|
242
|
+
const address = (await this.tronService.checkExistingConnection(tronWallet.provider)) ||
|
|
243
|
+
(skipFramedSecondaryConnect('tronWallets')
|
|
244
|
+
? undefined
|
|
245
|
+
: await this.tronService.connect(tronWallet.provider));
|
|
205
246
|
if (address) {
|
|
206
247
|
tronAccount = address;
|
|
207
248
|
this.tronService.setConnectionState(tronWallet.provider, address);
|
|
@@ -231,7 +272,7 @@ export class ConnectionManager {
|
|
|
231
272
|
}
|
|
232
273
|
if (!tonAccount) {
|
|
233
274
|
const jsBridgeKey = provider.namespaceMetaData?.tvm?.detectedWallet?.jsBridgeKey;
|
|
234
|
-
if (jsBridgeKey) {
|
|
275
|
+
if (jsBridgeKey && !skipFramedSecondaryConnect('tonWallets')) {
|
|
235
276
|
try {
|
|
236
277
|
const result = await this.tonService.connect(jsBridgeKey);
|
|
237
278
|
tonAccount = result.address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron-transaction-builder.d.ts","sourceRoot":"","sources":["../../../src/services/tron/tron-transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAG/B;;;GAGG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,yBAAyB,GAEjC,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"tron-transaction-builder.d.ts","sourceRoot":"","sources":["../../../src/services/tron/tron-transaction-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAG/B;;;GAGG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACG,mBAAmB,CACvB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,yBAAyB,GAEjC,OAAO,CAAC,GAAG,CAAC;IA2Bf;;OAEG;IACG,kBAAkB,CACtB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,wBAAwB,GAEhC,OAAO,CAAC,GAAG,CAAC;CAyChB"}
|
|
@@ -11,7 +11,18 @@ export class TronTransactionBuilder {
|
|
|
11
11
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
12
|
) {
|
|
13
13
|
try {
|
|
14
|
-
|
|
14
|
+
// sendTrx takes a JS number, so the SUN amount must be a non-negative
|
|
15
|
+
// safe integer. The public type allows bigint; guard before narrowing so
|
|
16
|
+
// an out-of-range value fails loudly instead of silently losing precision
|
|
17
|
+
// (mirrors the new connector's assertValidAmount).
|
|
18
|
+
const { amount } = request;
|
|
19
|
+
const valid = typeof amount === 'bigint'
|
|
20
|
+
? amount >= 0n && amount <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
21
|
+
: Number.isSafeInteger(amount) && amount >= 0;
|
|
22
|
+
if (!valid) {
|
|
23
|
+
throw new Error(`TronTransactionBuilder: native amount must be a non-negative integer within the safe range, got ${amount}`);
|
|
24
|
+
}
|
|
25
|
+
const transaction = await tronWeb.transactionBuilder.sendTrx(request.to, Number(amount), request.from);
|
|
15
26
|
return transaction;
|
|
16
27
|
}
|
|
17
28
|
catch (error) {
|
|
@@ -25,10 +36,22 @@ export class TronTransactionBuilder {
|
|
|
25
36
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
37
|
) {
|
|
27
38
|
try {
|
|
39
|
+
// The uint256 amount must be a non-negative integer; a fractional or
|
|
40
|
+
// precision-lost number would stringify to a wrong/invalid value. (A
|
|
41
|
+
// bigint is exact at any magnitude, so only the sign is checked here.)
|
|
42
|
+
const { amount } = request;
|
|
43
|
+
const valid = typeof amount === 'bigint'
|
|
44
|
+
? amount >= 0n
|
|
45
|
+
: Number.isSafeInteger(amount) && amount >= 0;
|
|
46
|
+
if (!valid) {
|
|
47
|
+
throw new Error(`TronTransactionBuilder: TRC20 amount must be a non-negative integer, got ${amount}`);
|
|
48
|
+
}
|
|
28
49
|
const functionSelector = 'transfer(address,uint256)';
|
|
29
50
|
const parameter = [
|
|
30
51
|
{ type: 'address', value: request.to },
|
|
31
|
-
|
|
52
|
+
// Pass uint256 as a string so a large bigint amount keeps full
|
|
53
|
+
// precision through tronWeb's ABI encoding.
|
|
54
|
+
{ type: 'uint256', value: amount.toString() }
|
|
32
55
|
];
|
|
33
56
|
const { transaction, result } = await tronWeb.transactionBuilder.triggerSmartContract(request.contractAddress, functionSelector, {}, parameter, request.from);
|
|
34
57
|
if (!result?.result) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron-transaction-builder.js","sourceRoot":"","sources":["../../../src/services/tron/tron-transaction-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAgB,EAChB,OAAkC;IAClC,8DAA8D;;QAE9D,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAC1D,OAAO,CAAC,EAAE,EACV,
|
|
1
|
+
{"version":3,"file":"tron-transaction-builder.js","sourceRoot":"","sources":["../../../src/services/tron/tron-transaction-builder.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpD;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IACjC;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAgB,EAChB,OAAkC;IAClC,8DAA8D;;QAE9D,IAAI,CAAC;YACH,sEAAsE;YACtE,yEAAyE;YACzE,0EAA0E;YAC1E,mDAAmD;YACnD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,MAAM,KAAK,GACT,OAAO,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC3D,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAA;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,mGAAmG,MAAM,EAAE,CAC5G,CAAA;YACH,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAC1D,OAAO,CAAC,EAAE,EACV,MAAM,CAAC,MAAM,CAAC,EACd,OAAO,CAAC,IAAI,CACb,CAAA;YACD,OAAO,WAAW,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,OAAgB,EAChB,OAAiC;IACjC,8DAA8D;;QAE9D,IAAI,CAAC;YACH,qEAAqE;YACrE,qEAAqE;YACrE,uEAAuE;YACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;YAC1B,MAAM,KAAK,GACT,OAAO,MAAM,KAAK,QAAQ;gBACxB,CAAC,CAAC,MAAM,IAAI,EAAE;gBACd,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAA;YACjD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,4EAA4E,MAAM,EAAE,CACrF,CAAA;YACH,CAAC;YACD,MAAM,gBAAgB,GAAG,2BAA2B,CAAA;YACpD,MAAM,SAAS,GAAG;gBAChB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;gBACtC,+DAA+D;gBAC/D,4CAA4C;gBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE;aAC9C,CAAA;YAED,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAC3B,MAAM,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CACnD,OAAO,CAAC,eAAe,EACvB,gBAAgB,EAChB,EAAE,EACF,SAAS,EACT,OAAO,CAAC,IAAI,CACb,CAAA;YAEH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO,WAAW,CAAA;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-injected-connector",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0-snapshot.03fa2e7",
|
|
4
4
|
"description": "Injected connector for Universal Wallet Connector",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,10 +27,11 @@
|
|
|
27
27
|
"buffer": "^6.0.3",
|
|
28
28
|
"uuid": "^13.0.0",
|
|
29
29
|
"viem": "^2.44.4",
|
|
30
|
-
"@meshconnect/uwc-
|
|
31
|
-
"@meshconnect/uwc-
|
|
32
|
-
"@meshconnect/uwc-
|
|
33
|
-
"@meshconnect/uwc-
|
|
30
|
+
"@meshconnect/uwc-constants": "0.6.6-snapshot.03fa2e7",
|
|
31
|
+
"@meshconnect/uwc-ton-connector": "0.6.5-snapshot.03fa2e7",
|
|
32
|
+
"@meshconnect/uwc-tron-connector": "0.2.0-snapshot.03fa2e7",
|
|
33
|
+
"@meshconnect/uwc-bridge-child": "0.2.2-snapshot.03fa2e7",
|
|
34
|
+
"@meshconnect/uwc-types": "0.16.0-snapshot.03fa2e7"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"typescript": "^5.9.3"
|
|
@@ -15,6 +15,9 @@ vi.mock('./services/tron/tron-wallet-service')
|
|
|
15
15
|
vi.mock('./services/connection-manager')
|
|
16
16
|
vi.mock('./services/signature-service')
|
|
17
17
|
vi.mock('./services/transaction-service')
|
|
18
|
+
vi.mock('@meshconnect/uwc-tron-connector', () => ({
|
|
19
|
+
TronConnector: vi.fn()
|
|
20
|
+
}))
|
|
18
21
|
|
|
19
22
|
describe('InjectedConnector', () => {
|
|
20
23
|
let connector: InjectedConnector
|
|
@@ -235,6 +238,99 @@ describe('InjectedConnector', () => {
|
|
|
235
238
|
expect(result.address).toBe('0xnewaddress')
|
|
236
239
|
})
|
|
237
240
|
|
|
241
|
+
describe('cross-namespace Tron gather (tronConnectorConfig set)', () => {
|
|
242
|
+
const tronNetwork = {
|
|
243
|
+
id: 'tron:0x2b6653dc',
|
|
244
|
+
internalId: 2,
|
|
245
|
+
name: 'Tron',
|
|
246
|
+
namespace: 'tron',
|
|
247
|
+
networkType: 'tron',
|
|
248
|
+
nativeCurrency: { name: 'Tron', symbol: 'TRX', decimals: 6 }
|
|
249
|
+
} as Network
|
|
250
|
+
|
|
251
|
+
// A multi-namespace wallet (e.g. Trust): EVM target + a detected Tron provider.
|
|
252
|
+
const multiNsProvider = {
|
|
253
|
+
supportedNetworkIds: ['eip155:1', 'tron:0x2b6653dc'],
|
|
254
|
+
namespaceMetaData: {
|
|
255
|
+
eip155: { detectedWallet: { uuid: 'eth-uuid' } },
|
|
256
|
+
// Metadata-driven: the connector reads the tron injectedId from here.
|
|
257
|
+
tron: { injectedId: 'trustWallet.tronLink' }
|
|
258
|
+
}
|
|
259
|
+
} as unknown as ExtensionInjectedProvider
|
|
260
|
+
|
|
261
|
+
// Build an InjectedConnector wired with the Tron connector + networks, and
|
|
262
|
+
// return the stubbed TronConnector instance so the test can assert on it.
|
|
263
|
+
const buildWithTron = async (tronConnect: ReturnType<typeof vi.fn>) => {
|
|
264
|
+
const { TronConnector } =
|
|
265
|
+
await import('@meshconnect/uwc-tron-connector')
|
|
266
|
+
// Must be constructable (`new TronConnector(...)`), so use a function,
|
|
267
|
+
// not an arrow.
|
|
268
|
+
vi.mocked(TronConnector).mockImplementation(function () {
|
|
269
|
+
return { connect: tronConnect } as never
|
|
270
|
+
} as never)
|
|
271
|
+
const c = new InjectedConnector(
|
|
272
|
+
{},
|
|
273
|
+
[],
|
|
274
|
+
undefined,
|
|
275
|
+
{ enabledWallets: ['trust'] } as never,
|
|
276
|
+
[mockNetwork, tronNetwork]
|
|
277
|
+
)
|
|
278
|
+
const { ConnectionManager } =
|
|
279
|
+
await import('./services/connection-manager')
|
|
280
|
+
const connManager = vi
|
|
281
|
+
.mocked(ConnectionManager)
|
|
282
|
+
.mock.results.at(-1)!.value
|
|
283
|
+
connManager.checkExistingConnections.mockResolvedValue({
|
|
284
|
+
address: null,
|
|
285
|
+
availableAddresses: []
|
|
286
|
+
})
|
|
287
|
+
connManager.connectEthereum.mockResolvedValue({
|
|
288
|
+
networkId: 'eip155:1',
|
|
289
|
+
address: '0xeth',
|
|
290
|
+
availableAddresses: [{ address: '0xeth', networkId: 'eip155:1' }]
|
|
291
|
+
})
|
|
292
|
+
return c
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
it('auto-connects Tron alongside an EVM target and merges the address', async () => {
|
|
296
|
+
const tronConnect = vi.fn().mockResolvedValue({
|
|
297
|
+
networkId: 'tron:0x2b6653dc',
|
|
298
|
+
address: 'TTronAddr',
|
|
299
|
+
availableAddresses: [
|
|
300
|
+
{ address: 'TTronAddr', networkId: 'tron:0x2b6653dc' }
|
|
301
|
+
]
|
|
302
|
+
})
|
|
303
|
+
const c = await buildWithTron(tronConnect)
|
|
304
|
+
|
|
305
|
+
const result = await c.connect(mockNetwork, multiNsProvider)
|
|
306
|
+
|
|
307
|
+
// Routed through the Tron connector with the wallet provider (the
|
|
308
|
+
// connector reads the tron injectedId from it).
|
|
309
|
+
expect(tronConnect).toHaveBeenCalledWith(tronNetwork, multiNsProvider)
|
|
310
|
+
// EVM address preserved AND the Tron address merged in.
|
|
311
|
+
expect(result.address).toBe('0xeth')
|
|
312
|
+
expect(result.availableAddresses).toContainEqual({
|
|
313
|
+
address: 'TTronAddr',
|
|
314
|
+
networkId: 'tron:0x2b6653dc'
|
|
315
|
+
})
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
it('swallows a declined/failed Tron connect and keeps the EVM connection', async () => {
|
|
319
|
+
const tronConnect = vi
|
|
320
|
+
.fn()
|
|
321
|
+
.mockRejectedValue(new Error('user declined'))
|
|
322
|
+
const c = await buildWithTron(tronConnect)
|
|
323
|
+
|
|
324
|
+
const result = await c.connect(mockNetwork, multiNsProvider)
|
|
325
|
+
|
|
326
|
+
expect(tronConnect).toHaveBeenCalled()
|
|
327
|
+
expect(result.address).toBe('0xeth')
|
|
328
|
+
expect(
|
|
329
|
+
result.availableAddresses.some(a => a.networkId.startsWith('tron:'))
|
|
330
|
+
).toBe(false)
|
|
331
|
+
})
|
|
332
|
+
})
|
|
333
|
+
|
|
238
334
|
it('should connect to Solana wallet for solana namespace', async () => {
|
|
239
335
|
const { ConnectionManager } =
|
|
240
336
|
await import('./services/connection-manager')
|
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
IntegratedBrowserInjectedProvider,
|
|
6
6
|
Connector,
|
|
7
7
|
ConnectorResult,
|
|
8
|
+
AvailableAddress,
|
|
8
9
|
SwitchNetworkResult,
|
|
9
10
|
Namespace,
|
|
10
11
|
DetectedEIP6963WalletInfo,
|
|
@@ -22,6 +23,10 @@ import type {
|
|
|
22
23
|
TonConnectConfig
|
|
23
24
|
} from '@meshconnect/uwc-types'
|
|
24
25
|
import { assertSameMessage } from '@meshconnect/uwc-types'
|
|
26
|
+
import {
|
|
27
|
+
TronConnector,
|
|
28
|
+
type TronConnectorConfig
|
|
29
|
+
} from '@meshconnect/uwc-tron-connector'
|
|
25
30
|
import { Transaction, VersionedTransaction } from '@solana/web3.js'
|
|
26
31
|
import type { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base'
|
|
27
32
|
import { BridgeChild } from '@meshconnect/uwc-bridge-child'
|
|
@@ -49,14 +54,31 @@ export class InjectedConnector implements Connector {
|
|
|
49
54
|
private transactionService: TransactionService
|
|
50
55
|
private networkRpcMap: NetworkRpcMap
|
|
51
56
|
private tonConnectManifestUrl: string | (() => string) | undefined
|
|
57
|
+
/**
|
|
58
|
+
* Mesh-owned Tron connector. When set (via `tronConnectorConfig`), the Tron
|
|
59
|
+
* namespace is routed through `@meshconnect/uwc-tron-connector` instead of the
|
|
60
|
+
* legacy `window.tronWeb` path; the `tronService` is not consulted for Tron.
|
|
61
|
+
*/
|
|
62
|
+
private tronConnector: TronConnector | null
|
|
63
|
+
/**
|
|
64
|
+
* Configured networks, used to resolve the Tron network for cross-namespace
|
|
65
|
+
* Tron auto-connect (see `enrichWithTron`).
|
|
66
|
+
*/
|
|
67
|
+
private networks: Network[]
|
|
52
68
|
|
|
53
69
|
constructor(
|
|
54
70
|
networkRpcMap: NetworkRpcMap = {},
|
|
55
71
|
expectedWallets: WalletMetadata[] = [],
|
|
56
|
-
tonConnectConfig?: TonConnectConfig
|
|
72
|
+
tonConnectConfig?: TonConnectConfig,
|
|
73
|
+
tronConnectorConfig?: TronConnectorConfig,
|
|
74
|
+
networks: Network[] = []
|
|
57
75
|
) {
|
|
58
76
|
this.networkRpcMap = networkRpcMap
|
|
77
|
+
this.networks = networks
|
|
59
78
|
this.tonConnectManifestUrl = tonConnectConfig?.manifestUrl
|
|
79
|
+
this.tronConnector = tronConnectorConfig
|
|
80
|
+
? new TronConnector(tronConnectorConfig)
|
|
81
|
+
: null
|
|
60
82
|
|
|
61
83
|
this.storageService = new StorageService()
|
|
62
84
|
this.ethereumService = new EthereumWalletService()
|
|
@@ -126,6 +148,12 @@ export class InjectedConnector implements Connector {
|
|
|
126
148
|
}
|
|
127
149
|
|
|
128
150
|
case 'tron': {
|
|
151
|
+
if (this.tronConnector) {
|
|
152
|
+
return (await this.tronConnector.getAvailableWallets(
|
|
153
|
+
'tron',
|
|
154
|
+
expectedWallets
|
|
155
|
+
)) as DetectedTronWalletInfo[]
|
|
156
|
+
}
|
|
129
157
|
await this.tronService.initializeDiscovery(expectedWallets)
|
|
130
158
|
|
|
131
159
|
return this.tronService.getDetectedWallets().map(wallet => ({
|
|
@@ -166,17 +194,39 @@ export class InjectedConnector implements Connector {
|
|
|
166
194
|
provider
|
|
167
195
|
)
|
|
168
196
|
|
|
169
|
-
|
|
197
|
+
let result: ConnectorResult
|
|
170
198
|
if (existingAddress) {
|
|
199
|
+
// Already connected — return the existing connection.
|
|
171
200
|
this.connectionManager.setCurrentNetworkId(network.id)
|
|
172
|
-
|
|
201
|
+
result = {
|
|
173
202
|
networkId: network.id,
|
|
174
203
|
address: existingAddress,
|
|
175
204
|
availableAddresses
|
|
176
205
|
}
|
|
206
|
+
} else {
|
|
207
|
+
// Not connected, need to establish a new connection.
|
|
208
|
+
result = await this.connectToNamespace(targetNamespace, network, provider)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Cross-namespace Tron auto-connect. When the Tron connector owns the Tron
|
|
212
|
+
// namespace, the legacy connection-manager gather is dormant, so a
|
|
213
|
+
// multi-namespace wallet (Trust, OKX, …) connected on EVM/Solana would
|
|
214
|
+
// otherwise never expose its Tron address. Mirror the ETH/Solana/TON
|
|
215
|
+
// gathers and connect Tron too (skipped when Tron is the connect target —
|
|
216
|
+
// that path connects Tron directly above).
|
|
217
|
+
if (targetNamespace !== 'tron') {
|
|
218
|
+
await this.enrichWithTron(provider, result.availableAddresses)
|
|
177
219
|
}
|
|
178
220
|
|
|
179
|
-
|
|
221
|
+
return result
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/** Establish a fresh connection for the target namespace. */
|
|
225
|
+
private async connectToNamespace(
|
|
226
|
+
targetNamespace: Namespace,
|
|
227
|
+
network: Network,
|
|
228
|
+
provider: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider
|
|
229
|
+
): Promise<ConnectorResult> {
|
|
180
230
|
switch (targetNamespace) {
|
|
181
231
|
case 'eip155':
|
|
182
232
|
return await this.connectionManager.connectEthereum(network, provider)
|
|
@@ -185,6 +235,13 @@ export class InjectedConnector implements Connector {
|
|
|
185
235
|
return await this.connectionManager.connectSolana(network, provider)
|
|
186
236
|
|
|
187
237
|
case 'tron':
|
|
238
|
+
if (this.tronConnector) {
|
|
239
|
+
// Pass the provider through — the Tron connector reads the wallet's
|
|
240
|
+
// `namespaceMetaData.tron.injectedId` from it (metadata-driven).
|
|
241
|
+
const result = await this.tronConnector.connect(network, provider)
|
|
242
|
+
this.connectionManager.setCurrentNetworkId(network.id)
|
|
243
|
+
return result
|
|
244
|
+
}
|
|
188
245
|
return await this.connectionManager.connectTron(network, provider)
|
|
189
246
|
|
|
190
247
|
case 'tvm':
|
|
@@ -197,6 +254,46 @@ export class InjectedConnector implements Connector {
|
|
|
197
254
|
}
|
|
198
255
|
}
|
|
199
256
|
|
|
257
|
+
/**
|
|
258
|
+
* Cross-namespace Tron gather: when the Tron connector is configured and the
|
|
259
|
+
* wallet exposes a detected Tron provider, connect Tron and merge its address
|
|
260
|
+
* into `availableAddresses` — the Tron equivalent of the ETH/Solana/TON
|
|
261
|
+
* gathers in `ConnectionManager`. Best-effort: a missing Tron network, an
|
|
262
|
+
* undetected wallet, or a declined prompt leaves the rest of the connection
|
|
263
|
+
* intact (same as the other gathers, which swallow their failures).
|
|
264
|
+
*/
|
|
265
|
+
private async enrichWithTron(
|
|
266
|
+
provider: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider,
|
|
267
|
+
availableAddresses: AvailableAddress[]
|
|
268
|
+
): Promise<void> {
|
|
269
|
+
if (!this.tronConnector) return
|
|
270
|
+
|
|
271
|
+
// The wallet must declare a Tron injected provider in its metadata.
|
|
272
|
+
if (!provider.namespaceMetaData?.tron?.injectedId) return
|
|
273
|
+
|
|
274
|
+
// Already gathered (e.g. a re-entrant connect) — don't reprompt.
|
|
275
|
+
if (availableAddresses.some(a => a.networkId.startsWith('tron:'))) return
|
|
276
|
+
|
|
277
|
+
const tronNetwork = this.networks.find(
|
|
278
|
+
n => n.namespace === 'tron' && provider.supportedNetworkIds.includes(n.id)
|
|
279
|
+
)
|
|
280
|
+
if (!tronNetwork) return
|
|
281
|
+
|
|
282
|
+
try {
|
|
283
|
+
// Pass the provider — the Tron connector reads its tron.injectedId.
|
|
284
|
+
const result = await this.tronConnector.connect(tronNetwork, provider)
|
|
285
|
+
for (const addr of result.availableAddresses) {
|
|
286
|
+
const dup = availableAddresses.some(
|
|
287
|
+
a => a.networkId === addr.networkId && a.address === addr.address
|
|
288
|
+
)
|
|
289
|
+
if (!dup) availableAddresses.push(addr)
|
|
290
|
+
}
|
|
291
|
+
} catch {
|
|
292
|
+
// Tron unavailable or the user declined the prompt — continue without it,
|
|
293
|
+
// same as the Solana/Tron/TON gathers in ConnectionManager.
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
200
297
|
/**
|
|
201
298
|
* Switch to a different network
|
|
202
299
|
*/
|
|
@@ -204,6 +301,13 @@ export class InjectedConnector implements Connector {
|
|
|
204
301
|
network: Network,
|
|
205
302
|
provider: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider
|
|
206
303
|
): Promise<SwitchNetworkResult> {
|
|
304
|
+
if (this.tronConnector && network.namespace === 'tron') {
|
|
305
|
+
const result = await this.tronConnector.switchNetwork(network)
|
|
306
|
+
// Keep ConnectionManager's current network id in sync so subsequent
|
|
307
|
+
// signMessage/sendTransaction namespace routing isn't left stale.
|
|
308
|
+
this.connectionManager.setCurrentNetworkId(network.id)
|
|
309
|
+
return result
|
|
310
|
+
}
|
|
207
311
|
return await this.connectionManager.switchNetwork(network, provider)
|
|
208
312
|
}
|
|
209
313
|
|
|
@@ -211,6 +315,14 @@ export class InjectedConnector implements Connector {
|
|
|
211
315
|
* Disconnect from all wallets (only clears local state)
|
|
212
316
|
*/
|
|
213
317
|
async disconnect(): Promise<void> {
|
|
318
|
+
if (this.tronConnector) {
|
|
319
|
+
// Best-effort: don't fail the overall disconnect if the connector throws.
|
|
320
|
+
try {
|
|
321
|
+
await this.tronConnector.disconnect()
|
|
322
|
+
} catch {
|
|
323
|
+
// ignore
|
|
324
|
+
}
|
|
325
|
+
}
|
|
214
326
|
await this.connectionManager.disconnect()
|
|
215
327
|
}
|
|
216
328
|
|
|
@@ -281,6 +393,11 @@ export class InjectedConnector implements Connector {
|
|
|
281
393
|
signature: signature
|
|
282
394
|
}
|
|
283
395
|
} else if (namespace === 'tron') {
|
|
396
|
+
if (this.tronConnector) {
|
|
397
|
+
// TronConnector.signMessage already returns a SignatureType
|
|
398
|
+
// ({ type: 'standard', signature }) — return it as-is, no re-wrap.
|
|
399
|
+
return await this.tronConnector.signMessage(message)
|
|
400
|
+
}
|
|
284
401
|
const tronProvider = this.tronService.getConnectedProvider()
|
|
285
402
|
if (!tronProvider) {
|
|
286
403
|
throw new Error('No connected Tron provider')
|
|
@@ -390,6 +507,9 @@ export class InjectedConnector implements Connector {
|
|
|
390
507
|
currentNetworkId as NetworkId
|
|
391
508
|
)
|
|
392
509
|
} else if (namespace === 'tron') {
|
|
510
|
+
if (this.tronConnector) {
|
|
511
|
+
return await this.tronConnector.sendTransaction(request)
|
|
512
|
+
}
|
|
393
513
|
const tronProvider = this.tronService.getConnectedProvider()
|
|
394
514
|
if (!tronProvider) {
|
|
395
515
|
throw new Error('No connected Tron provider')
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
|
|
2
2
|
import type { ExtensionInjectedProvider, Network } from '@meshconnect/uwc-types'
|
|
3
3
|
import { ConnectionManager } from './connection-manager'
|
|
4
4
|
|
|
@@ -478,3 +478,100 @@ describe('ConnectionManager — cross-namespace error resilience (ONC-2696)', ()
|
|
|
478
478
|
expect(namespaces).not.toContain('eip155')
|
|
479
479
|
})
|
|
480
480
|
})
|
|
481
|
+
|
|
482
|
+
// ONC-3383: inside an iframe, an injected wallet's connect prompt is
|
|
483
|
+
// frame-position-gated (Trust Wallet → dapp.frames-disallowed). The eager
|
|
484
|
+
// cross-namespace gather must not fire a SECONDARY-namespace connect on the
|
|
485
|
+
// gating iframe-local provider — it may only do so when that namespace's bridge
|
|
486
|
+
// list is populated (the connect then routes to the top frame).
|
|
487
|
+
describe('ConnectionManager — iframe-safe cross-namespace gather (ONC-3383)', () => {
|
|
488
|
+
let ethService: ReturnType<typeof makeEthService>
|
|
489
|
+
let solanaService: ReturnType<typeof makeSolanaService>
|
|
490
|
+
let tronService: ReturnType<typeof makeTronService>
|
|
491
|
+
let tonService: ReturnType<typeof makeTonService>
|
|
492
|
+
let manager: ConnectionManager
|
|
493
|
+
|
|
494
|
+
beforeEach(() => {
|
|
495
|
+
ethService = makeEthService()
|
|
496
|
+
solanaService = makeSolanaService()
|
|
497
|
+
tronService = makeTronService()
|
|
498
|
+
tonService = makeTonService()
|
|
499
|
+
manager = new ConnectionManager(
|
|
500
|
+
ethService as any,
|
|
501
|
+
solanaService as any,
|
|
502
|
+
tronService as any,
|
|
503
|
+
tonService as any
|
|
504
|
+
)
|
|
505
|
+
// Simulate running inside an iframe: window.top !== window.self
|
|
506
|
+
Object.defineProperty(window, 'top', { value: {}, configurable: true })
|
|
507
|
+
})
|
|
508
|
+
|
|
509
|
+
afterEach(() => {
|
|
510
|
+
Object.defineProperty(window, 'top', { value: window, configurable: true })
|
|
511
|
+
const w = window as unknown as Record<string, unknown>
|
|
512
|
+
delete w['eip6963Wallets']
|
|
513
|
+
delete w['walletStandardWallets']
|
|
514
|
+
delete w['tronWallets']
|
|
515
|
+
delete w['tonWallets']
|
|
516
|
+
})
|
|
517
|
+
|
|
518
|
+
it('skips the eager EVM connect when framed and the bridge list is empty (avoids frames-disallowed prompt)', async () => {
|
|
519
|
+
solanaService.findWalletByUuid.mockReturnValue({ adapter: {} })
|
|
520
|
+
solanaService.connect.mockResolvedValue('SolAddr1')
|
|
521
|
+
|
|
522
|
+
// EVM detected but not already permitted; the bridge has NOT populated
|
|
523
|
+
// window.eip6963Wallets → resolving EVM would hit the gating local provider.
|
|
524
|
+
ethService.findWalletByUuid.mockReturnValue({ provider: {} })
|
|
525
|
+
ethService.checkExistingConnection.mockResolvedValue(null)
|
|
526
|
+
ethService.connect.mockResolvedValue('0xABC')
|
|
527
|
+
|
|
528
|
+
const provider = makeProvider({
|
|
529
|
+
eip155: { detectedWallet: { uuid: 'mm-eip155' } },
|
|
530
|
+
solana: { detectedWallet: { uuid: 'mm-solana' } }
|
|
531
|
+
})
|
|
532
|
+
|
|
533
|
+
const result = await manager.connectSolana(
|
|
534
|
+
makeNetwork('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana'),
|
|
535
|
+
provider
|
|
536
|
+
)
|
|
537
|
+
|
|
538
|
+
expect(result.address).toBe('SolAddr1')
|
|
539
|
+
// The eager EVM connect (eth_requestAccounts) must NOT fire in the iframe.
|
|
540
|
+
expect(ethService.connect).not.toHaveBeenCalled()
|
|
541
|
+
const namespaces = result.availableAddresses.map(
|
|
542
|
+
a => a.networkId.split(':')[0]
|
|
543
|
+
)
|
|
544
|
+
expect(namespaces).toContain('solana')
|
|
545
|
+
expect(namespaces).not.toContain('eip155')
|
|
546
|
+
})
|
|
547
|
+
|
|
548
|
+
it('still performs the eager EVM connect when framed but the bridge list is populated (routes via the top frame)', async () => {
|
|
549
|
+
solanaService.findWalletByUuid.mockReturnValue({ adapter: {} })
|
|
550
|
+
solanaService.connect.mockResolvedValue('SolAddr1')
|
|
551
|
+
|
|
552
|
+
ethService.findWalletByUuid.mockReturnValue({ provider: {} })
|
|
553
|
+
ethService.checkExistingConnection.mockResolvedValue(null)
|
|
554
|
+
ethService.connect.mockResolvedValue('0xABC')
|
|
555
|
+
|
|
556
|
+
// Bridge populated the EVM list → the connect routes to the top frame (safe).
|
|
557
|
+
;(window as unknown as Record<string, unknown>)['eip6963Wallets'] = [
|
|
558
|
+
{ uuid: 'trust', provider: {} }
|
|
559
|
+
]
|
|
560
|
+
|
|
561
|
+
const provider = makeProvider({
|
|
562
|
+
eip155: { detectedWallet: { uuid: 'mm-eip155' } },
|
|
563
|
+
solana: { detectedWallet: { uuid: 'mm-solana' } }
|
|
564
|
+
})
|
|
565
|
+
|
|
566
|
+
const result = await manager.connectSolana(
|
|
567
|
+
makeNetwork('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana'),
|
|
568
|
+
provider
|
|
569
|
+
)
|
|
570
|
+
|
|
571
|
+
expect(ethService.connect).toHaveBeenCalled()
|
|
572
|
+
const namespaces = result.availableAddresses.map(
|
|
573
|
+
a => a.networkId.split(':')[0]
|
|
574
|
+
)
|
|
575
|
+
expect(namespaces).toContain('eip155')
|
|
576
|
+
})
|
|
577
|
+
})
|
|
@@ -12,6 +12,49 @@ import { TronWalletService } from './tron/tron-wallet-service'
|
|
|
12
12
|
import { TonWalletService } from './ton/ton-wallet-service'
|
|
13
13
|
import { parseError } from '../utils/error-utils'
|
|
14
14
|
|
|
15
|
+
/** True when running inside an iframe. Cross-origin access to `window.top`
|
|
16
|
+
* throws, which itself means we are framed. */
|
|
17
|
+
function isFramedEmbed(): boolean {
|
|
18
|
+
try {
|
|
19
|
+
return typeof window !== 'undefined' && window.top !== window.self
|
|
20
|
+
} catch {
|
|
21
|
+
return true
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** The UWC bridge populates these `window` arrays with top-frame provider
|
|
26
|
+
* proxies. An absent/empty list means no bridged provider is available for that
|
|
27
|
+
* namespace, so a connect would fall to the iframe-local provider. */
|
|
28
|
+
function bridgedListEmpty(
|
|
29
|
+
key: 'eip6963Wallets' | 'walletStandardWallets' | 'tronWallets' | 'tonWallets'
|
|
30
|
+
): boolean {
|
|
31
|
+
if (typeof window === 'undefined') return true
|
|
32
|
+
const list = (window as unknown as Record<string, unknown>)[key]
|
|
33
|
+
return !Array.isArray(list) || list.length === 0
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Whether to skip an EAGER cross-namespace `connect()` for a SECONDARY namespace
|
|
38
|
+
* (the ONC-3429 gather). Inside an iframe, an injected wallet's connect prompt is
|
|
39
|
+
* frame-position-gated (e.g. Trust Wallet → `dapp.frames-disallowed`). The
|
|
40
|
+
* non-gating path is the UWC bridge, which exposes top-frame providers via the
|
|
41
|
+
* `window.*Wallets` lists. So skip the eager connect only when we are framed AND
|
|
42
|
+
* the bridge has not populated that namespace's list — meaning the connect would
|
|
43
|
+
* hit the gating iframe-local provider. When the list is populated the connect
|
|
44
|
+
* routes to the top frame and is safe; in the top frame (extension) we never
|
|
45
|
+
* skip, preserving the eager gather. The TARGET namespace is connected via its
|
|
46
|
+
* own path in `connectToNamespace` and is unaffected.
|
|
47
|
+
*/
|
|
48
|
+
function skipFramedSecondaryConnect(
|
|
49
|
+
bridgeKey:
|
|
50
|
+
| 'eip6963Wallets'
|
|
51
|
+
| 'walletStandardWallets'
|
|
52
|
+
| 'tronWallets'
|
|
53
|
+
| 'tonWallets'
|
|
54
|
+
): boolean {
|
|
55
|
+
return isFramedEmbed() && bridgedListEmpty(bridgeKey)
|
|
56
|
+
}
|
|
57
|
+
|
|
15
58
|
export class ConnectionManager {
|
|
16
59
|
private currentNetworkId: string | null = null
|
|
17
60
|
|
|
@@ -209,7 +252,9 @@ export class ConnectionManager {
|
|
|
209
252
|
const ethAddress =
|
|
210
253
|
accounts && accounts.length > 0
|
|
211
254
|
? accounts[0]
|
|
212
|
-
:
|
|
255
|
+
: skipFramedSecondaryConnect('eip6963Wallets')
|
|
256
|
+
? undefined
|
|
257
|
+
: await this.ethereumService.connect(ethWallet.provider)
|
|
213
258
|
if (ethAddress) {
|
|
214
259
|
ethAccount = ethAddress
|
|
215
260
|
this.ethereumService.setConnectionState(
|
|
@@ -258,10 +303,12 @@ export class ConnectionManager {
|
|
|
258
303
|
solanaWallet.adapter,
|
|
259
304
|
solanaWalletUuid
|
|
260
305
|
)) ||
|
|
261
|
-
(
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
306
|
+
(skipFramedSecondaryConnect('walletStandardWallets')
|
|
307
|
+
? undefined
|
|
308
|
+
: await this.solanaService.connect(
|
|
309
|
+
solanaWallet.adapter,
|
|
310
|
+
solanaWalletUuid
|
|
311
|
+
))
|
|
265
312
|
if (solanaAddress) {
|
|
266
313
|
solanaAccount = solanaAddress
|
|
267
314
|
this.solanaService.setConnectionState(
|
|
@@ -307,7 +354,10 @@ export class ConnectionManager {
|
|
|
307
354
|
const address =
|
|
308
355
|
(await this.tronService.checkExistingConnection(
|
|
309
356
|
tronWallet.provider
|
|
310
|
-
)) ||
|
|
357
|
+
)) ||
|
|
358
|
+
(skipFramedSecondaryConnect('tronWallets')
|
|
359
|
+
? undefined
|
|
360
|
+
: await this.tronService.connect(tronWallet.provider))
|
|
311
361
|
if (address) {
|
|
312
362
|
tronAccount = address
|
|
313
363
|
this.tronService.setConnectionState(tronWallet.provider, address)
|
|
@@ -347,7 +397,7 @@ export class ConnectionManager {
|
|
|
347
397
|
if (!tonAccount) {
|
|
348
398
|
const jsBridgeKey =
|
|
349
399
|
provider.namespaceMetaData?.tvm?.detectedWallet?.jsBridgeKey
|
|
350
|
-
if (jsBridgeKey) {
|
|
400
|
+
if (jsBridgeKey && !skipFramedSecondaryConnect('tonWallets')) {
|
|
351
401
|
try {
|
|
352
402
|
const result = await this.tonService.connect(jsBridgeKey)
|
|
353
403
|
tonAccount = result.address
|
|
@@ -67,6 +67,19 @@ describe('TronTransactionBuilder', () => {
|
|
|
67
67
|
expect(result).toEqual(mockTransaction)
|
|
68
68
|
})
|
|
69
69
|
|
|
70
|
+
it('rejects a bigint amount beyond the safe-integer range (no silent precision loss)', async () => {
|
|
71
|
+
const request: TronNativeTransferRequest = {
|
|
72
|
+
from: 'TFromAddress123',
|
|
73
|
+
to: 'TToAddress456',
|
|
74
|
+
amount: BigInt(Number.MAX_SAFE_INTEGER) + 2n
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
await expect(
|
|
78
|
+
builder.buildNativeTransfer(mockTronWeb, request)
|
|
79
|
+
).rejects.toThrow()
|
|
80
|
+
expect(mockTronWeb.transactionBuilder.sendTrx).not.toHaveBeenCalled()
|
|
81
|
+
})
|
|
82
|
+
|
|
70
83
|
it('should throw on transactionBuilder error', async () => {
|
|
71
84
|
vi.mocked(mockTronWeb.transactionBuilder.sendTrx).mockRejectedValue(
|
|
72
85
|
new Error('Insufficient balance')
|
|
@@ -111,13 +124,30 @@ describe('TronTransactionBuilder', () => {
|
|
|
111
124
|
{},
|
|
112
125
|
[
|
|
113
126
|
{ type: 'address', value: 'TToAddress456' },
|
|
114
|
-
|
|
127
|
+
// uint256 is passed as a string to preserve precision for large amounts
|
|
128
|
+
{ type: 'uint256', value: '1000000' }
|
|
115
129
|
],
|
|
116
130
|
'TFromAddress123'
|
|
117
131
|
)
|
|
118
132
|
expect(result).toEqual(mockTransaction)
|
|
119
133
|
})
|
|
120
134
|
|
|
135
|
+
it('rejects a fractional TRC20 amount before building (no wrong uint256)', async () => {
|
|
136
|
+
const request: TronTRC20TransferRequest = {
|
|
137
|
+
from: 'TFromAddress123',
|
|
138
|
+
to: 'TToAddress456',
|
|
139
|
+
amount: 1.5,
|
|
140
|
+
contractAddress: 'TContractAddress789'
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
await expect(
|
|
144
|
+
builder.buildTRC20Transfer(mockTronWeb, request)
|
|
145
|
+
).rejects.toThrow()
|
|
146
|
+
expect(
|
|
147
|
+
mockTronWeb.transactionBuilder.triggerSmartContract
|
|
148
|
+
).not.toHaveBeenCalled()
|
|
149
|
+
})
|
|
150
|
+
|
|
121
151
|
it('should throw when triggerSmartContract result is false', async () => {
|
|
122
152
|
vi.mocked(
|
|
123
153
|
mockTronWeb.transactionBuilder.triggerSmartContract
|
|
@@ -19,9 +19,23 @@ export class TronTransactionBuilder {
|
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
): Promise<any> {
|
|
21
21
|
try {
|
|
22
|
+
// sendTrx takes a JS number, so the SUN amount must be a non-negative
|
|
23
|
+
// safe integer. The public type allows bigint; guard before narrowing so
|
|
24
|
+
// an out-of-range value fails loudly instead of silently losing precision
|
|
25
|
+
// (mirrors the new connector's assertValidAmount).
|
|
26
|
+
const { amount } = request
|
|
27
|
+
const valid =
|
|
28
|
+
typeof amount === 'bigint'
|
|
29
|
+
? amount >= 0n && amount <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
30
|
+
: Number.isSafeInteger(amount) && amount >= 0
|
|
31
|
+
if (!valid) {
|
|
32
|
+
throw new Error(
|
|
33
|
+
`TronTransactionBuilder: native amount must be a non-negative integer within the safe range, got ${amount}`
|
|
34
|
+
)
|
|
35
|
+
}
|
|
22
36
|
const transaction = await tronWeb.transactionBuilder.sendTrx(
|
|
23
37
|
request.to,
|
|
24
|
-
|
|
38
|
+
Number(amount),
|
|
25
39
|
request.from
|
|
26
40
|
)
|
|
27
41
|
return transaction
|
|
@@ -39,10 +53,25 @@ export class TronTransactionBuilder {
|
|
|
39
53
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
54
|
): Promise<any> {
|
|
41
55
|
try {
|
|
56
|
+
// The uint256 amount must be a non-negative integer; a fractional or
|
|
57
|
+
// precision-lost number would stringify to a wrong/invalid value. (A
|
|
58
|
+
// bigint is exact at any magnitude, so only the sign is checked here.)
|
|
59
|
+
const { amount } = request
|
|
60
|
+
const valid =
|
|
61
|
+
typeof amount === 'bigint'
|
|
62
|
+
? amount >= 0n
|
|
63
|
+
: Number.isSafeInteger(amount) && amount >= 0
|
|
64
|
+
if (!valid) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`TronTransactionBuilder: TRC20 amount must be a non-negative integer, got ${amount}`
|
|
67
|
+
)
|
|
68
|
+
}
|
|
42
69
|
const functionSelector = 'transfer(address,uint256)'
|
|
43
70
|
const parameter = [
|
|
44
71
|
{ type: 'address', value: request.to },
|
|
45
|
-
|
|
72
|
+
// Pass uint256 as a string so a large bigint amount keeps full
|
|
73
|
+
// precision through tronWeb's ABI encoding.
|
|
74
|
+
{ type: 'uint256', value: amount.toString() }
|
|
46
75
|
]
|
|
47
76
|
|
|
48
77
|
const { transaction, result } =
|
|
@@ -180,7 +180,8 @@ describe('TronTransactionService', () => {
|
|
|
180
180
|
{},
|
|
181
181
|
[
|
|
182
182
|
{ type: 'address', value: 'TToAddr' },
|
|
183
|
-
|
|
183
|
+
// uint256 is passed as a string to preserve precision for large amounts
|
|
184
|
+
{ type: 'uint256', value: '100000' }
|
|
184
185
|
],
|
|
185
186
|
'TFromAddr'
|
|
186
187
|
)
|