@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.
- package/dist/services/signature-service.d.ts.map +1 -1
- package/dist/services/signature-service.js +2 -3
- package/dist/services/signature-service.js.map +1 -1
- package/dist/services/solana/solana-transaction-service.d.ts.map +1 -1
- package/dist/services/solana/solana-transaction-service.js +18 -1
- package/dist/services/solana/solana-transaction-service.js.map +1 -1
- package/package.json +2 -2
- package/src/services/signature-service.test.ts +65 -0
- package/src/services/signature-service.ts +2 -3
- package/src/services/solana/solana-transaction-service.test.ts +84 -2
- package/src/services/solana/solana-transaction-service.ts +18 -1
- package/src/wallet-connect-connector.solana-send.test.ts +67 -0
|
@@ -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,
|
|
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
|
-
|
|
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":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;
|
|
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;
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
+
})
|