@solana/keychain-crossmint 1.0.1 → 1.1.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.
@@ -9,9 +9,11 @@ vi.mock('@solana/transactions', async (importOriginal) => {
9
9
  return {
10
10
  ...mod,
11
11
  getBase64EncodedWireTransaction: vi.fn(() => 'AQID'),
12
+ getTransactionDecoder: vi.fn(),
12
13
  };
13
14
  });
14
- import { assertIsSolanaSigner } from '@solana/keychain-core';
15
+ import { assertIsSolanaSigner, assertSignatureValid } from '@solana/keychain-core';
16
+ import { getTransactionDecoder } from '@solana/transactions';
15
17
  import { createCrossmintSigner } from '../crossmint-signer.js';
16
18
  global.fetch = vi.fn();
17
19
  const MOCK_ADDRESS = '11111111111111111111111111111111';
@@ -23,6 +25,19 @@ const mockConfig = {
23
25
  const base58Decoder = getBase58Decoder();
24
26
  const MOCK_SIGNATURE_BYTES = new Uint8Array(64).fill(7);
25
27
  const MOCK_SIGNATURE_B58 = base58Decoder.decode(MOCK_SIGNATURE_BYTES);
28
+ const MOCK_MESSAGE_BYTES = new Uint8Array([1, 2, 3]);
29
+ const MOCK_SERIALIZED_TRANSACTION_B58 = '1111';
30
+ function createMockTransaction() {
31
+ return { messageBytes: MOCK_MESSAGE_BYTES };
32
+ }
33
+ function createDecodedTransaction(overrides) {
34
+ return {
35
+ messageBytes: overrides?.messageBytes ?? MOCK_MESSAGE_BYTES,
36
+ signatures: {
37
+ [overrides?.signerAddress ?? MOCK_ADDRESS]: overrides?.signature ?? MOCK_SIGNATURE_BYTES,
38
+ },
39
+ };
40
+ }
26
41
  function mockWalletResponse(overrides) {
27
42
  return new Response(JSON.stringify({
28
43
  address: MOCK_ADDRESS,
@@ -34,6 +49,10 @@ function mockWalletResponse(overrides) {
34
49
  describe('CrossmintSigner', () => {
35
50
  beforeEach(() => {
36
51
  vi.resetAllMocks();
52
+ vi.mocked(assertSignatureValid).mockResolvedValue(undefined);
53
+ vi.mocked(getTransactionDecoder).mockReturnValue({
54
+ decode: vi.fn(() => createDecodedTransaction()),
55
+ });
37
56
  });
38
57
  describe('create', () => {
39
58
  it('creates signer from wallet locator', async () => {
@@ -129,11 +148,162 @@ describe('CrossmintSigner', () => {
129
148
  maxPollAttempts: 2,
130
149
  pollIntervalMs: 1,
131
150
  });
132
- const results = await signer.signTransactions([{}]);
151
+ const results = await signer.signTransactions([createMockTransaction()]);
133
152
  expect(results).toHaveLength(1);
134
153
  const signature = results[0][signer.address];
135
154
  expect(signature).toBeDefined();
136
155
  expect(signature?.length).toBe(64);
156
+ expect(assertSignatureValid).toHaveBeenCalledWith({
157
+ data: MOCK_MESSAGE_BYTES,
158
+ signature: MOCK_SIGNATURE_BYTES,
159
+ signerAddress: signer.address,
160
+ });
161
+ });
162
+ it('signs via managed flow and extracts signature from serialized transaction', async () => {
163
+ vi.mocked(fetch)
164
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
165
+ .mockResolvedValueOnce(new Response(JSON.stringify({
166
+ id: 'tx-serialized',
167
+ status: 'success',
168
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
169
+ }), { status: 201 }));
170
+ const signer = await createCrossmintSigner({
171
+ ...mockConfig,
172
+ maxPollAttempts: 1,
173
+ pollIntervalMs: 1,
174
+ });
175
+ const results = await signer.signTransactions([createMockTransaction()]);
176
+ expect(results).toHaveLength(1);
177
+ expect(results[0][signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
178
+ // Signature is verified against the returned transaction's message bytes
179
+ // (Crossmint may refresh the blockhash before signing).
180
+ expect(assertSignatureValid).toHaveBeenCalledWith({
181
+ data: MOCK_MESSAGE_BYTES,
182
+ signature: MOCK_SIGNATURE_BYTES,
183
+ signerAddress: signer.address,
184
+ });
185
+ });
186
+ it('extracts signature from serialized transaction even when returned message bytes differ', async () => {
187
+ const returnedMessageBytes = new Uint8Array([9, 9, 9]);
188
+ vi.mocked(getTransactionDecoder).mockReturnValue({
189
+ decode: vi.fn(() => createDecodedTransaction({ messageBytes: returnedMessageBytes })),
190
+ });
191
+ vi.mocked(fetch)
192
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
193
+ .mockResolvedValueOnce(new Response(JSON.stringify({
194
+ id: 'tx-refreshed',
195
+ status: 'success',
196
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
197
+ }), { status: 201 }));
198
+ const signer = await createCrossmintSigner({
199
+ ...mockConfig,
200
+ maxPollAttempts: 1,
201
+ pollIntervalMs: 1,
202
+ });
203
+ const results = await signer.signTransactions([createMockTransaction()]);
204
+ expect(results[0][signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
205
+ // Verification uses the returned message bytes, not the original ones
206
+ expect(assertSignatureValid).toHaveBeenCalledWith({
207
+ data: returnedMessageBytes,
208
+ signature: MOCK_SIGNATURE_BYTES,
209
+ signerAddress: signer.address,
210
+ });
211
+ });
212
+ it('rejects approval signatures for unrelated local transaction bytes', async () => {
213
+ vi.mocked(fetch)
214
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
215
+ .mockResolvedValueOnce(new Response(JSON.stringify({
216
+ id: 'tx-approval',
217
+ status: 'success',
218
+ approvals: {
219
+ submitted: [{ signature: MOCK_SIGNATURE_B58 }],
220
+ },
221
+ }), { status: 201 }));
222
+ const signer = await createCrossmintSigner({
223
+ ...mockConfig,
224
+ maxPollAttempts: 1,
225
+ pollIntervalMs: 1,
226
+ });
227
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
228
+ code: 'SIGNER_SIGNING_FAILED',
229
+ message: expect.stringContaining('Unable to extract signature'),
230
+ });
231
+ expect(assertSignatureValid).not.toHaveBeenCalled();
232
+ });
233
+ it('rejects when no signature can be extracted', async () => {
234
+ vi.mocked(getTransactionDecoder).mockReturnValue({
235
+ decode: vi.fn(() => createDecodedTransaction({ signerAddress: 'other-address' })),
236
+ });
237
+ vi.mocked(fetch)
238
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
239
+ .mockResolvedValueOnce(new Response(JSON.stringify({
240
+ id: 'tx-no-sig',
241
+ status: 'success',
242
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
243
+ }), { status: 201 }));
244
+ const signer = await createCrossmintSigner({
245
+ ...mockConfig,
246
+ maxPollAttempts: 1,
247
+ pollIntervalMs: 1,
248
+ });
249
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
250
+ code: 'SIGNER_SIGNING_FAILED',
251
+ message: expect.stringContaining('Unable to extract signature'),
252
+ });
253
+ expect(assertSignatureValid).not.toHaveBeenCalled();
254
+ });
255
+ it('verifies txId when transaction decode throws', async () => {
256
+ vi.mocked(getTransactionDecoder).mockReturnValue({
257
+ decode: vi.fn(() => {
258
+ throw new Error('decode failed');
259
+ }),
260
+ });
261
+ vi.mocked(fetch)
262
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
263
+ .mockResolvedValueOnce(new Response(JSON.stringify({
264
+ id: 'tx-fallthrough',
265
+ status: 'success',
266
+ onChain: {
267
+ transaction: MOCK_SERIALIZED_TRANSACTION_B58,
268
+ txId: MOCK_SIGNATURE_B58,
269
+ },
270
+ }), { status: 201 }));
271
+ const signer = await createCrossmintSigner({
272
+ ...mockConfig,
273
+ maxPollAttempts: 1,
274
+ pollIntervalMs: 1,
275
+ });
276
+ const results = await signer.signTransactions([createMockTransaction()]);
277
+ expect(results[0][signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
278
+ expect(assertSignatureValid).toHaveBeenCalledWith({
279
+ data: MOCK_MESSAGE_BYTES,
280
+ signature: MOCK_SIGNATURE_BYTES,
281
+ signerAddress: signer.address,
282
+ });
283
+ });
284
+ it('rejects txId when transaction decode throws and txId validation fails', async () => {
285
+ vi.mocked(getTransactionDecoder).mockReturnValue({
286
+ decode: vi.fn(() => {
287
+ throw new Error('decode failed');
288
+ }),
289
+ });
290
+ vi.mocked(assertSignatureValid).mockRejectedValueOnce(new Error('signature validation failed'));
291
+ vi.mocked(fetch)
292
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
293
+ .mockResolvedValueOnce(new Response(JSON.stringify({
294
+ id: 'tx-fallthrough-invalid',
295
+ status: 'success',
296
+ onChain: {
297
+ transaction: MOCK_SERIALIZED_TRANSACTION_B58,
298
+ txId: MOCK_SIGNATURE_B58,
299
+ },
300
+ }), { status: 201 }));
301
+ const signer = await createCrossmintSigner({
302
+ ...mockConfig,
303
+ maxPollAttempts: 1,
304
+ pollIntervalMs: 1,
305
+ });
306
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toThrow('signature validation failed');
137
307
  });
138
308
  it('throws on failed transaction status', async () => {
139
309
  vi.mocked(fetch)
@@ -148,7 +318,7 @@ describe('CrossmintSigner', () => {
148
318
  maxPollAttempts: 1,
149
319
  pollIntervalMs: 1,
150
320
  });
151
- await expect(signer.signTransactions([{}])).rejects.toMatchObject({
321
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
152
322
  code: 'SIGNER_SIGNING_FAILED',
153
323
  message: expect.stringContaining('Insufficient funds'),
154
324
  });
@@ -165,7 +335,7 @@ describe('CrossmintSigner', () => {
165
335
  maxPollAttempts: 1,
166
336
  pollIntervalMs: 1,
167
337
  });
168
- await expect(signer.signTransactions([{}])).rejects.toMatchObject({
338
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
169
339
  code: 'SIGNER_SIGNING_FAILED',
170
340
  message: expect.stringContaining('awaiting approval'),
171
341
  });
@@ -180,7 +350,7 @@ describe('CrossmintSigner', () => {
180
350
  maxPollAttempts: 1,
181
351
  pollIntervalMs: 1,
182
352
  });
183
- await expect(signer.signTransactions([{}])).rejects.toMatchObject({
353
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
184
354
  code: 'SIGNER_REMOTE_API_ERROR',
185
355
  message: expect.stringContaining('timed out'),
186
356
  });
@@ -194,7 +364,7 @@ describe('CrossmintSigner', () => {
194
364
  maxPollAttempts: 1,
195
365
  pollIntervalMs: 1,
196
366
  });
197
- await expect(signer.signTransactions([{}])).rejects.toMatchObject({
367
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
198
368
  code: 'SIGNER_REMOTE_API_ERROR',
199
369
  message: expect.stringContaining('Unauthorized'),
200
370
  });
@@ -208,7 +378,7 @@ describe('CrossmintSigner', () => {
208
378
  maxPollAttempts: 1,
209
379
  pollIntervalMs: 1,
210
380
  });
211
- await expect(signer.signTransactions([{}])).rejects.toMatchObject({
381
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
212
382
  code: 'SIGNER_HTTP_ERROR',
213
383
  });
214
384
  });
@@ -229,7 +399,7 @@ describe('CrossmintSigner', () => {
229
399
  maxPollAttempts: 1,
230
400
  pollIntervalMs: 1,
231
401
  });
232
- const results = await signer.signTransactions([{}]);
402
+ const results = await signer.signTransactions([createMockTransaction()]);
233
403
  expect(results).toHaveLength(1);
234
404
  expect(results[0][signer.address]?.length).toBe(64);
235
405
  });
@@ -247,7 +417,7 @@ describe('CrossmintSigner', () => {
247
417
  maxPollAttempts: 1,
248
418
  pollIntervalMs: 1,
249
419
  });
250
- await signer.signTransactions([{}]);
420
+ await signer.signTransactions([createMockTransaction()]);
251
421
  const createCall = vi.mocked(fetch).mock.calls[1];
252
422
  const body = JSON.parse(createCall[1]?.body);
253
423
  expect(body.params.signer).toBe('my-signer-id');
@@ -1 +1 @@
1
- {"version":3,"file":"crossmint-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossmint-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAyB7E,wBAAsB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAKlG"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AA+C7E,wBAAsB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAKlG"}
@@ -1,23 +1,43 @@
1
1
  import { createCrossmintSigner } from '../crossmint-signer.js';
2
2
  const SIGNER_TYPE = 'crossmint';
3
3
  const REQUIRED_ENV_VARS = ['CROSSMINT_API_KEY', 'CROSSMINT_WALLET_LOCATOR'];
4
+ const TEST_SIGNER_DERIVED_PUBKEY_ENV = 'TEST_CROSSMINT_SIGNER_DERIVED_PUBKEY';
4
5
  const CONFIG = {
5
6
  signerType: SIGNER_TYPE,
6
7
  requiredEnvVars: REQUIRED_ENV_VARS,
7
- createSigner: () => createCrossmintSigner({
8
- apiKey: process.env.CROSSMINT_API_KEY,
9
- walletLocator: process.env.CROSSMINT_WALLET_LOCATOR,
10
- apiBaseUrl: process.env.CROSSMINT_API_BASE_URL,
11
- maxPollAttempts: process.env.CROSSMINT_MAX_POLL_ATTEMPTS
12
- ? Number(process.env.CROSSMINT_MAX_POLL_ATTEMPTS)
13
- : undefined,
14
- pollIntervalMs: process.env.CROSSMINT_POLL_INTERVAL_MS
15
- ? Number(process.env.CROSSMINT_POLL_INTERVAL_MS)
16
- : undefined,
17
- signerSecret: process.env.CROSSMINT_SIGNER_SECRET,
18
- signer: process.env.CROSSMINT_SIGNER,
19
- }),
8
+ createSigner: async () => {
9
+ const signer = await createCrossmintSigner({
10
+ apiKey: process.env.CROSSMINT_API_KEY,
11
+ walletLocator: process.env.CROSSMINT_WALLET_LOCATOR,
12
+ apiBaseUrl: process.env.CROSSMINT_API_BASE_URL,
13
+ maxPollAttempts: process.env.CROSSMINT_MAX_POLL_ATTEMPTS
14
+ ? Number(process.env.CROSSMINT_MAX_POLL_ATTEMPTS)
15
+ : undefined,
16
+ pollIntervalMs: process.env.CROSSMINT_POLL_INTERVAL_MS
17
+ ? Number(process.env.CROSSMINT_POLL_INTERVAL_MS)
18
+ : undefined,
19
+ signerSecret: process.env.CROSSMINT_SIGNER_SECRET,
20
+ signer: process.env.CROSSMINT_SIGNER,
21
+ });
22
+ // Test-only override for environments where Crossmint's returned wallet
23
+ // pubkey differs from the signer key used in signed transaction bytes.
24
+ const testSignerDerivedPubkey = resolveTestSignerDerivedPubkey();
25
+ if (testSignerDerivedPubkey) {
26
+ signer.address = testSignerDerivedPubkey;
27
+ }
28
+ return signer;
29
+ },
20
30
  };
31
+ function resolveTestSignerDerivedPubkey() {
32
+ const explicit = process.env[TEST_SIGNER_DERIVED_PUBKEY_ENV]?.trim();
33
+ if (explicit)
34
+ return explicit;
35
+ const configuredSigner = process.env.CROSSMINT_SIGNER?.trim();
36
+ if (!configuredSigner?.startsWith('server:'))
37
+ return undefined;
38
+ const derived = configuredSigner.slice('server:'.length).trim();
39
+ return derived || undefined;
40
+ }
21
41
  export async function getConfig(scenarios) {
22
42
  return {
23
43
  ...CONFIG,
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC;AAE5E,MAAM,MAAM,GAAmC;IAC3C,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,GAAG,EAAE,CACf,qBAAqB,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAkB;QACtC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAyB;QACpD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;QAC9C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACjD,CAAC,CAAC,SAAS;QACf,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;YAClD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;YAChD,CAAC,CAAC,SAAS;QACf,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACjD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;KACvC,CAAC;CACT,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAyB;IACrD,OAAO;QACH,GAAG,MAAM;QACT,aAAa,EAAE,SAAS;KAC3B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,GAAG,WAAW,CAAC;AAChC,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC;AAC5E,MAAM,8BAA8B,GAAG,sCAAsC,CAAC;AAE9E,MAAM,MAAM,GAAmC;IAC3C,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;YACvC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAkB;YACtC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAyB;YACpD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YAC9C,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;gBACjD,CAAC,CAAC,SAAS;YACf,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;gBAClD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;gBAChD,CAAC,CAAC,SAAS;YACf,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YACjD,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;SACvC,CAAC,CAAC;QAEH,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;QACjE,IAAI,uBAAuB,EAAE,CAAC;YACzB,MAA8B,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACtE,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC;AAEF,SAAS,8BAA8B;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,EAAE,IAAI,EAAE,CAAC;IACrE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,OAAO,OAAO,IAAI,SAAS,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAyB;IACrD,OAAO;QACH,GAAG,MAAM;QACT,aAAa,EAAE,SAAS;KAC3B,CAAC;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"crossmint-signer.d.ts","sourceRoot":"","sources":["../src/crossmint-signer.ts"],"names":[],"mappings":"AAUA,OAAO,EAKH,YAAY,EAEf,MAAM,uBAAuB,CAAC;AAW/B,OAAO,KAAK,EAGR,qBAAqB,EAIxB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACxE,MAAM,EAAE,qBAAqB,GAC9B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAEjC"}
1
+ {"version":3,"file":"crossmint-signer.d.ts","sourceRoot":"","sources":["../src/crossmint-signer.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,YAAY,EAEf,MAAM,uBAAuB,CAAC;AAW/B,OAAO,KAAK,EAGR,qBAAqB,EAIxB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,qBAAqB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACxE,MAAM,EAAE,qBAAqB,GAC9B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAEjC"}
@@ -1,8 +1,8 @@
1
1
  import { createPrivateKey, createPublicKey, hkdfSync, sign as cryptoSign } from 'node:crypto';
2
2
  import { assertIsAddress } from '@solana/addresses';
3
- import { getBase16Encoder, getBase58Decoder, getBase58Encoder, getBase64Decoder, getBase64Encoder, } from '@solana/codecs-strings';
4
- import { createSignatureDictionary, createSignerError, extractSignatureFromWireTransaction, SignerErrorCode, throwSignerError, } from '@solana/keychain-core';
5
- import { getBase64EncodedWireTransaction, } from '@solana/transactions';
3
+ import { getBase16Encoder, getBase58Decoder, getBase58Encoder, getBase64Encoder } from '@solana/codecs-strings';
4
+ import { assertSignatureValid, createSignatureDictionary, createSignerError, SignerErrorCode, throwSignerError, } from '@solana/keychain-core';
5
+ import { getBase64EncodedWireTransaction, getTransactionDecoder, } from '@solana/transactions';
6
6
  export async function createCrossmintSigner(config) {
7
7
  return await CrossmintSigner.create(config);
8
8
  }
@@ -13,7 +13,6 @@ const DEFAULT_MAX_POLL_ATTEMPTS = 60;
13
13
  let base16Encoder;
14
14
  let base58Decoder;
15
15
  let base58Encoder;
16
- let base64Decoder;
17
16
  let base64Encoder;
18
17
  class CrossmintSigner {
19
18
  constructor(config) {
@@ -151,14 +150,14 @@ class CrossmintSigner {
151
150
  response = await this.submitApproval(response);
152
151
  continue;
153
152
  }
154
- const terminalSignature = this.resolveTerminalStatus(response);
153
+ const terminalSignature = await this.resolveTerminalStatus(response, transaction);
155
154
  if (terminalSignature) {
156
155
  return terminalSignature;
157
156
  }
158
157
  await new Promise(resolve => setTimeout(resolve, this.pollIntervalMs));
159
158
  response = await this.getTransaction(response.id);
160
159
  }
161
- const terminalSignature = this.resolveTerminalStatus(response);
160
+ const terminalSignature = await this.resolveTerminalStatus(response, transaction);
162
161
  if (terminalSignature) {
163
162
  return terminalSignature;
164
163
  }
@@ -166,11 +165,11 @@ class CrossmintSigner {
166
165
  message: `Crossmint transaction polling timed out after ${this.maxPollAttempts} attempts`,
167
166
  });
168
167
  }
169
- resolveTerminalStatus(response) {
168
+ async resolveTerminalStatus(response, transaction) {
170
169
  const status = response.status;
171
170
  switch (status) {
172
171
  case 'success':
173
- return this.extractSignature(response);
172
+ return await this.extractSignature(response, transaction);
174
173
  case 'failed':
175
174
  return throwSignerError(SignerErrorCode.SIGNING_FAILED, {
176
175
  message: `Crossmint transaction failed: ${stringifyError(response.error)}`,
@@ -264,43 +263,50 @@ class CrossmintSigner {
264
263
  }
265
264
  return payload;
266
265
  }
267
- extractSignature(response) {
268
- const fromSerialized = this.extractSignatureFromSerializedTransaction(response.onChain?.transaction);
269
- if (fromSerialized) {
270
- return fromSerialized;
266
+ async extractSignature(response, transaction) {
267
+ if (response.onChain?.transaction) {
268
+ try {
269
+ return await this.extractSignatureFromSerializedTransaction(response.onChain.transaction);
270
+ }
271
+ catch {
272
+ // If Crossmint returned an onChain.transaction but it could not be
273
+ // decoded or validated, fall through to txId and still require
274
+ // cryptographic validation against the original message bytes.
275
+ }
271
276
  }
272
277
  const fromTxId = decodeSignatureString(response.onChain?.txId);
273
278
  if (fromTxId) {
279
+ await assertSignatureValid({
280
+ data: transaction.messageBytes,
281
+ signature: fromTxId,
282
+ signerAddress: this.address,
283
+ });
274
284
  return fromTxId;
275
285
  }
276
- const submitted = response.approvals?.submitted ?? [];
277
- for (const approval of submitted) {
278
- const signature = decodeSignatureString(approval.signature);
279
- if (signature) {
280
- return signature;
281
- }
282
- }
283
286
  throwSignerError(SignerErrorCode.SIGNING_FAILED, {
284
287
  message: 'Unable to extract signature from Crossmint transaction response',
285
288
  });
286
289
  }
287
- extractSignatureFromSerializedTransaction(serializedTransaction) {
288
- if (!serializedTransaction)
289
- return undefined;
290
- try {
291
- base58Encoder || (base58Encoder = getBase58Encoder());
292
- const txBytes = base58Encoder.encode(serializedTransaction);
293
- base64Decoder || (base64Decoder = getBase64Decoder());
294
- const base64WireTransaction = base64Decoder.decode(txBytes);
295
- const signatureDict = extractSignatureFromWireTransaction({
296
- base64WireTransaction,
297
- signerAddress: this.address,
290
+ async extractSignatureFromSerializedTransaction(serializedTransaction) {
291
+ base58Encoder || (base58Encoder = getBase58Encoder());
292
+ const txBytes = base58Encoder.encode(serializedTransaction);
293
+ const decodedTransaction = getTransactionDecoder().decode(txBytes);
294
+ const signature = decodedTransaction.signatures[this.address];
295
+ if (!signature) {
296
+ throwSignerError(SignerErrorCode.SIGNING_FAILED, {
297
+ address: this.address,
298
+ message: `No signature found for address ${this.address}`,
298
299
  });
299
- return signatureDict[this.address];
300
- }
301
- catch {
302
- return undefined;
303
300
  }
301
+ // Verify against the message bytes that Crossmint actually signed.
302
+ // Crossmint may refresh the blockhash before signing, so these may
303
+ // differ from the original transaction.messageBytes.
304
+ await assertSignatureValid({
305
+ data: decodedTransaction.messageBytes,
306
+ signature,
307
+ signerAddress: this.address,
308
+ });
309
+ return signature;
304
310
  }
305
311
  }
306
312
  function normalizeBaseUrl(baseUrl) {
@@ -1 +1 @@
1
- {"version":3,"file":"crossmint-signer.js","sourceRoot":"","sources":["../src/crossmint-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crossmint-signer.js","sourceRoot":"","sources":["../src/crossmint-signer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@solana/keychain-crossmint",
3
3
  "author": "Solana Foundation",
4
- "version": "1.0.1",
4
+ "version": "1.1.0",
5
5
  "description": "Crossmint wallet signer for Solana transactions",
6
6
  "license": "MIT",
7
7
  "repository": "https://github.com/solana-foundation/solana-keychain",
@@ -26,7 +26,7 @@
26
26
  "src"
27
27
  ],
28
28
  "dependencies": {
29
- "@solana/keychain-core": "1.0.1"
29
+ "@solana/keychain-core": "1.1.0"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@solana/addresses": ">=6.0.1",
@@ -44,7 +44,7 @@
44
44
  "@solana-program/memo": "^0.11.0",
45
45
  "@solana/kit": "^6.0.1",
46
46
  "dotenv": "^17.2.3",
47
- "@solana/keychain-test-utils": "1.0.1"
47
+ "@solana/keychain-test-utils": "1.1.0"
48
48
  },
49
49
  "publishConfig": {
50
50
  "access": "public"
@@ -11,10 +11,12 @@ vi.mock('@solana/transactions', async importOriginal => {
11
11
  return {
12
12
  ...mod,
13
13
  getBase64EncodedWireTransaction: vi.fn(() => 'AQID'),
14
+ getTransactionDecoder: vi.fn(),
14
15
  };
15
16
  });
16
17
 
17
- import { assertIsSolanaSigner } from '@solana/keychain-core';
18
+ import { assertIsSolanaSigner, assertSignatureValid } from '@solana/keychain-core';
19
+ import { getTransactionDecoder } from '@solana/transactions';
18
20
  import { createCrossmintSigner } from '../crossmint-signer.js';
19
21
 
20
22
  global.fetch = vi.fn();
@@ -29,6 +31,25 @@ const mockConfig = {
29
31
  const base58Decoder = getBase58Decoder();
30
32
  const MOCK_SIGNATURE_BYTES = new Uint8Array(64).fill(7);
31
33
  const MOCK_SIGNATURE_B58 = base58Decoder.decode(MOCK_SIGNATURE_BYTES);
34
+ const MOCK_MESSAGE_BYTES = new Uint8Array([1, 2, 3]);
35
+ const MOCK_SERIALIZED_TRANSACTION_B58 = '1111';
36
+
37
+ function createMockTransaction() {
38
+ return { messageBytes: MOCK_MESSAGE_BYTES } as any;
39
+ }
40
+
41
+ function createDecodedTransaction(overrides?: {
42
+ messageBytes?: Uint8Array;
43
+ signature?: Uint8Array;
44
+ signerAddress?: string;
45
+ }) {
46
+ return {
47
+ messageBytes: overrides?.messageBytes ?? MOCK_MESSAGE_BYTES,
48
+ signatures: {
49
+ [overrides?.signerAddress ?? MOCK_ADDRESS]: overrides?.signature ?? MOCK_SIGNATURE_BYTES,
50
+ },
51
+ };
52
+ }
32
53
 
33
54
  function mockWalletResponse(overrides?: Record<string, unknown>): Response {
34
55
  return new Response(
@@ -45,6 +66,10 @@ function mockWalletResponse(overrides?: Record<string, unknown>): Response {
45
66
  describe('CrossmintSigner', () => {
46
67
  beforeEach(() => {
47
68
  vi.resetAllMocks();
69
+ vi.mocked(assertSignatureValid).mockResolvedValue(undefined);
70
+ vi.mocked(getTransactionDecoder).mockReturnValue({
71
+ decode: vi.fn(() => createDecodedTransaction()),
72
+ } as any);
48
73
  });
49
74
 
50
75
  describe('create', () => {
@@ -174,12 +199,213 @@ describe('CrossmintSigner', () => {
174
199
  pollIntervalMs: 1,
175
200
  });
176
201
 
177
- const results = await signer.signTransactions([{} as any]);
202
+ const results = await signer.signTransactions([createMockTransaction()]);
178
203
  expect(results).toHaveLength(1);
179
204
  const signature = results[0]![signer.address];
180
205
 
181
206
  expect(signature).toBeDefined();
182
207
  expect(signature?.length).toBe(64);
208
+ expect(assertSignatureValid).toHaveBeenCalledWith({
209
+ data: MOCK_MESSAGE_BYTES,
210
+ signature: MOCK_SIGNATURE_BYTES,
211
+ signerAddress: signer.address,
212
+ });
213
+ });
214
+
215
+ it('signs via managed flow and extracts signature from serialized transaction', async () => {
216
+ vi.mocked(fetch)
217
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
218
+ .mockResolvedValueOnce(
219
+ new Response(
220
+ JSON.stringify({
221
+ id: 'tx-serialized',
222
+ status: 'success',
223
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
224
+ }),
225
+ { status: 201 },
226
+ ),
227
+ );
228
+
229
+ const signer = await createCrossmintSigner({
230
+ ...mockConfig,
231
+ maxPollAttempts: 1,
232
+ pollIntervalMs: 1,
233
+ });
234
+
235
+ const results = await signer.signTransactions([createMockTransaction()]);
236
+ expect(results).toHaveLength(1);
237
+ expect(results[0]![signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
238
+ // Signature is verified against the returned transaction's message bytes
239
+ // (Crossmint may refresh the blockhash before signing).
240
+ expect(assertSignatureValid).toHaveBeenCalledWith({
241
+ data: MOCK_MESSAGE_BYTES,
242
+ signature: MOCK_SIGNATURE_BYTES,
243
+ signerAddress: signer.address,
244
+ });
245
+ });
246
+
247
+ it('extracts signature from serialized transaction even when returned message bytes differ', async () => {
248
+ const returnedMessageBytes = new Uint8Array([9, 9, 9]);
249
+ vi.mocked(getTransactionDecoder).mockReturnValue({
250
+ decode: vi.fn(() => createDecodedTransaction({ messageBytes: returnedMessageBytes })),
251
+ } as any);
252
+ vi.mocked(fetch)
253
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
254
+ .mockResolvedValueOnce(
255
+ new Response(
256
+ JSON.stringify({
257
+ id: 'tx-refreshed',
258
+ status: 'success',
259
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
260
+ }),
261
+ { status: 201 },
262
+ ),
263
+ );
264
+
265
+ const signer = await createCrossmintSigner({
266
+ ...mockConfig,
267
+ maxPollAttempts: 1,
268
+ pollIntervalMs: 1,
269
+ });
270
+
271
+ const results = await signer.signTransactions([createMockTransaction()]);
272
+ expect(results[0]![signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
273
+ // Verification uses the returned message bytes, not the original ones
274
+ expect(assertSignatureValid).toHaveBeenCalledWith({
275
+ data: returnedMessageBytes,
276
+ signature: MOCK_SIGNATURE_BYTES,
277
+ signerAddress: signer.address,
278
+ });
279
+ });
280
+
281
+ it('rejects approval signatures for unrelated local transaction bytes', async () => {
282
+ vi.mocked(fetch)
283
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
284
+ .mockResolvedValueOnce(
285
+ new Response(
286
+ JSON.stringify({
287
+ id: 'tx-approval',
288
+ status: 'success',
289
+ approvals: {
290
+ submitted: [{ signature: MOCK_SIGNATURE_B58 }],
291
+ },
292
+ }),
293
+ { status: 201 },
294
+ ),
295
+ );
296
+
297
+ const signer = await createCrossmintSigner({
298
+ ...mockConfig,
299
+ maxPollAttempts: 1,
300
+ pollIntervalMs: 1,
301
+ });
302
+
303
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
304
+ code: 'SIGNER_SIGNING_FAILED',
305
+ message: expect.stringContaining('Unable to extract signature'),
306
+ });
307
+ expect(assertSignatureValid).not.toHaveBeenCalled();
308
+ });
309
+
310
+ it('rejects when no signature can be extracted', async () => {
311
+ vi.mocked(getTransactionDecoder).mockReturnValue({
312
+ decode: vi.fn(() => createDecodedTransaction({ signerAddress: 'other-address' })),
313
+ } as any);
314
+ vi.mocked(fetch)
315
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
316
+ .mockResolvedValueOnce(
317
+ new Response(
318
+ JSON.stringify({
319
+ id: 'tx-no-sig',
320
+ status: 'success',
321
+ onChain: { transaction: MOCK_SERIALIZED_TRANSACTION_B58 },
322
+ }),
323
+ { status: 201 },
324
+ ),
325
+ );
326
+
327
+ const signer = await createCrossmintSigner({
328
+ ...mockConfig,
329
+ maxPollAttempts: 1,
330
+ pollIntervalMs: 1,
331
+ });
332
+
333
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
334
+ code: 'SIGNER_SIGNING_FAILED',
335
+ message: expect.stringContaining('Unable to extract signature'),
336
+ });
337
+ expect(assertSignatureValid).not.toHaveBeenCalled();
338
+ });
339
+
340
+ it('verifies txId when transaction decode throws', async () => {
341
+ vi.mocked(getTransactionDecoder).mockReturnValue({
342
+ decode: vi.fn(() => {
343
+ throw new Error('decode failed');
344
+ }),
345
+ } as any);
346
+ vi.mocked(fetch)
347
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
348
+ .mockResolvedValueOnce(
349
+ new Response(
350
+ JSON.stringify({
351
+ id: 'tx-fallthrough',
352
+ status: 'success',
353
+ onChain: {
354
+ transaction: MOCK_SERIALIZED_TRANSACTION_B58,
355
+ txId: MOCK_SIGNATURE_B58,
356
+ },
357
+ }),
358
+ { status: 201 },
359
+ ),
360
+ );
361
+
362
+ const signer = await createCrossmintSigner({
363
+ ...mockConfig,
364
+ maxPollAttempts: 1,
365
+ pollIntervalMs: 1,
366
+ });
367
+
368
+ const results = await signer.signTransactions([createMockTransaction()]);
369
+ expect(results[0]![signer.address]).toEqual(MOCK_SIGNATURE_BYTES);
370
+ expect(assertSignatureValid).toHaveBeenCalledWith({
371
+ data: MOCK_MESSAGE_BYTES,
372
+ signature: MOCK_SIGNATURE_BYTES,
373
+ signerAddress: signer.address,
374
+ });
375
+ });
376
+
377
+ it('rejects txId when transaction decode throws and txId validation fails', async () => {
378
+ vi.mocked(getTransactionDecoder).mockReturnValue({
379
+ decode: vi.fn(() => {
380
+ throw new Error('decode failed');
381
+ }),
382
+ } as any);
383
+ vi.mocked(assertSignatureValid).mockRejectedValueOnce(new Error('signature validation failed'));
384
+ vi.mocked(fetch)
385
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
386
+ .mockResolvedValueOnce(
387
+ new Response(
388
+ JSON.stringify({
389
+ id: 'tx-fallthrough-invalid',
390
+ status: 'success',
391
+ onChain: {
392
+ transaction: MOCK_SERIALIZED_TRANSACTION_B58,
393
+ txId: MOCK_SIGNATURE_B58,
394
+ },
395
+ }),
396
+ { status: 201 },
397
+ ),
398
+ );
399
+
400
+ const signer = await createCrossmintSigner({
401
+ ...mockConfig,
402
+ maxPollAttempts: 1,
403
+ pollIntervalMs: 1,
404
+ });
405
+
406
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toThrow(
407
+ 'signature validation failed',
408
+ );
183
409
  });
184
410
 
185
411
  it('throws on failed transaction status', async () => {
@@ -202,7 +428,7 @@ describe('CrossmintSigner', () => {
202
428
  pollIntervalMs: 1,
203
429
  });
204
430
 
205
- await expect(signer.signTransactions([{} as any])).rejects.toMatchObject({
431
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
206
432
  code: 'SIGNER_SIGNING_FAILED',
207
433
  message: expect.stringContaining('Insufficient funds'),
208
434
  });
@@ -227,7 +453,7 @@ describe('CrossmintSigner', () => {
227
453
  pollIntervalMs: 1,
228
454
  });
229
455
 
230
- await expect(signer.signTransactions([{} as any])).rejects.toMatchObject({
456
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
231
457
  code: 'SIGNER_SIGNING_FAILED',
232
458
  message: expect.stringContaining('awaiting approval'),
233
459
  });
@@ -247,7 +473,7 @@ describe('CrossmintSigner', () => {
247
473
  pollIntervalMs: 1,
248
474
  });
249
475
 
250
- await expect(signer.signTransactions([{} as any])).rejects.toMatchObject({
476
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
251
477
  code: 'SIGNER_REMOTE_API_ERROR',
252
478
  message: expect.stringContaining('timed out'),
253
479
  });
@@ -264,7 +490,7 @@ describe('CrossmintSigner', () => {
264
490
  pollIntervalMs: 1,
265
491
  });
266
492
 
267
- await expect(signer.signTransactions([{} as any])).rejects.toMatchObject({
493
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
268
494
  code: 'SIGNER_REMOTE_API_ERROR',
269
495
  message: expect.stringContaining('Unauthorized'),
270
496
  });
@@ -281,7 +507,7 @@ describe('CrossmintSigner', () => {
281
507
  pollIntervalMs: 1,
282
508
  });
283
509
 
284
- await expect(signer.signTransactions([{} as any])).rejects.toMatchObject({
510
+ await expect(signer.signTransactions([createMockTransaction()])).rejects.toMatchObject({
285
511
  code: 'SIGNER_HTTP_ERROR',
286
512
  });
287
513
  });
@@ -315,7 +541,7 @@ describe('CrossmintSigner', () => {
315
541
  pollIntervalMs: 1,
316
542
  });
317
543
 
318
- const results = await signer.signTransactions([{} as any]);
544
+ const results = await signer.signTransactions([createMockTransaction()]);
319
545
  expect(results).toHaveLength(1);
320
546
  expect(results[0]![signer.address]?.length).toBe(64);
321
547
  });
@@ -341,7 +567,7 @@ describe('CrossmintSigner', () => {
341
567
  pollIntervalMs: 1,
342
568
  });
343
569
 
344
- await signer.signTransactions([{} as any]);
570
+ await signer.signTransactions([createMockTransaction()]);
345
571
 
346
572
  const createCall = vi.mocked(fetch).mock.calls[1]!;
347
573
  const body = JSON.parse(createCall[1]?.body as string);
@@ -4,12 +4,13 @@ import { createCrossmintSigner } from '../crossmint-signer.js';
4
4
 
5
5
  const SIGNER_TYPE = 'crossmint';
6
6
  const REQUIRED_ENV_VARS = ['CROSSMINT_API_KEY', 'CROSSMINT_WALLET_LOCATOR'];
7
+ const TEST_SIGNER_DERIVED_PUBKEY_ENV = 'TEST_CROSSMINT_SIGNER_DERIVED_PUBKEY';
7
8
 
8
9
  const CONFIG: SignerTestConfig<SolanaSigner> = {
9
10
  signerType: SIGNER_TYPE,
10
11
  requiredEnvVars: REQUIRED_ENV_VARS,
11
- createSigner: () =>
12
- createCrossmintSigner({
12
+ createSigner: async () => {
13
+ const signer = await createCrossmintSigner({
13
14
  apiKey: process.env.CROSSMINT_API_KEY!,
14
15
  walletLocator: process.env.CROSSMINT_WALLET_LOCATOR!,
15
16
  apiBaseUrl: process.env.CROSSMINT_API_BASE_URL,
@@ -21,9 +22,30 @@ const CONFIG: SignerTestConfig<SolanaSigner> = {
21
22
  : undefined,
22
23
  signerSecret: process.env.CROSSMINT_SIGNER_SECRET,
23
24
  signer: process.env.CROSSMINT_SIGNER,
24
- }),
25
+ });
26
+
27
+ // Test-only override for environments where Crossmint's returned wallet
28
+ // pubkey differs from the signer key used in signed transaction bytes.
29
+ const testSignerDerivedPubkey = resolveTestSignerDerivedPubkey();
30
+ if (testSignerDerivedPubkey) {
31
+ (signer as { address: string }).address = testSignerDerivedPubkey;
32
+ }
33
+
34
+ return signer;
35
+ },
25
36
  };
26
37
 
38
+ function resolveTestSignerDerivedPubkey(): string | undefined {
39
+ const explicit = process.env[TEST_SIGNER_DERIVED_PUBKEY_ENV]?.trim();
40
+ if (explicit) return explicit;
41
+
42
+ const configuredSigner = process.env.CROSSMINT_SIGNER?.trim();
43
+ if (!configuredSigner?.startsWith('server:')) return undefined;
44
+
45
+ const derived = configuredSigner.slice('server:'.length).trim();
46
+ return derived || undefined;
47
+ }
48
+
27
49
  export async function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<SolanaSigner>> {
28
50
  return {
29
51
  ...CONFIG,
@@ -1,17 +1,11 @@
1
1
  import { createPrivateKey, createPublicKey, hkdfSync, sign as cryptoSign } from 'node:crypto';
2
2
 
3
3
  import { Address, assertIsAddress } from '@solana/addresses';
4
+ import { getBase16Encoder, getBase58Decoder, getBase58Encoder, getBase64Encoder } from '@solana/codecs-strings';
4
5
  import {
5
- getBase16Encoder,
6
- getBase58Decoder,
7
- getBase58Encoder,
8
- getBase64Decoder,
9
- getBase64Encoder,
10
- } from '@solana/codecs-strings';
11
- import {
6
+ assertSignatureValid,
12
7
  createSignatureDictionary,
13
8
  createSignerError,
14
- extractSignatureFromWireTransaction,
15
9
  SignerErrorCode,
16
10
  SolanaSigner,
17
11
  throwSignerError,
@@ -19,8 +13,8 @@ import {
19
13
  import { SignatureBytes } from '@solana/keys';
20
14
  import { SignableMessage, SignatureDictionary } from '@solana/signers';
21
15
  import {
22
- Base64EncodedWireTransaction,
23
16
  getBase64EncodedWireTransaction,
17
+ getTransactionDecoder,
24
18
  Transaction,
25
19
  TransactionWithinSizeLimit,
26
20
  TransactionWithLifetime,
@@ -49,7 +43,6 @@ const DEFAULT_MAX_POLL_ATTEMPTS = 60;
49
43
  let base16Encoder: ReturnType<typeof getBase16Encoder> | undefined;
50
44
  let base58Decoder: ReturnType<typeof getBase58Decoder> | undefined;
51
45
  let base58Encoder: ReturnType<typeof getBase58Encoder> | undefined;
52
- let base64Decoder: ReturnType<typeof getBase64Decoder> | undefined;
53
46
  let base64Encoder: ReturnType<typeof getBase64Encoder> | undefined;
54
47
 
55
48
  class CrossmintSigner<TAddress extends string = string> implements SolanaSigner<TAddress> {
@@ -232,7 +225,7 @@ class CrossmintSigner<TAddress extends string = string> implements SolanaSigner<
232
225
  response = await this.submitApproval(response);
233
226
  continue;
234
227
  }
235
- const terminalSignature = this.resolveTerminalStatus(response);
228
+ const terminalSignature = await this.resolveTerminalStatus(response, transaction);
236
229
  if (terminalSignature) {
237
230
  return terminalSignature;
238
231
  }
@@ -241,7 +234,7 @@ class CrossmintSigner<TAddress extends string = string> implements SolanaSigner<
241
234
  response = await this.getTransaction(response.id);
242
235
  }
243
236
 
244
- const terminalSignature = this.resolveTerminalStatus(response);
237
+ const terminalSignature = await this.resolveTerminalStatus(response, transaction);
245
238
  if (terminalSignature) {
246
239
  return terminalSignature;
247
240
  }
@@ -251,11 +244,14 @@ class CrossmintSigner<TAddress extends string = string> implements SolanaSigner<
251
244
  });
252
245
  }
253
246
 
254
- private resolveTerminalStatus(response: CrossmintTransactionResponse): SignatureBytes | undefined {
247
+ private async resolveTerminalStatus(
248
+ response: CrossmintTransactionResponse,
249
+ transaction: Transaction & TransactionWithinSizeLimit & TransactionWithLifetime,
250
+ ): Promise<SignatureBytes | undefined> {
255
251
  const status = response.status as CrossmintTransactionStatus;
256
252
  switch (status) {
257
253
  case 'success':
258
- return this.extractSignature(response);
254
+ return await this.extractSignature(response, transaction);
259
255
  case 'failed':
260
256
  return throwSignerError(SignerErrorCode.SIGNING_FAILED, {
261
257
  message: `Crossmint transaction failed: ${stringifyError(response.error)}`,
@@ -363,47 +359,57 @@ class CrossmintSigner<TAddress extends string = string> implements SolanaSigner<
363
359
  return payload;
364
360
  }
365
361
 
366
- private extractSignature(response: CrossmintTransactionResponse): SignatureBytes {
367
- const fromSerialized = this.extractSignatureFromSerializedTransaction(response.onChain?.transaction);
368
- if (fromSerialized) {
369
- return fromSerialized;
362
+ private async extractSignature(
363
+ response: CrossmintTransactionResponse,
364
+ transaction: Transaction & TransactionWithinSizeLimit & TransactionWithLifetime,
365
+ ): Promise<SignatureBytes> {
366
+ if (response.onChain?.transaction) {
367
+ try {
368
+ return await this.extractSignatureFromSerializedTransaction(response.onChain.transaction);
369
+ } catch {
370
+ // If Crossmint returned an onChain.transaction but it could not be
371
+ // decoded or validated, fall through to txId and still require
372
+ // cryptographic validation against the original message bytes.
373
+ }
370
374
  }
371
375
 
372
376
  const fromTxId = decodeSignatureString(response.onChain?.txId);
373
377
  if (fromTxId) {
378
+ await assertSignatureValid({
379
+ data: transaction.messageBytes,
380
+ signature: fromTxId,
381
+ signerAddress: this.address,
382
+ });
374
383
  return fromTxId;
375
384
  }
376
385
 
377
- const submitted = response.approvals?.submitted ?? [];
378
- for (const approval of submitted) {
379
- const signature = decodeSignatureString(approval.signature);
380
- if (signature) {
381
- return signature;
382
- }
383
- }
384
-
385
386
  throwSignerError(SignerErrorCode.SIGNING_FAILED, {
386
387
  message: 'Unable to extract signature from Crossmint transaction response',
387
388
  });
388
389
  }
389
390
 
390
- private extractSignatureFromSerializedTransaction(serializedTransaction?: string): SignatureBytes | undefined {
391
- if (!serializedTransaction) return undefined;
391
+ private async extractSignatureFromSerializedTransaction(serializedTransaction: string): Promise<SignatureBytes> {
392
+ base58Encoder ||= getBase58Encoder();
393
+ const txBytes = base58Encoder.encode(serializedTransaction);
394
+ const decodedTransaction = getTransactionDecoder().decode(txBytes);
392
395
 
393
- try {
394
- base58Encoder ||= getBase58Encoder();
395
- const txBytes = base58Encoder.encode(serializedTransaction);
396
- base64Decoder ||= getBase64Decoder();
397
- const base64WireTransaction = base64Decoder.decode(txBytes) as Base64EncodedWireTransaction;
398
- const signatureDict = extractSignatureFromWireTransaction({
399
- base64WireTransaction,
400
- signerAddress: this.address,
396
+ const signature = decodedTransaction.signatures[this.address];
397
+ if (!signature) {
398
+ throwSignerError(SignerErrorCode.SIGNING_FAILED, {
399
+ address: this.address,
400
+ message: `No signature found for address ${this.address}`,
401
401
  });
402
-
403
- return signatureDict[this.address];
404
- } catch {
405
- return undefined;
406
402
  }
403
+
404
+ // Verify against the message bytes that Crossmint actually signed.
405
+ // Crossmint may refresh the blockhash before signing, so these may
406
+ // differ from the original transaction.messageBytes.
407
+ await assertSignatureValid({
408
+ data: decodedTransaction.messageBytes,
409
+ signature,
410
+ signerAddress: this.address,
411
+ });
412
+ return signature;
407
413
  }
408
414
  }
409
415