@meshconnect/uwc-wallet-connect-connector 0.14.21 → 0.14.22

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.
@@ -1 +1 @@
1
- {"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG9E;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,iBAAiB;IAF3B,YACU,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB,EAC1C;IAEJ;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAkJ3D;IAED;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D;CACF"}
1
+ {"version":3,"file":"signature-service.d.ts","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAG9E;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,iBAAiB;IAF3B,YACU,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,iBAAiB,EAC1C;IAEJ;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAiJ3D;IAED;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C/D;CACF"}
@@ -4,7 +4,7 @@ import { findAccountInNamespaces, parseAccount } from '../utils/account-utils';
4
4
  import { base58Encode } from '../utils/encoding-utils';
5
5
  import { parseError } from '../utils/error-utils';
6
6
  import { triggerSmartContract, stringToHex } from '../utils/tron-utils';
7
- import { withEIP712Domain } from '@meshconnect/uwc-types';
7
+ import { toPersonalSignData, withEIP712Domain } from '@meshconnect/uwc-types';
8
8
  /**
9
9
  * Service for handling message signing in WalletConnect
10
10
  */
@@ -45,8 +45,7 @@ export class SignatureService {
45
45
  switch (accountNamespace) {
46
46
  case 'eip155':
47
47
  method = 'personal_sign';
48
- // For personal_sign: [message, address]
49
- params = [message, address];
48
+ params = [toPersonalSignData(message), address];
50
49
  break;
51
50
  case 'solana': {
52
51
  method = 'solana_signMessage';
@@ -1 +1 @@
1
- {"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature-service.js","sourceRoot":"","sources":["../../src/services/signature-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana-transaction-service.d.ts","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAIb,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAW/B,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAkBxD,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,aAAa;IAFjC,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAoB,aAAa,GAAE,aAAkB,EAEpD;IAED;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAoCjB;YAEa,mCAAmC;YAuCnC,qBAAqB;YAsCrB,uBAAuB;YAuCvB,iBAAiB;IA0E/B;;;;OAIG;YACW,2BAA2B;IA0DzC;;;;OAIG;IACG,oBAAoB,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC,CAmDrB;CACF"}
1
+ {"version":3,"file":"solana-transaction-service.d.ts","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAIb,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAW/B,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAmCxD,qBAAa,wBAAwB;IAGvB,OAAO,CAAC,aAAa;IAFjC,OAAO,CAAC,OAAO,CAA0B;IAEzC,YAAoB,aAAa,GAAE,aAAkB,EAEpD;IAED;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,OAAO,EAAE,wBAAwB,EACjC,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAoCjB;YAEa,mCAAmC;YAuCnC,qBAAqB;YAsCrB,uBAAuB;YAuCvB,iBAAiB;IA0E/B;;;;OAIG;YACW,2BAA2B;IA0DzC;;;;OAIG;IACG,oBAAoB,CACxB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,YAAY,CAAC,MAAM,EAC5B,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,UAAU,CAAC,CAmDrB;CACF"}
@@ -13,6 +13,23 @@ function assertSolanaSignatureLength(signature) {
13
13
  throw new Error('WalletConnect returned a malformed Solana signature (expected 64 bytes)');
14
14
  }
15
15
  }
16
+ // The WC Solana spec answers signAndSend with `{ signature }`; some wallets answer with the bare
17
+ // string. The wallet has already broadcast by now, so anything that is not a base58 64-byte
18
+ // signature returns '' rather than throwing — a throw would report a failure for a transfer that
19
+ // went through.
20
+ function signatureFromSignAndSend(result) {
21
+ const signature = typeof result === 'string'
22
+ ? result
23
+ : result?.signature;
24
+ if (typeof signature !== 'string' || !signature)
25
+ return '';
26
+ try {
27
+ return base58.decode(signature).length === 64 ? signature : '';
28
+ }
29
+ catch {
30
+ return '';
31
+ }
32
+ }
16
33
  export class SolanaTransactionService {
17
34
  networkRpcMap;
18
35
  builder;
@@ -138,7 +155,7 @@ export class SolanaTransactionService {
138
155
  }
139
156
  }
140
157
  });
141
- return result;
158
+ return signatureFromSignAndSend(result);
142
159
  }
