@meshconnect/uwc-types 0.24.0 → 0.25.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/connector.d.ts +28 -3
- package/dist/connector.d.ts.map +1 -1
- package/dist/react-hooks.d.ts +9 -7
- package/dist/react-hooks.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/connector.ts +33 -3
- package/src/react-hooks.ts +9 -6
package/dist/connector.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ConnectionMode } from './connection-mode';
|
|
|
3
3
|
import type { AvailableAddress } from './session';
|
|
4
4
|
import type { DetectedEIP6963WalletInfo, DetectedSolanaWalletInfo, DetectedTronWalletInfo, DetectedTonWalletInfo, ExtensionInjectedProvider, IntegratedBrowserInjectedProvider, WalletConnectProvider, TonConnectWalletProvider, WalletMetadata } from './UWC-state';
|
|
5
5
|
import type { EVMCapabilities, TransactionRequest, TransactionResult } from './transactions';
|
|
6
|
-
import type {
|
|
6
|
+
import type { SignatureResult, EIP712TypedData } from './signature';
|
|
7
7
|
/**
|
|
8
8
|
* A post-connect wallet lifecycle change observed from the live provider.
|
|
9
9
|
*
|
|
@@ -110,9 +110,12 @@ export interface Connector {
|
|
|
110
110
|
* Sign a message with the connected wallet
|
|
111
111
|
* @param message The message to sign
|
|
112
112
|
* @param provider The wallet provider (required for injected connector)
|
|
113
|
-
* @returns A promise that resolves to
|
|
113
|
+
* @returns A promise that resolves to a {@link SignatureResult} carrying both
|
|
114
|
+
* the signature and the EXACT address it was signed with. Consumers verifying
|
|
115
|
+
* ownership MUST claim `result.address` (the live signer) rather than a
|
|
116
|
+
* possibly-stale session address, which can diverge after an account switch.
|
|
114
117
|
*/
|
|
115
|
-
signMessage?(message: string, provider?: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider | WalletConnectProvider | TonConnectWalletProvider): Promise<
|
|
118
|
+
signMessage?(message: string, provider?: ExtensionInjectedProvider | IntegratedBrowserInjectedProvider | WalletConnectProvider | TonConnectWalletProvider): Promise<SignatureResult>;
|
|
116
119
|
/**
|
|
117
120
|
* Sign EIP-712 typed structured data (eth_signTypedData_v4).
|
|
118
121
|
* Required for ERC-3009 (Transfer With Authorization) and EIP-2612 (Permit) relay flows.
|
|
@@ -149,5 +152,27 @@ export interface Connector {
|
|
|
149
152
|
* observes lifecycle leaves it undefined entirely.
|
|
150
153
|
*/
|
|
151
154
|
onLifecycleEvent?(listener: (event: WalletLifecycleEvent) => void, context: WalletLifecycleContext): (() => void) | undefined;
|
|
155
|
+
/**
|
|
156
|
+
* Subscribe to the live provider's REAL account list for the active
|
|
157
|
+
* session — used only to keep UWC's own session state (activeAddress /
|
|
158
|
+
* availableAddresses) in sync with the wallet. This is a distinct concern
|
|
159
|
+
* from `onLifecycleEvent`: that stream is PII-safe telemetry and must
|
|
160
|
+
* never carry an address; this one exists specifically to carry it.
|
|
161
|
+
*
|
|
162
|
+
* An empty array signals the wallet-side logout/lock condition — the
|
|
163
|
+
* caller (core) treats it as a full disconnect. Returns an unsubscribe
|
|
164
|
+
* function, or `undefined` when this connector/session can't be observed
|
|
165
|
+
* (no live `.on`, unsupported namespace). Optional: a connector that
|
|
166
|
+
* never observes real account changes leaves it undefined entirely.
|
|
167
|
+
*/
|
|
168
|
+
onAccountsChanged?(listener: (accounts: string[]) => void, context: WalletLifecycleContext): (() => void) | undefined;
|
|
169
|
+
/**
|
|
170
|
+
* Read the wallet's LIVE current address for a given namespace, re-read at
|
|
171
|
+
* call time (not the connect-time cache), so it reflects an in-wallet account
|
|
172
|
+
* switch. Optional: only connectors backed by a live provider/adapter per
|
|
173
|
+
* namespace implement it (injected, tron). Returns null when the namespace
|
|
174
|
+
* isn't connected or no address is available. Must never throw.
|
|
175
|
+
*/
|
|
176
|
+
getLiveAccount?(namespace: Namespace): Promise<string | null>;
|
|
152
177
|
}
|
|
153
178
|
//# sourceMappingURL=connector.d.ts.map
|
package/dist/connector.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,iCAAiC,EACjC,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"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"}
|
package/dist/react-hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NetworkId, Network, ConnectionMode, Session, AvailableAddress, TransactionRequest, TransactionResult, WalletError, EVMCapabilities, SignatureType, EIP712TypedData, WalletMetadata } from './index';
|
|
1
|
+
import type { NetworkId, Network, ConnectionMode, Session, AvailableAddress, TransactionRequest, TransactionResult, WalletError, EVMCapabilities, SignatureType, SignatureResult, EIP712TypedData, WalletMetadata } from './index';
|
|
2
2
|
/**
|
|
3
3
|
* WalletConnect connection interface for the useConnection hook
|
|
4
4
|
*/
|
|
@@ -203,20 +203,22 @@ export interface UseSwitchNetworkReturn {
|
|
|
203
203
|
* const { signMessage, isLoading, signature } = useSignMessage()
|
|
204
204
|
*
|
|
205
205
|
* const handleSign = async () => {
|
|
206
|
-
* const
|
|
207
|
-
* console.log('Signature:',
|
|
208
|
-
* // The signature state
|
|
206
|
+
* const { signature, address } = await signMessage('Hello World')
|
|
207
|
+
* console.log('Signature:', signature, 'signed by', address)
|
|
208
|
+
* // The `signature` state also holds the last result.signature.
|
|
209
209
|
* }
|
|
210
210
|
* ```
|
|
211
211
|
*/
|
|
212
212
|
export interface UseSignMessageReturn {
|
|
213
213
|
/**
|
|
214
|
-
* Signs a message with the connected wallet
|
|
214
|
+
* Signs a message with the connected wallet.
|
|
215
215
|
* @param message - The message to sign
|
|
216
|
-
* @returns Promise
|
|
216
|
+
* @returns Promise resolving to a {@link SignatureResult} with both the
|
|
217
|
+
* signature and the EXACT address it was signed with. Claim
|
|
218
|
+
* `result.address` when verifying ownership — never a stale session address.
|
|
217
219
|
* @throws Error if no wallet is connected or signing fails
|
|
218
220
|
*/
|
|
219
|
-
signMessage: (message: string) => Promise<
|
|
221
|
+
signMessage: (message: string) => Promise<SignatureResult>;
|
|
220
222
|
/**
|
|
221
223
|
* Indicates if a message signing operation is currently in progress
|
|
222
224
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../src/react-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,EAAE,uBAAuB,CAAA;IACtC;;OAEG;IACH,QAAQ,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAA;IAChC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;OAEG;IACH,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAA;IAChE;;OAEG;IACH,+BAA+B,EAAE,eAAe,GAAG,IAAI,CAAA;IACvD;;OAEG;IACH,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B;;OAEG;IACH,eAAe,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC;;OAEG;IACH,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;IACtC;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAID;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAA;IACjC;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC
|
|
1
|
+
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../src/react-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,OAAO,EACP,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAA;AAIhB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD;;;OAGG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;IAC9B,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,EAAE,uBAAuB,CAAA;IACtC;;OAEG;IACH,QAAQ,EAAE,kBAAkB,CAAA;IAC5B;;OAEG;IACH,UAAU,EAAE,oBAAoB,CAAA;IAChC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;OAEG;IACH,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAA;IAChE;;OAEG;IACH,+BAA+B,EAAE,eAAe,GAAG,IAAI,CAAA;IACvD;;OAEG;IACH,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC5B;;OAEG;IACH,eAAe,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC;;OAEG;IACH,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;IACtC;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAID;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAA;IACjC;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,EAAE,aAAa,GAAG,SAAS,CAAA;IACpC;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9D;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;;GAKG;AACH,MAAM,WAAW,8BAA8B;IAC7C,0FAA0F;IAC1F,qBAAqB,EAAE,CAAC,YAAY,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IACxE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC5E;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,GAAG,SAAS,CAAA;IAChD;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,WAAW,GAAG,SAAS,CAAA;CAC/B;AAID;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB"}
|
package/package.json
CHANGED
package/src/connector.ts
CHANGED
|
@@ -17,7 +17,7 @@ import type {
|
|
|
17
17
|
TransactionRequest,
|
|
18
18
|
TransactionResult
|
|
19
19
|
} from './transactions'
|
|
20
|
-
import type {
|
|
20
|
+
import type { SignatureResult, EIP712TypedData } from './signature'
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
23
|
* A post-connect wallet lifecycle change observed from the live provider.
|
|
@@ -156,7 +156,10 @@ export interface Connector {
|
|
|
156
156
|
* Sign a message with the connected wallet
|
|
157
157
|
* @param message The message to sign
|
|
158
158
|
* @param provider The wallet provider (required for injected connector)
|
|
159
|
-
* @returns A promise that resolves to
|
|
159
|
+
* @returns A promise that resolves to a {@link SignatureResult} carrying both
|
|
160
|
+
* the signature and the EXACT address it was signed with. Consumers verifying
|
|
161
|
+
* ownership MUST claim `result.address` (the live signer) rather than a
|
|
162
|
+
* possibly-stale session address, which can diverge after an account switch.
|
|
160
163
|
*/
|
|
161
164
|
signMessage?(
|
|
162
165
|
message: string,
|
|
@@ -165,7 +168,7 @@ export interface Connector {
|
|
|
165
168
|
| IntegratedBrowserInjectedProvider
|
|
166
169
|
| WalletConnectProvider
|
|
167
170
|
| TonConnectWalletProvider
|
|
168
|
-
): Promise<
|
|
171
|
+
): Promise<SignatureResult>
|
|
169
172
|
|
|
170
173
|
/**
|
|
171
174
|
* Sign EIP-712 typed structured data (eth_signTypedData_v4).
|
|
@@ -226,4 +229,31 @@ export interface Connector {
|
|
|
226
229
|
listener: (event: WalletLifecycleEvent) => void,
|
|
227
230
|
context: WalletLifecycleContext
|
|
228
231
|
): (() => void) | undefined
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Subscribe to the live provider's REAL account list for the active
|
|
235
|
+
* session — used only to keep UWC's own session state (activeAddress /
|
|
236
|
+
* availableAddresses) in sync with the wallet. This is a distinct concern
|
|
237
|
+
* from `onLifecycleEvent`: that stream is PII-safe telemetry and must
|
|
238
|
+
* never carry an address; this one exists specifically to carry it.
|
|
239
|
+
*
|
|
240
|
+
* An empty array signals the wallet-side logout/lock condition — the
|
|
241
|
+
* caller (core) treats it as a full disconnect. Returns an unsubscribe
|
|
242
|
+
* function, or `undefined` when this connector/session can't be observed
|
|
243
|
+
* (no live `.on`, unsupported namespace). Optional: a connector that
|
|
244
|
+
* never observes real account changes leaves it undefined entirely.
|
|
245
|
+
*/
|
|
246
|
+
onAccountsChanged?(
|
|
247
|
+
listener: (accounts: string[]) => void,
|
|
248
|
+
context: WalletLifecycleContext
|
|
249
|
+
): (() => void) | undefined
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Read the wallet's LIVE current address for a given namespace, re-read at
|
|
253
|
+
* call time (not the connect-time cache), so it reflects an in-wallet account
|
|
254
|
+
* switch. Optional: only connectors backed by a live provider/adapter per
|
|
255
|
+
* namespace implement it (injected, tron). Returns null when the namespace
|
|
256
|
+
* isn't connected or no address is available. Must never throw.
|
|
257
|
+
*/
|
|
258
|
+
getLiveAccount?(namespace: Namespace): Promise<string | null>
|
|
229
259
|
}
|
package/src/react-hooks.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type {
|
|
|
9
9
|
WalletError,
|
|
10
10
|
EVMCapabilities,
|
|
11
11
|
SignatureType,
|
|
12
|
+
SignatureResult,
|
|
12
13
|
EIP712TypedData,
|
|
13
14
|
WalletMetadata
|
|
14
15
|
} from './index'
|
|
@@ -231,20 +232,22 @@ export interface UseSwitchNetworkReturn {
|
|
|
231
232
|
* const { signMessage, isLoading, signature } = useSignMessage()
|
|
232
233
|
*
|
|
233
234
|
* const handleSign = async () => {
|
|
234
|
-
* const
|
|
235
|
-
* console.log('Signature:',
|
|
236
|
-
* // The signature state
|
|
235
|
+
* const { signature, address } = await signMessage('Hello World')
|
|
236
|
+
* console.log('Signature:', signature, 'signed by', address)
|
|
237
|
+
* // The `signature` state also holds the last result.signature.
|
|
237
238
|
* }
|
|
238
239
|
* ```
|
|
239
240
|
*/
|
|
240
241
|
export interface UseSignMessageReturn {
|
|
241
242
|
/**
|
|
242
|
-
* Signs a message with the connected wallet
|
|
243
|
+
* Signs a message with the connected wallet.
|
|
243
244
|
* @param message - The message to sign
|
|
244
|
-
* @returns Promise
|
|
245
|
+
* @returns Promise resolving to a {@link SignatureResult} with both the
|
|
246
|
+
* signature and the EXACT address it was signed with. Claim
|
|
247
|
+
* `result.address` when verifying ownership — never a stale session address.
|
|
245
248
|
* @throws Error if no wallet is connected or signing fails
|
|
246
249
|
*/
|
|
247
|
-
signMessage: (message: string) => Promise<
|
|
250
|
+
signMessage: (message: string) => Promise<SignatureResult>
|
|
248
251
|
/**
|
|
249
252
|
* Indicates if a message signing operation is currently in progress
|
|
250
253
|
*/
|