@meshconnect/uwc-tron-connector 0.2.0-snapshot.e5598e8 → 0.2.0
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/tron-connector.d.ts +6 -15
- package/dist/tron-connector.d.ts.map +1 -1
- package/dist/tron-connector.js +14 -51
- package/dist/tron-connector.js.map +1 -1
- package/dist/wallets/base.d.ts +0 -26
- package/dist/wallets/base.d.ts.map +1 -1
- package/dist/wallets/base.js +12 -66
- package/dist/wallets/base.js.map +1 -1
- package/package.json +2 -2
- package/src/tron-connector.test.ts +1 -155
- package/src/tron-connector.ts +14 -54
- package/src/wallets/base.ts +11 -83
package/dist/tron-connector.d.ts
CHANGED
|
@@ -15,10 +15,9 @@ type TronConnectProvider = {
|
|
|
15
15
|
/**
|
|
16
16
|
* Mesh-owned Tron wallet connector. Zero third-party Tron runtime deps.
|
|
17
17
|
*
|
|
18
|
-
* One instance fronts
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* `config.enabledWallets` allow-list narrows that set when present.
|
|
18
|
+
* One instance fronts all 5 supported wallets — TronLink, Bitget, OKX,
|
|
19
|
+
* TokenPocket, Trust — selected per-connect by the wallet id. Per-wallet
|
|
20
|
+
* enablement is controlled by `config.enabledWallets`.
|
|
22
21
|
*
|
|
23
22
|
* Transactions are built and broadcast against the Tron full-node HTTP API
|
|
24
23
|
* (`/wallet/*`); signing goes through the wallet's own injected
|
|
@@ -28,9 +27,7 @@ type TronConnectProvider = {
|
|
|
28
27
|
export declare class TronConnector implements Connector {
|
|
29
28
|
private readonly config;
|
|
30
29
|
/** Enabled keys exactly as configured (original case); matched against a
|
|
31
|
-
* wallet's id or injectedId case-insensitively.
|
|
32
|
-
* `enabledWallets` is omitted — meaning no gate (catalog-driven: every
|
|
33
|
-
* metadata-declared Tron wallet is enabled). */
|
|
30
|
+
* wallet's id or injectedId case-insensitively. */
|
|
34
31
|
private readonly enabledKeys;
|
|
35
32
|
private readonly clientByNetwork;
|
|
36
33
|
private readonly state;
|
|
@@ -39,12 +36,7 @@ export declare class TronConnector implements Connector {
|
|
|
39
36
|
/** Listeners attached to the active provider, kept so we can detach on cleanup. */
|
|
40
37
|
private boundListeners;
|
|
41
38
|
constructor(config: TronConnectorConfig);
|
|
42
|
-
/**
|
|
43
|
-
* A wallet is enabled if a configured key equals its id or injectedId. With no
|
|
44
|
-
* configured `enabledWallets`, there is no gate: every wallet the metadata
|
|
45
|
-
* marks Tron-capable is enabled (catalog-driven). An explicit empty list
|
|
46
|
-
* enables nothing.
|
|
47
|
-
*/
|
|
39
|
+
/** A wallet is enabled if a configured key equals its id or injectedId. */
|
|
48
40
|
private isEnabled;
|
|
49
41
|
/** Subscribe to connection-state transitions (decision D3). */
|
|
50
42
|
subscribe(listener: TronStateListener): () => void;
|
|
@@ -60,8 +52,7 @@ export declare class TronConnector implements Connector {
|
|
|
60
52
|
* and is enabled. The reported `id` is the consumer's `WalletMetadata.id` (so
|
|
61
53
|
* core matches discovery results back by id), `injectedId` is the metadata
|
|
62
54
|
* value (the window path). With no `expectedWallets`, falls back to the
|
|
63
|
-
* configured `enabledKeys` treated as injectedIds
|
|
64
|
-
* is omitted — there is then nothing to probe without metadata).
|
|
55
|
+
* configured `enabledKeys` treated as injectedIds.
|
|
65
56
|
*/
|
|
66
57
|
private tronCandidates;
|
|
67
58
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron-connector.d.ts","sourceRoot":"","sources":["../src/tron-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,OAAO,EAEP,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAGlB,qBAAqB,EACrB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"tron-connector.d.ts","sourceRoot":"","sources":["../src/tron-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,OAAO,EAEP,aAAa,EACb,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAGlB,qBAAqB,EACrB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,wBAAwB,CAAA;AAgB/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAqBlD;;;;;GAKG;AACH,KAAK,mBAAmB,GACpB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACrB,yBAAyB,GACzB,iCAAiC,GACjC,qBAAqB,GACrB,wBAAwB,CAAA;AAE5B;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,SAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C;uDACmD;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IACvE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAE/C,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,eAAe,CAAyB;IAChD,mFAAmF;IACnF,OAAO,CAAC,cAAc,CAGf;gBAEK,MAAM,EAAE,mBAAmB;IAKvC,2EAA2E;IAC3E,OAAO,CAAC,SAAS;IAQjB,+DAA+D;IAC/D,SAAS,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAIlD;;;;OAIG;IACG,mBAAmB,CACvB,SAAS,EAAE,SAAS,EACpB,eAAe,CAAC,EAAE,cAAc,EAAE,GACjC,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAoCpC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;;;;;OAOG;IACG,OAAO,CACX,OAAO,EAAE,OAAO,EAChB,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,eAAe,CAAC;IA6D3B;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmB7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBpD,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsEnE;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAmEnC,gFAAgF;IAChF,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,aAAa;IAUrB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,iBAAiB;IAuBzB,6EAA6E;YAC/D,oBAAoB;IAclC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,aAAa;CAUtB"}
|
package/dist/tron-connector.js
CHANGED
|
@@ -4,7 +4,7 @@ import { TronStateMachine } from './events/state-machine';
|
|
|
4
4
|
import { TronGridClient } from './rest/trongrid-client';
|
|
5
5
|
import { assertValidTronChecksum, tronAddressToHex } from './rest/address';
|
|
6
6
|
import { encodeTrc20TransferParams, TRC20_TRANSFER_SELECTOR_HASH } from './rest/abi';
|
|
7
|
-
import { detectProvider,
|
|
7
|
+
import { detectProvider, tronWrapperFor, waitForWalletAddress } from './wallets/base';
|
|
8
8
|
/** Wallet events we mirror into the state machine while connected. */
|
|
9
9
|
const WALLET_EVENTS = ['accountsChanged', 'disconnect'];
|
|
10
10
|
/**
|
|
@@ -12,22 +12,14 @@ const WALLET_EVENTS = ['accountsChanged', 'disconnect'];
|
|
|
12
12
|
* rationale in that method. Override via `TronConnectorConfig.discoveryTimeoutMs`.
|
|
13
13
|
*/
|
|
14
14
|
const DEFAULT_DISCOVERY_TIMEOUT_MS = 300;
|
|
15
|
-
/**
|
|
16
|
-
* Minimum discovery window when running under the bridge. The bridged
|
|
17
|
-
* `window.tronWallets` list is populated asynchronously over Comlink after the
|
|
18
|
-
* iframe handshake, so the short native default would miss it; mirror the
|
|
19
|
-
* legacy `pollForBridgeTronWallets` budget (~1s) with headroom.
|
|
20
|
-
*/
|
|
21
|
-
const BRIDGE_DISCOVERY_FLOOR_MS = 1500;
|
|
22
15
|
/** Largest value an ABI `uint256` (TRC20 amount) can hold: 2^256 - 1. */
|
|
23
16
|
const UINT256_MAX = (1n << 256n) - 1n;
|
|
24
17
|
/**
|
|
25
18
|
* Mesh-owned Tron wallet connector. Zero third-party Tron runtime deps.
|
|
26
19
|
*
|
|
27
|
-
* One instance fronts
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* `config.enabledWallets` allow-list narrows that set when present.
|
|
20
|
+
* One instance fronts all 5 supported wallets — TronLink, Bitget, OKX,
|
|
21
|
+
* TokenPocket, Trust — selected per-connect by the wallet id. Per-wallet
|
|
22
|
+
* enablement is controlled by `config.enabledWallets`.
|
|
31
23
|
*
|
|
32
24
|
* Transactions are built and broadcast against the Tron full-node HTTP API
|
|
33
25
|
* (`/wallet/*`); signing goes through the wallet's own injected
|
|
@@ -37,9 +29,7 @@ const UINT256_MAX = (1n << 256n) - 1n;
|
|
|
37
29
|
export class TronConnector {
|
|
38
30
|
config;
|
|
39
31
|
/** Enabled keys exactly as configured (original case); matched against a
|
|
40
|
-
* wallet's id or injectedId case-insensitively.
|
|
41
|
-
* `enabledWallets` is omitted — meaning no gate (catalog-driven: every
|
|
42
|
-
* metadata-declared Tron wallet is enabled). */
|
|
32
|
+
* wallet's id or injectedId case-insensitively. */
|
|
43
33
|
enabledKeys;
|
|
44
34
|
clientByNetwork = new Map();
|
|
45
35
|
state = new TronStateMachine();
|
|
@@ -49,19 +39,10 @@ export class TronConnector {
|
|
|
49
39
|
boundListeners = [];
|
|
50
40
|
constructor(config) {
|
|
51
41
|
this.config = config;
|
|
52
|
-
this.enabledKeys = config.enabledWallets
|
|
53
|
-
? Array.from(config.enabledWallets)
|
|
54
|
-
: undefined;
|
|
42
|
+
this.enabledKeys = Array.from(config.enabledWallets);
|
|
55
43
|
}
|
|
56
|
-
/**
|
|
57
|
-
* A wallet is enabled if a configured key equals its id or injectedId. With no
|
|
58
|
-
* configured `enabledWallets`, there is no gate: every wallet the metadata
|
|
59
|
-
* marks Tron-capable is enabled (catalog-driven). An explicit empty list
|
|
60
|
-
* enables nothing.
|
|
61
|
-
*/
|
|
44
|
+
/** A wallet is enabled if a configured key equals its id or injectedId. */
|
|
62
45
|
isEnabled(walletId, injectedId) {
|
|
63
|
-
if (this.enabledKeys === undefined)
|
|
64
|
-
return true;
|
|
65
46
|
if (this.enabledKeys.length === 0)
|
|
66
47
|
return false;
|
|
67
48
|
return this.enabledKeys.some(key => {
|
|
@@ -90,10 +71,7 @@ export class TronConnector {
|
|
|
90
71
|
// that inject slightly after page load (injection is async) without
|
|
91
72
|
// stalling the UI; connect(), which targets one already-chosen wallet and
|
|
92
73
|
// can afford to wait, keeps the longer timeout.
|
|
93
|
-
const
|
|
94
|
-
const timeout = isTronBridgeActive()
|
|
95
|
-
? Math.max(configuredTimeout, BRIDGE_DISCOVERY_FLOOR_MS)
|
|
96
|
-
: configuredTimeout;
|
|
74
|
+
const timeout = this.config.discoveryTimeoutMs ?? DEFAULT_DISCOVERY_TIMEOUT_MS;
|
|
97
75
|
const interval = this.config.readyStatePollIntervalMs ?? 50;
|
|
98
76
|
const candidates = this.tronCandidates(expectedWallets);
|
|
99
77
|
// Probe in parallel but place each result by its index, so the returned
|
|
@@ -112,12 +90,11 @@ export class TronConnector {
|
|
|
112
90
|
* and is enabled. The reported `id` is the consumer's `WalletMetadata.id` (so
|
|
113
91
|
* core matches discovery results back by id), `injectedId` is the metadata
|
|
114
92
|
* value (the window path). With no `expectedWallets`, falls back to the
|
|
115
|
-
* configured `enabledKeys` treated as injectedIds
|
|
116
|
-
* is omitted — there is then nothing to probe without metadata).
|
|
93
|
+
* configured `enabledKeys` treated as injectedIds.
|
|
117
94
|
*/
|
|
118
95
|
tronCandidates(expectedWallets) {
|
|
119
96
|
if (!expectedWallets || expectedWallets.length === 0) {
|
|
120
|
-
return
|
|
97
|
+
return this.enabledKeys.map(injectedId => ({
|
|
121
98
|
id: injectedId,
|
|
122
99
|
name: injectedId,
|
|
123
100
|
injectedId
|
|
@@ -154,13 +131,7 @@ export class TronConnector {
|
|
|
154
131
|
const { injectedId, displayName } = this.resolveInjected(walletProvider);
|
|
155
132
|
const wrapper = tronWrapperFor(injectedId, displayName);
|
|
156
133
|
this.state.set({ status: 'connecting', walletId: injectedId });
|
|
157
|
-
|
|
158
|
-
// `window.tronWallets` list (filled over Comlink after the iframe
|
|
159
|
-
// handshake), so floor the detect timeout the same way discovery does.
|
|
160
|
-
const detectTimeout = isTronBridgeActive()
|
|
161
|
-
? Math.max(this.config.readyStateTimeoutMs ?? 3000, BRIDGE_DISCOVERY_FLOOR_MS)
|
|
162
|
-
: (this.config.readyStateTimeoutMs ?? 3000);
|
|
163
|
-
const provider = await detectProvider(wrapper, detectTimeout, this.config.readyStatePollIntervalMs ?? 50);
|
|
134
|
+
const provider = await detectProvider(wrapper, this.config.readyStateTimeoutMs ?? 3000, this.config.readyStatePollIntervalMs ?? 50);
|
|
164
135
|
if (!provider) {
|
|
165
136
|
// Same consistency guard as the catch below: a failed reconnect (target
|
|
166
137
|
// not installed) must not leave `active` pointing at the prior wallet.
|
|
@@ -235,17 +206,15 @@ export class TronConnector {
|
|
|
235
206
|
async signMessage(message) {
|
|
236
207
|
const active = this.requireActive('signMessage');
|
|
237
208
|
const tronWeb = active.provider.tronWeb;
|
|
238
|
-
|
|
209
|
+
const signMessageV2 = tronWeb?.trx.signMessageV2;
|
|
210
|
+
if (!tronWeb || !signMessageV2) {
|
|
239
211
|
throw new WalletConnectorError({
|
|
240
212
|
type: 'unknown',
|
|
241
213
|
message: 'Active Tron wallet does not support message signing'
|
|
242
214
|
});
|
|
243
215
|
}
|
|
244
216
|
try {
|
|
245
|
-
|
|
246
|
-
// provider and the call works through the bridged Comlink proxy, whose
|
|
247
|
-
// function members can't be re-bound with `.call`.
|
|
248
|
-
const signature = await tronWeb.trx.signMessageV2(message);
|
|
217
|
+
const signature = await signMessageV2.call(tronWeb.trx, message);
|
|
249
218
|
// Match the existing injected-connector tron path, which wraps the
|
|
250
219
|
// signature as a StandardSignature rather than the TronSignature variant.
|
|
251
220
|
return { type: 'standard', signature };
|
|
@@ -491,12 +460,6 @@ export class TronConnector {
|
|
|
491
460
|
return client;
|
|
492
461
|
}
|
|
493
462
|
bindWalletEvents(provider) {
|
|
494
|
-
// The bridged provider is a Comlink proxy; passing a local handler to its
|
|
495
|
-
// `on` can't be cloned across postMessage (and the proxy makes `on` look
|
|
496
|
-
// truthy regardless). Account changes aren't delivered through the bridge,
|
|
497
|
-
// so skip subscription entirely in bridge mode.
|
|
498
|
-
if (isTronBridgeActive())
|
|
499
|
-
return;
|
|
500
463
|
if (!provider.on)
|
|
501
464
|
return;
|
|
502
465
|
for (const event of WALLET_EVENTS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tron-connector.js","sourceRoot":"","sources":["../src/tron-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tron-connector.js","sourceRoot":"","sources":["../src/tron-connector.ts"],"names":[],"mappings":"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"}
|
package/dist/wallets/base.d.ts
CHANGED
|
@@ -5,20 +5,10 @@ import type { SignedTronTransaction } from '../rest/trongrid-client';
|
|
|
5
5
|
* crypto runs there, at zero bundle cost to us.
|
|
6
6
|
*/
|
|
7
7
|
export interface InjectedTronWeb {
|
|
8
|
-
/** Synchronous address accessor on locally-injected providers. */
|
|
9
8
|
defaultAddress?: {
|
|
10
9
|
base58?: string | false;
|
|
11
10
|
hex?: string | false;
|
|
12
11
|
};
|
|
13
|
-
/**
|
|
14
|
-
* Async address accessor exposed by the *bridged* provider (the local
|
|
15
|
-
* `defaultAddress` property can't cross the Comlink boundary, so the bridge
|
|
16
|
-
* surfaces it as a method). Present only in iframe/bridge mode.
|
|
17
|
-
*/
|
|
18
|
-
getDefaultAddress?(): Promise<{
|
|
19
|
-
base58?: string | false;
|
|
20
|
-
hex?: string | false;
|
|
21
|
-
}>;
|
|
22
12
|
trx: {
|
|
23
13
|
/** Sign an unsigned transaction object. Returns the signed transaction. */
|
|
24
14
|
sign(transaction: unknown): Promise<SignedTronTransaction>;
|
|
@@ -65,22 +55,6 @@ export interface TronWalletWrapper {
|
|
|
65
55
|
*/
|
|
66
56
|
readyEventName?: string;
|
|
67
57
|
}
|
|
68
|
-
/**
|
|
69
|
-
* True when running inside the UWC bridge (a Mesh Link iframe). `BridgeChild`
|
|
70
|
-
* sets this flag once the Comlink handshake with the top frame begins. In this
|
|
71
|
-
* mode every provider call must go through the bridged proxy (which routes it to
|
|
72
|
-
* the top frame), or it re-hits the wallet's frame-position gate (e.g. Trust
|
|
73
|
-
* Wallet's `dapp.frames-disallowed`).
|
|
74
|
-
*/
|
|
75
|
-
export declare function isTronBridgeActive(): boolean;
|
|
76
|
-
/**
|
|
77
|
-
* Resolve a wallet's *bridged* provider from `window.tronWallets` (populated by
|
|
78
|
-
* `BridgeChild` from the top-frame `BridgeParent`), matched by `injectedId`.
|
|
79
|
-
* Returns undefined until the bridge handshake has populated the list. The
|
|
80
|
-
* returned provider is a Comlink proxy: its methods are async and route to the
|
|
81
|
-
* real provider in the top frame.
|
|
82
|
-
*/
|
|
83
|
-
export declare function resolveBridgedTronProvider(injectedId: string): InjectedTronProvider | undefined;
|
|
84
58
|
/** Safely walk `window` down a path of keys (e.g. ['okxwallet','tronLink']). */
|
|
85
59
|
export declare function readWindowPath(path: readonly string[]): InjectedTronProvider | undefined;
|
|
86
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/wallets/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/wallets/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAEpE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KACrB,CAAA;IACD,GAAG,EAAE;QACH,2EAA2E;QAC3E,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAC1D,8EAA8E;QAC9E,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KACjD,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,4DAA4D;IAC5D,OAAO,CAAC,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;IAC/D,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAA;CAC5E;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,EAAE,EAAE,MAAM,CAAA;IACV,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,2EAA2E;IAC3E,eAAe,IAAI,oBAAoB,GAAG,SAAS,CAAA;IACnD;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,oBAAoB,GAAG,SAAS,CASlC;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,QAAQ,IAAI,oBAAoB,CAIlC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,SAAO,EAChB,cAAc,SAAK,GAClB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuB7B;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,GAAG,UAAU,EAAE,KAAK,CAAC,oBAAoB,GAAG,SAAS,CAAC,GACrD,oBAAoB,GAAG,SAAS,CAKlC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,SAAO,EAChB,cAAc,SAAK,GAClB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAsC3C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,mEAAmE;IACnE,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CACjD;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAUnE,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,WAAW,SAAa,GACvB,iBAAiB,CAmBnB"}
|
package/dist/wallets/base.js
CHANGED
|
@@ -1,33 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* True when running inside the UWC bridge (a Mesh Link iframe). `BridgeChild`
|
|
3
|
-
* sets this flag once the Comlink handshake with the top frame begins. In this
|
|
4
|
-
* mode every provider call must go through the bridged proxy (which routes it to
|
|
5
|
-
* the top frame), or it re-hits the wallet's frame-position gate (e.g. Trust
|
|
6
|
-
* Wallet's `dapp.frames-disallowed`).
|
|
7
|
-
*/
|
|
8
|
-
export function isTronBridgeActive() {
|
|
9
|
-
return (typeof window !== 'undefined' &&
|
|
10
|
-
window
|
|
11
|
-
.UWCBridgeChildInitialized === true);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Resolve a wallet's *bridged* provider from `window.tronWallets` (populated by
|
|
15
|
-
* `BridgeChild` from the top-frame `BridgeParent`), matched by `injectedId`.
|
|
16
|
-
* Returns undefined until the bridge handshake has populated the list. The
|
|
17
|
-
* returned provider is a Comlink proxy: its methods are async and route to the
|
|
18
|
-
* real provider in the top frame.
|
|
19
|
-
*/
|
|
20
|
-
export function resolveBridgedTronProvider(injectedId) {
|
|
21
|
-
if (typeof window === 'undefined')
|
|
22
|
-
return undefined;
|
|
23
|
-
const list = window
|
|
24
|
-
.tronWallets;
|
|
25
|
-
if (!Array.isArray(list))
|
|
26
|
-
return undefined;
|
|
27
|
-
const target = injectedId.toLowerCase();
|
|
28
|
-
const entry = list.find(w => w?.injectedId?.toLowerCase() === target);
|
|
29
|
-
return entry?.provider;
|
|
30
|
-
}
|
|
31
1
|
/** Safely walk `window` down a path of keys (e.g. ['okxwallet','tronLink']). */
|
|
32
2
|
export function readWindowPath(path) {
|
|
33
3
|
if (typeof window === 'undefined')
|
|
@@ -62,47 +32,29 @@ export function isProviderReady(provider) {
|
|
|
62
32
|
* read can miss it. Resolves the base58 address, or `undefined` on timeout.
|
|
63
33
|
*/
|
|
64
34
|
export function waitForWalletAddress(provider, timeoutMs = 3000, pollIntervalMs = 50) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
// expose the sync property. Read whichever is available.
|
|
68
|
-
const read = async () => {
|
|
69
|
-
const tronWeb = provider.tronWeb;
|
|
70
|
-
if (!tronWeb)
|
|
71
|
-
return undefined;
|
|
72
|
-
let base58;
|
|
73
|
-
if (typeof tronWeb.getDefaultAddress === 'function') {
|
|
74
|
-
try {
|
|
75
|
-
base58 = (await tronWeb.getDefaultAddress())?.base58;
|
|
76
|
-
}
|
|
77
|
-
catch {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
base58 = tronWeb.defaultAddress?.base58;
|
|
83
|
-
}
|
|
35
|
+
const read = () => {
|
|
36
|
+
const base58 = provider.tronWeb?.defaultAddress?.base58;
|
|
84
37
|
return typeof base58 === 'string' && base58.length > 0 ? base58 : undefined;
|
|
85
38
|
};
|
|
39
|
+
const immediate = read();
|
|
40
|
+
if (immediate)
|
|
41
|
+
return Promise.resolve(immediate);
|
|
86
42
|
return new Promise(resolve => {
|
|
87
43
|
let settled = false;
|
|
88
|
-
const start = Date.now();
|
|
89
44
|
const finish = (value) => {
|
|
90
45
|
if (settled)
|
|
91
46
|
return;
|
|
92
47
|
settled = true;
|
|
48
|
+
clearInterval(timer);
|
|
49
|
+
clearTimeout(deadline);
|
|
93
50
|
resolve(value);
|
|
94
51
|
};
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
return;
|
|
98
|
-
const address = await read();
|
|
52
|
+
const timer = setInterval(() => {
|
|
53
|
+
const address = read();
|
|
99
54
|
if (address)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
setTimeout(tick, pollIntervalMs);
|
|
104
|
-
};
|
|
105
|
-
void tick();
|
|
55
|
+
finish(address);
|
|
56
|
+
}, pollIntervalMs);
|
|
57
|
+
const deadline = setTimeout(() => finish(undefined), timeoutMs);
|
|
106
58
|
});
|
|
107
59
|
}
|
|
108
60
|
/**
|
|
@@ -194,12 +146,6 @@ export function tronWrapperFor(injectedId, displayName = injectedId) {
|
|
|
194
146
|
? { readyEventName: behavior.readyEventName }
|
|
195
147
|
: {}),
|
|
196
148
|
resolveProvider() {
|
|
197
|
-
// In bridge mode the only non-gating provider is the bridged proxy (it
|
|
198
|
-
// routes calls to the top frame). Never fall back to the iframe-local
|
|
199
|
-
// window path — that provider would re-hit the wallet's frame gate.
|
|
200
|
-
if (isTronBridgeActive()) {
|
|
201
|
-
return resolveBridgedTronProvider(injectedId);
|
|
202
|
-
}
|
|
203
149
|
return firstReadyOf(readWindowPath(primaryPath), ...fallbackPaths.map(path => readWindowPath(path)));
|
|
204
150
|
}
|
|
205
151
|
};
|
package/dist/wallets/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/wallets/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/wallets/base.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/uwc-tron-connector",
|
|
3
|
-
"version": "0.2.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Mesh-owned Tron wallet connector for Universal Wallet Connector — zero third-party Tron runtime deps; signs via the wallet's injected tronWeb, builds/broadcasts via the Tron full-node HTTP API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"src"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@meshconnect/uwc-types": "0.16.0
|
|
19
|
+
"@meshconnect/uwc-types": "0.16.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"typescript": "^5.9.3"
|
|
@@ -142,48 +142,12 @@ function clearWindow(): void {
|
|
|
142
142
|
'trustWallet',
|
|
143
143
|
'trustwallet',
|
|
144
144
|
'bitkeep',
|
|
145
|
-
'tokenpocket'
|
|
146
|
-
'tronWallets',
|
|
147
|
-
'UWCBridgeChildInitialized'
|
|
145
|
+
'tokenpocket'
|
|
148
146
|
]) {
|
|
149
147
|
delete w[key]
|
|
150
148
|
}
|
|
151
149
|
}
|
|
152
150
|
|
|
153
|
-
// A bridged Tron provider as `BridgeParent.getTronWallets` exposes it over
|
|
154
|
-
// Comlink: async `request`, async `tronWeb.getDefaultAddress()` (no sync
|
|
155
|
-
// `defaultAddress`), async `trx.sign`/`signMessageV2`. `on` is present but must
|
|
156
|
-
// never be called in bridge mode (a real Comlink proxy can't clone the handler).
|
|
157
|
-
function makeBridgedProvider(address: string | null) {
|
|
158
|
-
return {
|
|
159
|
-
ready: true,
|
|
160
|
-
request: vi.fn(async () => ({ code: 200 })),
|
|
161
|
-
on: vi.fn(),
|
|
162
|
-
removeListener: vi.fn(),
|
|
163
|
-
tronWeb: {
|
|
164
|
-
getDefaultAddress: vi.fn(async () => ({ base58: address, hex: false })),
|
|
165
|
-
trx: {
|
|
166
|
-
sign: vi.fn(async (tx: object) => ({ ...tx, signature: ['SIG'] })),
|
|
167
|
-
signMessageV2: vi.fn(async () => '0xbridgesig')
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/** Put the bridge in iframe mode with the given bridged wallet entries on window. */
|
|
174
|
-
function installBridge(
|
|
175
|
-
entries: Array<{ injectedId: string; name?: string; provider: unknown }>
|
|
176
|
-
): void {
|
|
177
|
-
const w = window as unknown as Record<string, unknown>
|
|
178
|
-
w['UWCBridgeChildInitialized'] = true
|
|
179
|
-
w['tronWallets'] = entries.map(e => ({
|
|
180
|
-
uuid: `tron-${e.injectedId}`.toLowerCase().replace(/\./g, '-'),
|
|
181
|
-
name: e.name ?? e.injectedId,
|
|
182
|
-
injectedId: e.injectedId,
|
|
183
|
-
provider: e.provider
|
|
184
|
-
}))
|
|
185
|
-
}
|
|
186
|
-
|
|
187
151
|
// ---- fetch queue -------------------------------------------------------------
|
|
188
152
|
|
|
189
153
|
let fetchQueue: unknown[] = []
|
|
@@ -328,124 +292,6 @@ describe('getAvailableWallets', () => {
|
|
|
328
292
|
})
|
|
329
293
|
})
|
|
330
294
|
|
|
331
|
-
// Catalog-driven mode: `enabledWallets` omitted → every wallet the passed-in
|
|
332
|
-
// metadata marks Tron-capable is enabled, no hardcoded allow-list needed.
|
|
333
|
-
const catalogConfig = {
|
|
334
|
-
readyStateTimeoutMs: 100,
|
|
335
|
-
discoveryTimeoutMs: 40,
|
|
336
|
-
readyStatePollIntervalMs: 10
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
describe('catalog-driven mode (enabledWallets omitted)', () => {
|
|
340
|
-
it('enables every metadata-declared wallet that is injected', async () => {
|
|
341
|
-
install('tronlink', makeProvider('T1'))
|
|
342
|
-
install('okx', makeProvider('T2'))
|
|
343
|
-
// 'trust' is in the catalog but not installed → excluded by the probe.
|
|
344
|
-
const c = new TronConnector(catalogConfig)
|
|
345
|
-
const result = await c.getAvailableWallets('tron', [
|
|
346
|
-
metaFor('tronlink', 'TronLink'),
|
|
347
|
-
metaFor('okx', 'OKX'),
|
|
348
|
-
metaFor('trust', 'Trust')
|
|
349
|
-
])
|
|
350
|
-
expect(result.map(r => r.uuid).sort()).toEqual(['okx', 'tronlink'])
|
|
351
|
-
})
|
|
352
|
-
|
|
353
|
-
it('connects a wallet present in the metadata without any allow-list', async () => {
|
|
354
|
-
install('okx', makeProvider('TokxAddr'))
|
|
355
|
-
const c = new TronConnector(catalogConfig)
|
|
356
|
-
const result = await c.connect(MAINNET, provFor('okx'))
|
|
357
|
-
expect(result.address).toBe('TokxAddr')
|
|
358
|
-
})
|
|
359
|
-
|
|
360
|
-
it('returns [] when neither enabledWallets nor expectedWallets are given', async () => {
|
|
361
|
-
// No metadata and no configured keys → nothing to probe.
|
|
362
|
-
install('tronlink', makeProvider('T1'))
|
|
363
|
-
const c = new TronConnector(catalogConfig)
|
|
364
|
-
expect(await c.getAvailableWallets('tron')).toEqual([])
|
|
365
|
-
})
|
|
366
|
-
|
|
367
|
-
it('an explicit empty enabledWallets still enables nothing', async () => {
|
|
368
|
-
install('tronlink', makeProvider('T1'))
|
|
369
|
-
const c = new TronConnector({ ...catalogConfig, enabledWallets: [] })
|
|
370
|
-
expect(
|
|
371
|
-
await c.getAvailableWallets('tron', [metaFor('tronlink', 'TronLink')])
|
|
372
|
-
).toEqual([])
|
|
373
|
-
await expect(
|
|
374
|
-
c.connect(MAINNET, provFor('tronlink'))
|
|
375
|
-
).rejects.toBeInstanceOf(WalletConnectorError)
|
|
376
|
-
})
|
|
377
|
-
})
|
|
378
|
-
|
|
379
|
-
describe('bridge mode (iframe / UWCBridgeChildInitialized)', () => {
|
|
380
|
-
it('discovers wallets from window.tronWallets, ignoring local window paths', async () => {
|
|
381
|
-
install('tronlink', makeProvider('TLOCAL')) // must be ignored in bridge mode
|
|
382
|
-
installBridge([
|
|
383
|
-
{
|
|
384
|
-
injectedId: 'tronLink',
|
|
385
|
-
name: 'TronLink',
|
|
386
|
-
provider: makeBridgedProvider('TBRIDGE')
|
|
387
|
-
}
|
|
388
|
-
])
|
|
389
|
-
const c = new TronConnector(fastConfig(['tronlink']))
|
|
390
|
-
const result = await c.getAvailableWallets('tron', [
|
|
391
|
-
metaFor('tronlink', 'TronLink')
|
|
392
|
-
])
|
|
393
|
-
expect(result.map(r => r.uuid)).toEqual(['tronlink'])
|
|
394
|
-
expect(result[0]?.injectedId).toBe('tronLink')
|
|
395
|
-
})
|
|
396
|
-
|
|
397
|
-
it('connects via the bridged provider and reads the address via getDefaultAddress()', async () => {
|
|
398
|
-
const bridged = makeBridgedProvider('TBRIDGE')
|
|
399
|
-
install('tronlink', makeProvider('TLOCAL')) // must be ignored
|
|
400
|
-
installBridge([{ injectedId: 'tronLink', provider: bridged }])
|
|
401
|
-
const c = new TronConnector(fastConfig(['tronlink']))
|
|
402
|
-
const result = await c.connect(MAINNET, provFor('tronlink'))
|
|
403
|
-
expect(result.address).toBe('TBRIDGE')
|
|
404
|
-
expect(bridged.request).toHaveBeenCalled()
|
|
405
|
-
expect(bridged.tronWeb.getDefaultAddress).toHaveBeenCalled()
|
|
406
|
-
// The bridged proxy's `on` must never be invoked (handler can't cross Comlink).
|
|
407
|
-
expect(bridged.on).not.toHaveBeenCalled()
|
|
408
|
-
})
|
|
409
|
-
|
|
410
|
-
it('signs a message through the bridged signMessageV2', async () => {
|
|
411
|
-
const bridged = makeBridgedProvider('TBRIDGE')
|
|
412
|
-
installBridge([{ injectedId: 'tronLink', provider: bridged }])
|
|
413
|
-
const c = new TronConnector(fastConfig(['tronlink']))
|
|
414
|
-
await c.connect(MAINNET, provFor('tronlink'))
|
|
415
|
-
expect(await c.signMessage('hi')).toEqual({
|
|
416
|
-
type: 'standard',
|
|
417
|
-
signature: '0xbridgesig'
|
|
418
|
-
})
|
|
419
|
-
expect(bridged.tronWeb.trx.signMessageV2).toHaveBeenCalledWith('hi')
|
|
420
|
-
})
|
|
421
|
-
|
|
422
|
-
it('signs and broadcasts a native transfer through the bridged provider', async () => {
|
|
423
|
-
const bridged = makeBridgedProvider('TFrom')
|
|
424
|
-
// A competing iframe-local provider: bridge mode must never sign through it.
|
|
425
|
-
const local = makeProvider('TLOCAL')
|
|
426
|
-
install('tronlink', local)
|
|
427
|
-
installBridge([{ injectedId: 'tronLink', provider: bridged }])
|
|
428
|
-
const c = new TronConnector(fastConfig(['tronlink']))
|
|
429
|
-
await c.connect(MAINNET, provFor('tronlink'))
|
|
430
|
-
enqueue(
|
|
431
|
-
{
|
|
432
|
-
txID: 'b1',
|
|
433
|
-
raw_data: nativeRawData('TFrom', 'TTo', 1_000_000),
|
|
434
|
-
visible: true
|
|
435
|
-
},
|
|
436
|
-
{ result: true, txid: 'b1' }
|
|
437
|
-
)
|
|
438
|
-
const txid = await c.sendTransaction({
|
|
439
|
-
from: 'TFrom',
|
|
440
|
-
to: 'TTo',
|
|
441
|
-
amount: 1_000_000
|
|
442
|
-
})
|
|
443
|
-
expect(txid).toBe('b1')
|
|
444
|
-
expect(bridged.tronWeb.trx.sign).toHaveBeenCalledOnce()
|
|
445
|
-
expect(local.tronWeb.trx.sign).not.toHaveBeenCalled()
|
|
446
|
-
})
|
|
447
|
-
})
|
|
448
|
-
|
|
449
295
|
describe('connect', () => {
|
|
450
296
|
it('connects an enabled, installed wallet and returns the address', async () => {
|
|
451
297
|
install('tronlink', makeProvider('TtronlinkAddr'))
|
package/src/tron-connector.ts
CHANGED
|
@@ -34,7 +34,6 @@ import {
|
|
|
34
34
|
} from './rest/abi'
|
|
35
35
|
import {
|
|
36
36
|
detectProvider,
|
|
37
|
-
isTronBridgeActive,
|
|
38
37
|
tronWrapperFor,
|
|
39
38
|
waitForWalletAddress,
|
|
40
39
|
type InjectedTronProvider
|
|
@@ -50,14 +49,6 @@ const WALLET_EVENTS = ['accountsChanged', 'disconnect'] as const
|
|
|
50
49
|
*/
|
|
51
50
|
const DEFAULT_DISCOVERY_TIMEOUT_MS = 300
|
|
52
51
|
|
|
53
|
-
/**
|
|
54
|
-
* Minimum discovery window when running under the bridge. The bridged
|
|
55
|
-
* `window.tronWallets` list is populated asynchronously over Comlink after the
|
|
56
|
-
* iframe handshake, so the short native default would miss it; mirror the
|
|
57
|
-
* legacy `pollForBridgeTronWallets` budget (~1s) with headroom.
|
|
58
|
-
*/
|
|
59
|
-
const BRIDGE_DISCOVERY_FLOOR_MS = 1500
|
|
60
|
-
|
|
61
52
|
/** Largest value an ABI `uint256` (TRC20 amount) can hold: 2^256 - 1. */
|
|
62
53
|
const UINT256_MAX = (1n << 256n) - 1n
|
|
63
54
|
|
|
@@ -85,10 +76,9 @@ type TronConnectProvider =
|
|
|
85
76
|
/**
|
|
86
77
|
* Mesh-owned Tron wallet connector. Zero third-party Tron runtime deps.
|
|
87
78
|
*
|
|
88
|
-
* One instance fronts
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* `config.enabledWallets` allow-list narrows that set when present.
|
|
79
|
+
* One instance fronts all 5 supported wallets — TronLink, Bitget, OKX,
|
|
80
|
+
* TokenPocket, Trust — selected per-connect by the wallet id. Per-wallet
|
|
81
|
+
* enablement is controlled by `config.enabledWallets`.
|
|
92
82
|
*
|
|
93
83
|
* Transactions are built and broadcast against the Tron full-node HTTP API
|
|
94
84
|
* (`/wallet/*`); signing goes through the wallet's own injected
|
|
@@ -98,10 +88,8 @@ type TronConnectProvider =
|
|
|
98
88
|
export class TronConnector implements Connector {
|
|
99
89
|
private readonly config: TronConnectorConfig
|
|
100
90
|
/** Enabled keys exactly as configured (original case); matched against a
|
|
101
|
-
* wallet's id or injectedId case-insensitively.
|
|
102
|
-
|
|
103
|
-
* metadata-declared Tron wallet is enabled). */
|
|
104
|
-
private readonly enabledKeys: readonly string[] | undefined
|
|
91
|
+
* wallet's id or injectedId case-insensitively. */
|
|
92
|
+
private readonly enabledKeys: readonly string[]
|
|
105
93
|
private readonly clientByNetwork = new Map<NetworkId, TronGridClient>()
|
|
106
94
|
private readonly state = new TronStateMachine()
|
|
107
95
|
|
|
@@ -115,19 +103,11 @@ export class TronConnector implements Connector {
|
|
|
115
103
|
|
|
116
104
|
constructor(config: TronConnectorConfig) {
|
|
117
105
|
this.config = config
|
|
118
|
-
this.enabledKeys = config.enabledWallets
|
|
119
|
-
? Array.from(config.enabledWallets)
|
|
120
|
-
: undefined
|
|
106
|
+
this.enabledKeys = Array.from(config.enabledWallets)
|
|
121
107
|
}
|
|
122
108
|
|
|
123
|
-
/**
|
|
124
|
-
* A wallet is enabled if a configured key equals its id or injectedId. With no
|
|
125
|
-
* configured `enabledWallets`, there is no gate: every wallet the metadata
|
|
126
|
-
* marks Tron-capable is enabled (catalog-driven). An explicit empty list
|
|
127
|
-
* enables nothing.
|
|
128
|
-
*/
|
|
109
|
+
/** A wallet is enabled if a configured key equals its id or injectedId. */
|
|
129
110
|
private isEnabled(walletId: string, injectedId: string): boolean {
|
|
130
|
-
if (this.enabledKeys === undefined) return true
|
|
131
111
|
if (this.enabledKeys.length === 0) return false
|
|
132
112
|
return this.enabledKeys.some(key => {
|
|
133
113
|
const k = key.toLowerCase()
|
|
@@ -160,11 +140,8 @@ export class TronConnector implements Connector {
|
|
|
160
140
|
// that inject slightly after page load (injection is async) without
|
|
161
141
|
// stalling the UI; connect(), which targets one already-chosen wallet and
|
|
162
142
|
// can afford to wait, keeps the longer timeout.
|
|
163
|
-
const
|
|
143
|
+
const timeout =
|
|
164
144
|
this.config.discoveryTimeoutMs ?? DEFAULT_DISCOVERY_TIMEOUT_MS
|
|
165
|
-
const timeout = isTronBridgeActive()
|
|
166
|
-
? Math.max(configuredTimeout, BRIDGE_DISCOVERY_FLOOR_MS)
|
|
167
|
-
: configuredTimeout
|
|
168
145
|
const interval = this.config.readyStatePollIntervalMs ?? 50
|
|
169
146
|
const candidates = this.tronCandidates(expectedWallets)
|
|
170
147
|
|
|
@@ -193,14 +170,13 @@ export class TronConnector implements Connector {
|
|
|
193
170
|
* and is enabled. The reported `id` is the consumer's `WalletMetadata.id` (so
|
|
194
171
|
* core matches discovery results back by id), `injectedId` is the metadata
|
|
195
172
|
* value (the window path). With no `expectedWallets`, falls back to the
|
|
196
|
-
* configured `enabledKeys` treated as injectedIds
|
|
197
|
-
* is omitted — there is then nothing to probe without metadata).
|
|
173
|
+
* configured `enabledKeys` treated as injectedIds.
|
|
198
174
|
*/
|
|
199
175
|
private tronCandidates(
|
|
200
176
|
expectedWallets?: WalletMetadata[]
|
|
201
177
|
): Array<{ id: string; name: string; injectedId: string }> {
|
|
202
178
|
if (!expectedWallets || expectedWallets.length === 0) {
|
|
203
|
-
return
|
|
179
|
+
return this.enabledKeys.map(injectedId => ({
|
|
204
180
|
id: injectedId,
|
|
205
181
|
name: injectedId,
|
|
206
182
|
injectedId
|
|
@@ -242,18 +218,9 @@ export class TronConnector implements Connector {
|
|
|
242
218
|
|
|
243
219
|
this.state.set({ status: 'connecting', walletId: injectedId })
|
|
244
220
|
|
|
245
|
-
// In bridge mode the provider resolves from the async-populated
|
|
246
|
-
// `window.tronWallets` list (filled over Comlink after the iframe
|
|
247
|
-
// handshake), so floor the detect timeout the same way discovery does.
|
|
248
|
-
const detectTimeout = isTronBridgeActive()
|
|
249
|
-
? Math.max(
|
|
250
|
-
this.config.readyStateTimeoutMs ?? 3000,
|
|
251
|
-
BRIDGE_DISCOVERY_FLOOR_MS
|
|
252
|
-
)
|
|
253
|
-
: (this.config.readyStateTimeoutMs ?? 3000)
|
|
254
221
|
const provider = await detectProvider(
|
|
255
222
|
wrapper,
|
|
256
|
-
|
|
223
|
+
this.config.readyStateTimeoutMs ?? 3000,
|
|
257
224
|
this.config.readyStatePollIntervalMs ?? 50
|
|
258
225
|
)
|
|
259
226
|
if (!provider) {
|
|
@@ -338,17 +305,15 @@ export class TronConnector implements Connector {
|
|
|
338
305
|
async signMessage(message: string): Promise<SignatureType> {
|
|
339
306
|
const active = this.requireActive('signMessage')
|
|
340
307
|
const tronWeb = active.provider.tronWeb
|
|
341
|
-
|
|
308
|
+
const signMessageV2 = tronWeb?.trx.signMessageV2
|
|
309
|
+
if (!tronWeb || !signMessageV2) {
|
|
342
310
|
throw new WalletConnectorError({
|
|
343
311
|
type: 'unknown',
|
|
344
312
|
message: 'Active Tron wallet does not support message signing'
|
|
345
313
|
})
|
|
346
314
|
}
|
|
347
315
|
try {
|
|
348
|
-
|
|
349
|
-
// provider and the call works through the bridged Comlink proxy, whose
|
|
350
|
-
// function members can't be re-bound with `.call`.
|
|
351
|
-
const signature = await tronWeb.trx.signMessageV2(message)
|
|
316
|
+
const signature = await signMessageV2.call(tronWeb.trx, message)
|
|
352
317
|
// Match the existing injected-connector tron path, which wraps the
|
|
353
318
|
// signature as a StandardSignature rather than the TronSignature variant.
|
|
354
319
|
return { type: 'standard', signature }
|
|
@@ -627,11 +592,6 @@ export class TronConnector implements Connector {
|
|
|
627
592
|
}
|
|
628
593
|
|
|
629
594
|
private bindWalletEvents(provider: InjectedTronProvider): void {
|
|
630
|
-
// The bridged provider is a Comlink proxy; passing a local handler to its
|
|
631
|
-
// `on` can't be cloned across postMessage (and the proxy makes `on` look
|
|
632
|
-
// truthy regardless). Account changes aren't delivered through the bridge,
|
|
633
|
-
// so skip subscription entirely in bridge mode.
|
|
634
|
-
if (isTronBridgeActive()) return
|
|
635
595
|
if (!provider.on) return
|
|
636
596
|
for (const event of WALLET_EVENTS) {
|
|
637
597
|
const handler = (...args: unknown[]) => this.onWalletEvent(event, args[0])
|
package/src/wallets/base.ts
CHANGED
|
@@ -6,20 +6,10 @@ import type { SignedTronTransaction } from '../rest/trongrid-client'
|
|
|
6
6
|
* crypto runs there, at zero bundle cost to us.
|
|
7
7
|
*/
|
|
8
8
|
export interface InjectedTronWeb {
|
|
9
|
-
/** Synchronous address accessor on locally-injected providers. */
|
|
10
9
|
defaultAddress?: {
|
|
11
10
|
base58?: string | false
|
|
12
11
|
hex?: string | false
|
|
13
12
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Async address accessor exposed by the *bridged* provider (the local
|
|
16
|
-
* `defaultAddress` property can't cross the Comlink boundary, so the bridge
|
|
17
|
-
* surfaces it as a method). Present only in iframe/bridge mode.
|
|
18
|
-
*/
|
|
19
|
-
getDefaultAddress?(): Promise<{
|
|
20
|
-
base58?: string | false
|
|
21
|
-
hex?: string | false
|
|
22
|
-
}>
|
|
23
13
|
trx: {
|
|
24
14
|
/** Sign an unsigned transaction object. Returns the signed transaction. */
|
|
25
15
|
sign(transaction: unknown): Promise<SignedTronTransaction>
|
|
@@ -66,48 +56,6 @@ export interface TronWalletWrapper {
|
|
|
66
56
|
readyEventName?: string
|
|
67
57
|
}
|
|
68
58
|
|
|
69
|
-
/**
|
|
70
|
-
* True when running inside the UWC bridge (a Mesh Link iframe). `BridgeChild`
|
|
71
|
-
* sets this flag once the Comlink handshake with the top frame begins. In this
|
|
72
|
-
* mode every provider call must go through the bridged proxy (which routes it to
|
|
73
|
-
* the top frame), or it re-hits the wallet's frame-position gate (e.g. Trust
|
|
74
|
-
* Wallet's `dapp.frames-disallowed`).
|
|
75
|
-
*/
|
|
76
|
-
export function isTronBridgeActive(): boolean {
|
|
77
|
-
return (
|
|
78
|
-
typeof window !== 'undefined' &&
|
|
79
|
-
(window as unknown as { UWCBridgeChildInitialized?: boolean })
|
|
80
|
-
.UWCBridgeChildInitialized === true
|
|
81
|
-
)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/** A bridged Tron wallet entry as populated on `window.tronWallets` by `BridgeChild`. */
|
|
85
|
-
interface BridgedTronWalletEntry {
|
|
86
|
-
uuid?: string
|
|
87
|
-
name?: string
|
|
88
|
-
injectedId?: string
|
|
89
|
-
provider?: InjectedTronProvider
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Resolve a wallet's *bridged* provider from `window.tronWallets` (populated by
|
|
94
|
-
* `BridgeChild` from the top-frame `BridgeParent`), matched by `injectedId`.
|
|
95
|
-
* Returns undefined until the bridge handshake has populated the list. The
|
|
96
|
-
* returned provider is a Comlink proxy: its methods are async and route to the
|
|
97
|
-
* real provider in the top frame.
|
|
98
|
-
*/
|
|
99
|
-
export function resolveBridgedTronProvider(
|
|
100
|
-
injectedId: string
|
|
101
|
-
): InjectedTronProvider | undefined {
|
|
102
|
-
if (typeof window === 'undefined') return undefined
|
|
103
|
-
const list = (window as unknown as { tronWallets?: BridgedTronWalletEntry[] })
|
|
104
|
-
.tronWallets
|
|
105
|
-
if (!Array.isArray(list)) return undefined
|
|
106
|
-
const target = injectedId.toLowerCase()
|
|
107
|
-
const entry = list.find(w => w?.injectedId?.toLowerCase() === target)
|
|
108
|
-
return entry?.provider
|
|
109
|
-
}
|
|
110
|
-
|
|
111
59
|
/** Safely walk `window` down a path of keys (e.g. ['okxwallet','tronLink']). */
|
|
112
60
|
export function readWindowPath(
|
|
113
61
|
path: readonly string[]
|
|
@@ -151,41 +99,27 @@ export function waitForWalletAddress(
|
|
|
151
99
|
timeoutMs = 3000,
|
|
152
100
|
pollIntervalMs = 50
|
|
153
101
|
): Promise<string | undefined> {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
// expose the sync property. Read whichever is available.
|
|
157
|
-
const read = async (): Promise<string | undefined> => {
|
|
158
|
-
const tronWeb = provider.tronWeb
|
|
159
|
-
if (!tronWeb) return undefined
|
|
160
|
-
let base58: string | false | undefined
|
|
161
|
-
if (typeof tronWeb.getDefaultAddress === 'function') {
|
|
162
|
-
try {
|
|
163
|
-
base58 = (await tronWeb.getDefaultAddress())?.base58
|
|
164
|
-
} catch {
|
|
165
|
-
return undefined
|
|
166
|
-
}
|
|
167
|
-
} else {
|
|
168
|
-
base58 = tronWeb.defaultAddress?.base58
|
|
169
|
-
}
|
|
102
|
+
const read = (): string | undefined => {
|
|
103
|
+
const base58 = provider.tronWeb?.defaultAddress?.base58
|
|
170
104
|
return typeof base58 === 'string' && base58.length > 0 ? base58 : undefined
|
|
171
105
|
}
|
|
106
|
+
const immediate = read()
|
|
107
|
+
if (immediate) return Promise.resolve(immediate)
|
|
172
108
|
|
|
173
109
|
return new Promise(resolve => {
|
|
174
110
|
let settled = false
|
|
175
|
-
const start = Date.now()
|
|
176
111
|
const finish = (value: string | undefined) => {
|
|
177
112
|
if (settled) return
|
|
178
113
|
settled = true
|
|
114
|
+
clearInterval(timer)
|
|
115
|
+
clearTimeout(deadline)
|
|
179
116
|
resolve(value)
|
|
180
117
|
}
|
|
181
|
-
const
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
setTimeout(tick, pollIntervalMs)
|
|
187
|
-
}
|
|
188
|
-
void tick()
|
|
118
|
+
const timer = setInterval(() => {
|
|
119
|
+
const address = read()
|
|
120
|
+
if (address) finish(address)
|
|
121
|
+
}, pollIntervalMs)
|
|
122
|
+
const deadline = setTimeout(() => finish(undefined), timeoutMs)
|
|
189
123
|
})
|
|
190
124
|
}
|
|
191
125
|
|
|
@@ -304,12 +238,6 @@ export function tronWrapperFor(
|
|
|
304
238
|
? { readyEventName: behavior.readyEventName }
|
|
305
239
|
: {}),
|
|
306
240
|
resolveProvider() {
|
|
307
|
-
// In bridge mode the only non-gating provider is the bridged proxy (it
|
|
308
|
-
// routes calls to the top frame). Never fall back to the iframe-local
|
|
309
|
-
// window path — that provider would re-hit the wallet's frame gate.
|
|
310
|
-
if (isTronBridgeActive()) {
|
|
311
|
-
return resolveBridgedTronProvider(injectedId)
|
|
312
|
-
}
|
|
313
241
|
return firstReadyOf(
|
|
314
242
|
readWindowPath(primaryPath),
|
|
315
243
|
...fallbackPaths.map(path => readWindowPath(path))
|