143
160
  catch (signAndSendError) {
144
161
  const errorMessage = signAndSendError instanceof Error
@@ -1 +1 @@
1
- {"version":3,"file":"solana-transaction-service.js","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana-transaction-service.js","sourceRoot":"","sources":["../../../src/services/solana/solana-transaction-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-wallet-connect-connector",
3
- "version": "0.14.21",
3
+ "version": "0.14.22",
4
4
  "description": "WalletConnect connector for Universal Wallet Connector",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "bs58": "6.0.0",
26
26
  "buffer": "^6.0.3",
27
27
  "viem": "^2.56.5",
28
- "@meshconnect/uwc-types": "0.32.0"
28
+ "@meshconnect/uwc-types": "0.33.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "^7.0.2"
@@ -1,4 +1,6 @@
1
1
  import { describe, it, expect, vi, beforeEach } from 'vitest'
2
+ import { verifyMessage, type Hex } from 'viem'
3
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'
2
4
  import { SignatureService } from './signature-service'
3
5
  import type { WalletConnectClient } from './walletconnect-client'
4
6
  import type { ConnectionService } from './connection-service'
@@ -100,6 +102,69 @@ describe('SignatureService (wallet-connect-connector) — signMessage', () => {
100
102
  address: ACTIVE_ADDRESS
101
103
  })
102
104
  })
105
+
106
+ it('hex-encodes the message for personal_sign', async () => {
107
+ await service.signMessage('hello')
108
+
109
+ expect(mockSignClient.request).toHaveBeenCalledWith({
110
+ topic: MOCK_TOPIC,
111
+ chainId: 'eip155:1',
112
+ request: {
113
+ method: 'personal_sign',
114
+ params: ['0x68656c6c6f', ACTIVE_ADDRESS]
115
+ }
116
+ })
117
+ })
118
+
119
+ it('passes through a message that is already even-length 0x-hex', async () => {
120
+ await service.signMessage('0xdeadbeef')
121
+
122
+ expect(mockSignClient.request.mock.calls[0][0].request.params).toEqual([
123
+ '0xdeadbeef',
124
+ ACTIVE_ADDRESS
125
+ ])
126
+ })
127
+
128
+ it('yields a signature that verifies against the original text from a wallet that hex-decodes the param leniently', async () => {
129
+ const account = privateKeyToAccount(generatePrivateKey())
130
+ // Crypto.com Onchain over WalletConnect keeps only the leading hex pairs,
131
+ // so raw text decodes to zero bytes and it signs an empty message.
132
+ const lenientHexWallet = {
133
+ request: vi.fn(
134
+ async ({ request }: { request: { params: [string, string] } }) => {
135
+ const [data] = request.params
136
+ const hex = data.replace(/^0x/, '').match(/^(?:[0-9a-fA-F]{2})*/)
137
+ return account.signMessage({
138
+ message: { raw: `0x${hex?.[0] ?? ''}` as Hex }
139
+ })
140
+ }
141
+ )
142
+ }
143
+ const message = 'Sign to verify you own this wallet for Revolut ✨'
144
+ service = new SignatureService(
145
+ {
146
+ getClient: vi.fn().mockResolvedValue(lenientHexWallet)
147
+ } as unknown as WalletConnectClient,
148
+ makeMockConnectionService({
149
+ address: account.address,
150
+ session: {
151
+ topic: MOCK_TOPIC,
152
+ namespaces: { eip155: { accounts: [`eip155:1:${account.address}`] } }
153
+ }
154
+ })
155
+ )
156
+
157
+ const { signature } = await service.signMessage(message)
158
+ if (signature.type !== 'standard') throw new Error('expected EIP-191')
159
+
160
+ expect(
161
+ await verifyMessage({
162
+ address: account.address,
163
+ message,
164
+ signature: signature.signature as Hex
165
+ })
166
+ ).toBe(true)
167
+ })
103
168
  })
104
169
 
