@solana/keychain-crossmint 0.0.0 → 0.6.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/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # @solana/keychain-crossmint
2
+
3
+ Crossmint wallet signer for Solana transactions using Crossmint Wallets API.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @solana/keychain-crossmint
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ import { createCrossmintSigner } from '@solana/keychain-crossmint';
15
+
16
+ const signer = await createCrossmintSigner({
17
+ apiKey: process.env.CROSSMINT_API_KEY!,
18
+ walletLocator: process.env.CROSSMINT_WALLET_LOCATOR!,
19
+ });
20
+ ```
21
+
22
+ ## Configuration
23
+
24
+ | Field | Type | Required | Default | Description |
25
+ |-------|------|----------|---------|-------------|
26
+ | `apiKey` | `string` | Yes | - | Crossmint API key |
27
+ | `walletLocator` | `string` | Yes | - | Crossmint wallet locator |
28
+ | `apiBaseUrl` | `string` | No | `https://www.crossmint.com/api` | Base URL for Wallets API |
29
+ | `pollIntervalMs` | `number` | No | `1000` | Poll interval for managed transaction flow |
30
+ | `maxPollAttempts` | `number` | No | `60` | Max poll attempts before timeout |
31
+ | `signer` | `string` | No | - | Optional delegated signer locator |
32
+
33
+ ## Behavior Notes
34
+
35
+ 1. `signTransactions` uses a managed flow similar to Fireblocks `PROGRAM_CALL` style: create transaction, poll status, then extract a signature from Crossmint response data.
36
+ 2. `signMessages` is intentionally unsupported and throws a signer error.
37
+
38
+ ## License
39
+
40
+ MIT
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crossmint-signer.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossmint-signer.integration.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { createSignableMessage, createTransactionMessage, pipe, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, signTransactionMessageWithSigners, } from '@solana/kit';
2
+ import { describe, expect, it } from 'vitest';
3
+ import { getConfig } from './setup';
4
+ import { config } from 'dotenv';
5
+ config();
6
+ const RPC_URL = process.env.SOLANA_RPC_URL ?? 'https://api.devnet.solana.com';
7
+ async function getLatestBlockhash() {
8
+ const res = await fetch(RPC_URL, {
9
+ method: 'POST',
10
+ headers: { 'Content-Type': 'application/json' },
11
+ body: JSON.stringify({
12
+ jsonrpc: '2.0',
13
+ id: 1,
14
+ method: 'getLatestBlockhash',
15
+ params: [{ commitment: 'finalized' }],
16
+ }),
17
+ });
18
+ const json = (await res.json());
19
+ return json.result.value;
20
+ }
21
+ describe('CrossmintSigner Integration', () => {
22
+ it.skipIf(!process.env.CROSSMINT_API_KEY)('signs transactions with real API', async () => {
23
+ const { createSigner } = await getConfig(['signTransaction']);
24
+ const signer = await createSigner();
25
+ const { blockhash, lastValidBlockHeight } = await getLatestBlockhash();
26
+ const transaction = pipe(createTransactionMessage({ version: 0 }), tx => setTransactionMessageFeePayerSigner(signer, tx), tx => setTransactionMessageLifetimeUsingBlockhash({ blockhash, lastValidBlockHeight }, tx));
27
+ const signedTx = await signTransactionMessageWithSigners(transaction);
28
+ expect(signedTx.signatures[signer.address]).toBeDefined();
29
+ expect(signedTx.signatures[signer.address]?.byteLength).toBe(64);
30
+ });
31
+ it.skipIf(!process.env.CROSSMINT_API_KEY)('returns not supported for signMessages', async () => {
32
+ const { createSigner } = await getConfig(['signMessage']);
33
+ const signer = await createSigner();
34
+ const message = createSignableMessage(new Uint8Array([1, 2, 3]));
35
+ await expect(signer.signMessages([message])).rejects.toThrow('not supported');
36
+ });
37
+ it.skipIf(!process.env.CROSSMINT_API_KEY)('checks availability', async () => {
38
+ const { createSigner } = await getConfig([]);
39
+ const signer = await createSigner();
40
+ const available = await signer.isAvailable();
41
+ expect(available).toBe(true);
42
+ });
43
+ });
44
+ //# sourceMappingURL=crossmint-signer.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossmint-signer.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=crossmint-signer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossmint-signer.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,275 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { getBase58Decoder } from '@solana/codecs-strings';
3
+ vi.mock('@solana/keychain-core', async (importOriginal) => {
4
+ const mod = await importOriginal();
5
+ return { ...mod, assertSignatureValid: vi.fn() };
6
+ });
7
+ vi.mock('@solana/transactions', async (importOriginal) => {
8
+ const mod = await importOriginal();
9
+ return {
10
+ ...mod,
11
+ getBase64EncodedWireTransaction: vi.fn(() => 'AQID'),
12
+ };
13
+ });
14
+ import { assertIsSolanaSigner } from '@solana/keychain-core';
15
+ import { createCrossmintSigner } from '../crossmint-signer.js';
16
+ global.fetch = vi.fn();
17
+ const MOCK_ADDRESS = '11111111111111111111111111111111';
18
+ const mockConfig = {
19
+ apiKey: 'cmk_test_api_key',
20
+ apiBaseUrl: 'https://api.test.crossmint.com/api',
21
+ walletLocator: 'userId:test-user:solana:smart',
22
+ };
23
+ const base58Decoder = getBase58Decoder();
24
+ const MOCK_SIGNATURE_BYTES = new Uint8Array(64).fill(7);
25
+ const MOCK_SIGNATURE_B58 = base58Decoder.decode(MOCK_SIGNATURE_BYTES);
26
+ function mockWalletResponse(overrides) {
27
+ return new Response(JSON.stringify({
28
+ address: MOCK_ADDRESS,
29
+ chainType: 'solana',
30
+ type: 'smart',
31
+ ...overrides,
32
+ }), { status: 200 });
33
+ }
34
+ describe('CrossmintSigner', () => {
35
+ beforeEach(() => {
36
+ vi.resetAllMocks();
37
+ });
38
+ describe('create', () => {
39
+ it('creates signer from wallet locator', async () => {
40
+ vi.mocked(fetch).mockResolvedValueOnce(mockWalletResponse());
41
+ const signer = await createCrossmintSigner(mockConfig);
42
+ expect(signer.address).toBe(MOCK_ADDRESS);
43
+ assertIsSolanaSigner(signer);
44
+ expect(fetch).toHaveBeenCalledWith('https://api.test.crossmint.com/api/2025-06-09/wallets/userId%3Atest-user%3Asolana%3Asmart', expect.objectContaining({
45
+ headers: { 'X-API-KEY': 'cmk_test_api_key' },
46
+ method: 'GET',
47
+ }));
48
+ });
49
+ it('throws config error when apiKey is missing', async () => {
50
+ await expect(createCrossmintSigner({ ...mockConfig, apiKey: '' })).rejects.toMatchObject({
51
+ code: 'SIGNER_CONFIG_ERROR',
52
+ message: expect.stringContaining('apiKey'),
53
+ });
54
+ });
55
+ it('throws config error when walletLocator is missing', async () => {
56
+ await expect(createCrossmintSigner({ ...mockConfig, walletLocator: '' })).rejects.toMatchObject({
57
+ code: 'SIGNER_CONFIG_ERROR',
58
+ message: expect.stringContaining('walletLocator'),
59
+ });
60
+ });
61
+ it('throws config error for non-https base URL', async () => {
62
+ await expect(createCrossmintSigner({ ...mockConfig, apiBaseUrl: 'http://api.crossmint.com' })).rejects.toMatchObject({
63
+ code: 'SIGNER_CONFIG_ERROR',
64
+ message: expect.stringContaining('HTTPS'),
65
+ });
66
+ });
67
+ it('throws config error for invalid base URL', async () => {
68
+ await expect(createCrossmintSigner({ ...mockConfig, apiBaseUrl: 'not-a-url' })).rejects.toMatchObject({
69
+ code: 'SIGNER_CONFIG_ERROR',
70
+ message: expect.stringContaining('Invalid apiBaseUrl'),
71
+ });
72
+ });
73
+ it('throws config error for non-solana wallet', async () => {
74
+ vi.mocked(fetch).mockResolvedValueOnce(mockWalletResponse({ chainType: 'evm' }));
75
+ await expect(createCrossmintSigner(mockConfig)).rejects.toMatchObject({
76
+ code: 'SIGNER_CONFIG_ERROR',
77
+ message: expect.stringContaining('Expected Solana wallet'),
78
+ });
79
+ });
80
+ it('throws config error for unsupported wallet type', async () => {
81
+ vi.mocked(fetch).mockResolvedValueOnce(mockWalletResponse({ type: 'custodial' }));
82
+ await expect(createCrossmintSigner(mockConfig)).rejects.toMatchObject({
83
+ code: 'SIGNER_CONFIG_ERROR',
84
+ message: expect.stringContaining('Unsupported Crossmint wallet type'),
85
+ });
86
+ });
87
+ it('throws config error for pollIntervalMs <= 0', async () => {
88
+ await expect(createCrossmintSigner({ ...mockConfig, pollIntervalMs: 0 })).rejects.toMatchObject({
89
+ code: 'SIGNER_CONFIG_ERROR',
90
+ message: expect.stringContaining('pollIntervalMs'),
91
+ });
92
+ });
93
+ it('throws config error for maxPollAttempts <= 0', async () => {
94
+ await expect(createCrossmintSigner({ ...mockConfig, maxPollAttempts: 0 })).rejects.toMatchObject({
95
+ code: 'SIGNER_CONFIG_ERROR',
96
+ message: expect.stringContaining('maxPollAttempts'),
97
+ });
98
+ });
99
+ });
100
+ describe('signMessages', () => {
101
+ it('returns not supported error', async () => {
102
+ vi.mocked(fetch).mockResolvedValueOnce(mockWalletResponse());
103
+ const signer = await createCrossmintSigner(mockConfig);
104
+ const message = {
105
+ content: new Uint8Array([1, 2, 3]),
106
+ signatures: {},
107
+ };
108
+ await expect(signer.signMessages([message])).rejects.toMatchObject({
109
+ code: 'SIGNER_SIGNING_FAILED',
110
+ message: expect.stringContaining('not supported'),
111
+ });
112
+ });
113
+ });
114
+ describe('signTransactions', () => {
115
+ it('signs via managed flow and extracts signature from txId', async () => {
116
+ vi.mocked(fetch)
117
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
118
+ .mockResolvedValueOnce(new Response(JSON.stringify({
119
+ id: 'tx-1',
120
+ status: 'pending',
121
+ }), { status: 201 }))
122
+ .mockResolvedValueOnce(new Response(JSON.stringify({
123
+ id: 'tx-1',
124
+ status: 'success',
125
+ onChain: { txId: MOCK_SIGNATURE_B58 },
126
+ }), { status: 200 }));
127
+ const signer = await createCrossmintSigner({
128
+ ...mockConfig,
129
+ maxPollAttempts: 2,
130
+ pollIntervalMs: 1,
131
+ });
132
+ const results = await signer.signTransactions([{}]);
133
+ expect(results).toHaveLength(1);
134
+ const signature = results[0][signer.address];
135
+ expect(signature).toBeDefined();
136
+ expect(signature?.length).toBe(64);
137
+ });
138
+ it('throws on failed transaction status', async () => {
139
+ vi.mocked(fetch)
140
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
141
+ .mockResolvedValueOnce(new Response(JSON.stringify({
142
+ id: 'tx-1',
143
+ status: 'failed',
144
+ error: 'Insufficient funds',
145
+ }), { status: 200 }));
146
+ const signer = await createCrossmintSigner({
147
+ ...mockConfig,
148
+ maxPollAttempts: 1,
149
+ pollIntervalMs: 1,
150
+ });
151
+ await expect(signer.signTransactions([{}])).rejects.toMatchObject({
152
+ code: 'SIGNER_SIGNING_FAILED',
153
+ message: expect.stringContaining('Insufficient funds'),
154
+ });
155
+ });
156
+ it('throws on awaiting approval status', async () => {
157
+ vi.mocked(fetch)
158
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
159
+ .mockResolvedValueOnce(new Response(JSON.stringify({
160
+ id: 'tx-1',
161
+ status: 'awaiting-approval',
162
+ }), { status: 201 }));
163
+ const signer = await createCrossmintSigner({
164
+ ...mockConfig,
165
+ maxPollAttempts: 1,
166
+ pollIntervalMs: 1,
167
+ });
168
+ await expect(signer.signTransactions([{}])).rejects.toMatchObject({
169
+ code: 'SIGNER_SIGNING_FAILED',
170
+ message: expect.stringContaining('awaiting approval'),
171
+ });
172
+ });
173
+ it('throws timeout error when polling exceeds maxPollAttempts', async () => {
174
+ vi.mocked(fetch)
175
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
176
+ .mockResolvedValueOnce(new Response(JSON.stringify({ id: 'tx-1', status: 'pending' }), { status: 201 }))
177
+ .mockResolvedValueOnce(new Response(JSON.stringify({ id: 'tx-1', status: 'pending' }), { status: 200 }));
178
+ const signer = await createCrossmintSigner({
179
+ ...mockConfig,
180
+ maxPollAttempts: 1,
181
+ pollIntervalMs: 1,
182
+ });
183
+ await expect(signer.signTransactions([{}])).rejects.toMatchObject({
184
+ code: 'SIGNER_REMOTE_API_ERROR',
185
+ message: expect.stringContaining('timed out'),
186
+ });
187
+ });
188
+ it('throws on HTTP error during transaction creation', async () => {
189
+ vi.mocked(fetch)
190
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
191
+ .mockResolvedValueOnce(new Response(JSON.stringify({ message: 'Unauthorized' }), { status: 401 }));
192
+ const signer = await createCrossmintSigner({
193
+ ...mockConfig,
194
+ maxPollAttempts: 1,
195
+ pollIntervalMs: 1,
196
+ });
197
+ await expect(signer.signTransactions([{}])).rejects.toMatchObject({
198
+ code: 'SIGNER_REMOTE_API_ERROR',
199
+ message: expect.stringContaining('Unauthorized'),
200
+ });
201
+ });
202
+ it('throws on network error during transaction creation', async () => {
203
+ vi.mocked(fetch)
204
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
205
+ .mockRejectedValueOnce(new Error('network down'));
206
+ const signer = await createCrossmintSigner({
207
+ ...mockConfig,
208
+ maxPollAttempts: 1,
209
+ pollIntervalMs: 1,
210
+ });
211
+ await expect(signer.signTransactions([{}])).rejects.toMatchObject({
212
+ code: 'SIGNER_HTTP_ERROR',
213
+ });
214
+ });
215
+ it('uses the final polled response when maxPollAttempts is 1', async () => {
216
+ vi.mocked(fetch)
217
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
218
+ .mockResolvedValueOnce(new Response(JSON.stringify({
219
+ id: 'tx-1',
220
+ status: 'pending',
221
+ }), { status: 201 }))
222
+ .mockResolvedValueOnce(new Response(JSON.stringify({
223
+ id: 'tx-1',
224
+ status: 'success',
225
+ onChain: { txId: MOCK_SIGNATURE_B58 },
226
+ }), { status: 200 }));
227
+ const signer = await createCrossmintSigner({
228
+ ...mockConfig,
229
+ maxPollAttempts: 1,
230
+ pollIntervalMs: 1,
231
+ });
232
+ const results = await signer.signTransactions([{}]);
233
+ expect(results).toHaveLength(1);
234
+ expect(results[0][signer.address]?.length).toBe(64);
235
+ });
236
+ it('includes signer field in request body when configured', async () => {
237
+ vi.mocked(fetch)
238
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
239
+ .mockResolvedValueOnce(new Response(JSON.stringify({
240
+ id: 'tx-1',
241
+ status: 'success',
242
+ onChain: { txId: MOCK_SIGNATURE_B58 },
243
+ }), { status: 201 }));
244
+ const signer = await createCrossmintSigner({
245
+ ...mockConfig,
246
+ signer: 'my-signer-id',
247
+ maxPollAttempts: 1,
248
+ pollIntervalMs: 1,
249
+ });
250
+ await signer.signTransactions([{}]);
251
+ const createCall = vi.mocked(fetch).mock.calls[1];
252
+ const body = JSON.parse(createCall[1]?.body);
253
+ expect(body.params.signer).toBe('my-signer-id');
254
+ });
255
+ });
256
+ describe('isAvailable', () => {
257
+ it('returns true when wallet fetch succeeds', async () => {
258
+ vi.mocked(fetch)
259
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
260
+ .mockResolvedValueOnce(mockWalletResponse()); // isAvailable()
261
+ const signer = await createCrossmintSigner(mockConfig);
262
+ const available = await signer.isAvailable();
263
+ expect(available).toBe(true);
264
+ });
265
+ it('returns false when wallet fetch fails', async () => {
266
+ vi.mocked(fetch)
267
+ .mockResolvedValueOnce(mockWalletResponse()) // create()
268
+ .mockRejectedValueOnce(new Error('network down')); // isAvailable()
269
+ const signer = await createCrossmintSigner(mockConfig);
270
+ const available = await signer.isAvailable();
271
+ expect(available).toBe(false);
272
+ });
273
+ });
274
+ });
275
+ //# sourceMappingURL=crossmint-signer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crossmint-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/crossmint-signer.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SolanaSigner } from '@solana/keychain-core';
2
+ import { SignerTestConfig, TestScenario } from '@solana/keychain-test-utils';
3
+ export declare function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<SolanaSigner>>;
4
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,27 @@
1
+ import { createCrossmintSigner } from '../crossmint-signer.js';
2
+ const SIGNER_TYPE = 'crossmint';
3
+ const REQUIRED_ENV_VARS = ['CROSSMINT_API_KEY', 'CROSSMINT_WALLET_LOCATOR'];
4
+ const CONFIG = {
5
+ signerType: SIGNER_TYPE,
6
+ 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
+ }),
20
+ };
21
+ export async function getConfig(scenarios) {
22
+ return {
23
+ ...CONFIG,
24
+ testScenarios: scenarios,
25
+ };
26
+ }
27
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import { SolanaSigner } from '@solana/keychain-core';
2
+ import type { CrossmintSignerConfig } from './types.js';
3
+ export declare function createCrossmintSigner<TAddress extends string = string>(config: CrossmintSignerConfig): Promise<SolanaSigner<TAddress>>;
4
+ //# sourceMappingURL=crossmint-signer.d.ts.map
@@ -0,0 +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"}