105
170
  describe('SignatureService (wallet-connect-connector) — signTypedData', () => {
@@ -5,7 +5,7 @@ import { base58Encode } from '../utils/encoding-utils'
5
5
  import { parseError } from '../utils/error-utils'
6
6
  import { triggerSmartContract, stringToHex } from '../utils/tron-utils'
7
7
  import type { SignatureResult, EIP712TypedData } from '@meshconnect/uwc-types'
8
- import { withEIP712Domain } from '@meshconnect/uwc-types'
8
+ import { toPersonalSignData, withEIP712Domain } from '@meshconnect/uwc-types'
9
9
 
10
10
  /**
11
11
  * Service for handling message signing in WalletConnect
@@ -65,8 +65,7 @@ export class SignatureService {
65
65
  switch (accountNamespace) {
66
66
  case 'eip155':
67
67
  method = 'personal_sign'
68
- // For personal_sign: [message, address]
69
- params = [message, address]
68
+ params = [toPersonalSignData(message), address]
70
69
  break
71
70
 
72
71
  case 'solana': {
@@ -503,7 +503,9 @@ describe('SolanaTransactionService.submitTransaction — signAndSend pre-check',
503
503
 
504
504
  it('DOES attempt solana_signAndSendTransaction when the session approved it', async () => {
505
505
  // Phantom / Solflare approve signAndSend — preserve the wallet-broadcast path.
506
- const request = vi.fn().mockResolvedValue('signature-from-wallet')
506
+ // The WC Solana spec response shape: { signature } (base58, 64 bytes).
507
+ const walletSignature = base58.encode(new Uint8Array(64).fill(1))
508
+ const request = vi.fn().mockResolvedValue({ signature: walletSignature })
507
509
  const client = { request } as unknown as SignClient
508
510
 
509
511
  const result = await new SolanaTransactionService().sendTransaction(
@@ -521,10 +523,90 @@ describe('SolanaTransactionService.submitTransaction — signAndSend pre-check',
521
523
  c => (c[0] as { request: { method: string } }).request.method
522
524
  )
523
525
  expect(methods).toEqual(['solana_signAndSendTransaction'])
524
- expect(result).toBe('signature-from-wallet')
526
+ expect(result).toBe(walletSignature)
525
527
  expect(sendRawTransaction).not.toHaveBeenCalled()
526
528
  })
527
529
 
530
+ describe('signAndSend response shapes', () => {
531
+ // A real ed25519 signature is 64 bytes, base58-encoded (87-88 chars).
532
+ const realSignature = base58.encode(new Uint8Array(64).fill(7))
533
+ const shortSignature = base58.encode(new Uint8Array(32).fill(7))
534
+ const splRequest = {
535
+ ...nativeRequest,
536
+ tokenMint: Keypair.generate().publicKey.toBase58(),
537
+ tokenDecimals: 6
538
+ }
539
+ const bothMethods = [
540
+ 'solana_signTransaction',
541
+ 'solana_signAndSendTransaction'
542
+ ]
543
+
544
+ async function sendWithResponse(
545
+ walletResponse: unknown,
546
+ request: typeof nativeRequest | typeof splRequest = nativeRequest
547
+ ) {
548
+ const walletRequest = vi.fn().mockResolvedValue(walletResponse)
549
+ const result = await new SolanaTransactionService().sendTransaction(
550
+ { request: walletRequest } as unknown as SignClient,
551
+ sessionWithMethods(bothMethods),
552
+ request,
553
+ SOL_CHAIN_ID,
554
+ activeAddress
555
+ )
556
+ return { result, walletRequest }
557
+ }
558
+
559
+ // Ledger Live / TokenPocket answer with { signature } per the WC spec; returning that
560
+ // object as the tx hash crashed Link's deposit success page (ONC-1964).
561
+ it.each([
562
+ ['native SOL', nativeRequest],
563
+ ['SPL token (USDC)', splRequest]
564
+ ])(
565
+ 'unwraps the WC-spec { signature } object for a %s transfer',
566
+ async (_label, request) => {
567
+ const { result, walletRequest } = await sendWithResponse(
568
+ { signature: realSignature },
569
+ request
570
+ )
571
+
572
+ expect(result).toBe(realSignature)
573
+ expect(typeof result).toBe('string')
574
+ // One wallet prompt only: a successful signAndSend must not fall back to a second
575
+ // signTransaction prompt, and UWC must not broadcast a tx the wallet already sent.
576
+ expect(walletRequest).toHaveBeenCalledTimes(1)
577
+ expect(sendRawTransaction).not.toHaveBeenCalled()
578
+ }
579
+ )
580
+
581
+ it('passes a bare signature string through', async () => {
582
+ const { result } = await sendWithResponse(realSignature)
583
+ expect(result).toBe(realSignature)
584
+ })
585
+
586
+ it.each([
587
+ ['an object without a signature', { hash: realSignature }],
588
+ ['a non-string signature', { signature: 42 }],
589
+ ['an empty signature', { signature: '' }],
590
+ ['a signature that is not base58', { signature: '0OIl+/' }],
591
+ ['a signature of the wrong length', { signature: shortSignature }],
592
+ ['an empty string', ''],
593
+ ['an array', [realSignature]],
594
+ ['null', null],
595
+ ['undefined', undefined]
596
+ ])(
597
+ 'resolves an empty string, without throwing or re-prompting, for %s',
598
+ async (_label, walletResponse) => {
599
+ // The wallet already broadcast: throwing here would show a failure for a transfer
600
+ // that went through, and falling back would ask the user to sign it a second time.
601
+ const { result, walletRequest } = await sendWithResponse(walletResponse)
602
+
603
+ expect(result).toBe('')
604
+ expect(walletRequest).toHaveBeenCalledTimes(1)
605
+ expect(sendRawTransaction).not.toHaveBeenCalled()
606
+ }
607
+ )
608
+ })
609
+
528
610
  it('falls back to solana_signTransaction when an approved signAndSend is rejected at runtime', async () => {
529
611
  // Safety net: a wallet that advertises signAndSend but rejects it must still recover.
530
612
  const { request, client } = makeDualMethodClient()
@@ -35,6 +35,23 @@ function assertSolanaSignatureLength(signature: Uint8Array): void {
35
35
  }
36
36
  }
37
37
 
38
+ // The WC Solana spec answers signAndSend with `{ signature }`; some wallets answer with the bare
39
+ // string. The wallet has already broadcast by now, so anything that is not a base58 64-byte
40
+ // signature returns '' rather than throwing — a throw would report a failure for a transfer that
41
+ // went through.
42
+ function signatureFromSignAndSend(result: unknown): string {
43
+ const signature =
44
+ typeof result === 'string'
45
+ ? result
46
+ : (result as { signature?: unknown } | null)?.signature
47
+ if (typeof signature !== 'string' || !signature) return ''
48
+ try {
49
+ return base58.decode(signature).length === 64 ? signature : ''
50
+ } catch {
51
+ return ''
52
+ }
53
+ }
54
+
38
55
  export class SolanaTransactionService {
39
56
  private builder: SolanaTransactionBuilder
40
57
 
@@ -249,7 +266,7 @@ export class SolanaTransactionService {
249
266
  }
250
267
  })
251
268
 
252
- return result as string
269
+ return signatureFromSignAndSend(result)
253
270
  } catch (signAndSendError: unknown) {
254
271
  const errorMessage =
255
272
  signAndSendError instanceof Error
@@ -0,0 +1,67 @@
1
+ // @vitest-environment node
2
+ // Reason: @solana/web3.js fails `instanceof Uint8Array` checks under jsdom (see
3
+ // solana-transaction-service.test.ts); building the Solana transaction needs node.
4
+ import { describe, it, expect, vi } from 'vitest'
5
+ import { Keypair } from '@solana/web3.js'
6
+ import bs58 from 'bs58'
7
+ import type {
8
+ SolanaNativeTransferRequest,
9
+ WalletConnectConfig
10
+ } from '@meshconnect/uwc-types'
11
+ import { WalletConnectConnector } from './wallet-connect-connector'
12
+
13
+ describe('WalletConnectConnector.sendTransaction — Solana signAndSend result', () => {
14
+ const SOL_CHAIN_ID = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp'
15
+ const fromAddress = Keypair.generate().publicKey.toBase58()
16
+ const signature = bs58.encode(new Uint8Array(64).fill(9))
17
+
18
+ // Drives the public connector API through TransactionService's namespace routing into the
19
+ // Solana service, with a SignClient whose wallet approved signAndSend (Ledger Live's session).
20
+ function connectedToLedger(walletResponse: unknown) {
21
+ const request = vi.fn().mockResolvedValue(walletResponse)
22
+ const connector = new WalletConnectConnector({
23
+ projectId: 'test'
24
+ } as WalletConnectConfig)
25
+ const internals = connector as unknown as {
26
+ walletConnectClient: { getClient: () => Promise<unknown> }
27
+ connectionService: {
28
+ setSession: (s: unknown) => void
29
+ setActiveNetwork: (n: unknown) => void
30
+ setActiveAddress: (a: string) => void
31
+ }
32
+ }
33
+ internals.walletConnectClient.getClient = async () => ({ request })
34
+ internals.connectionService.setSession({
35
+ topic: 'ledger-topic',
36
+ namespaces: {
37
+ solana: {
38
+ accounts: [`${SOL_CHAIN_ID}:${fromAddress}`],
39
+ methods: ['solana_signTransaction', 'solana_signAndSendTransaction'],
40
+ events: []
41
+ }
42
+ }
43
+ })
44
+ internals.connectionService.setActiveNetwork({ id: SOL_CHAIN_ID })
45
+ internals.connectionService.setActiveAddress(fromAddress)
46
+ return { connector, request }
47
+ }
48
+
49
+ it('resolves the signature string, not the { signature } response object (ONC-1964)', async () => {
50
+ const { connector, request } = connectedToLedger({ signature })
51
+
52
+ const result = await connector.sendTransaction({
53
+ from: fromAddress,
54
+ to: Keypair.generate().publicKey.toBase58(),
55
+ amount: 1n,
56
+ blockhash: '11111111111111111111111111111111'
57
+ } as SolanaNativeTransferRequest)
58
+
59
+ expect(result).toBe(signature)
60
+ expect(request).toHaveBeenCalledTimes(1)
61
+ expect(request.mock.calls[0]?.[0]).toMatchObject({
62
+ topic: 'ledger-topic',
63
+ chainId: SOL_CHAIN_ID,
64
+ request: { method: 'solana_signAndSendTransaction' }
65
+ })
66
+ })
67
+ })