@solana/keychain-fireblocks 0.4.0 → 0.5.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 +4 -7
- package/dist/__tests__/fireblocks-signer.integration.test.js +27 -19
- package/dist/__tests__/fireblocks-signer.integration.test.js.map +1 -1
- package/dist/__tests__/fireblocks-signer.test.js +69 -0
- package/dist/__tests__/fireblocks-signer.test.js.map +1 -1
- package/dist/__tests__/setup.d.ts +2 -2
- package/dist/__tests__/setup.d.ts.map +1 -1
- package/dist/__tests__/setup.js +7 -13
- package/dist/__tests__/setup.js.map +1 -1
- package/dist/fireblocks-signer.d.ts +13 -2
- package/dist/fireblocks-signer.d.ts.map +1 -1
- package/dist/fireblocks-signer.js +61 -21
- package/dist/fireblocks-signer.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/fireblocks-signer.integration.test.ts +27 -20
- package/src/__tests__/fireblocks-signer.test.ts +89 -0
- package/src/__tests__/setup.ts +12 -17
- package/src/fireblocks-signer.ts +65 -21
- package/src/index.ts +1 -1
package/README.md
CHANGED
|
@@ -21,9 +21,9 @@ Follow the [Fireblocks documentation](https://developers.fireblocks.com/docs/cre
|
|
|
21
21
|
### Basic Setup
|
|
22
22
|
|
|
23
23
|
```typescript
|
|
24
|
-
import {
|
|
24
|
+
import { createFireblocksSigner } from '@solana/keychain-fireblocks';
|
|
25
25
|
|
|
26
|
-
const signer =
|
|
26
|
+
const signer = await createFireblocksSigner({
|
|
27
27
|
apiKey: 'your-fireblocks-api-key',
|
|
28
28
|
privateKeyPem: `-----BEGIN PRIVATE KEY-----
|
|
29
29
|
...your RSA 4096 private key...
|
|
@@ -31,9 +31,6 @@ const signer = new FireblocksSigner({
|
|
|
31
31
|
vaultAccountId: '0',
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
// Initialize (fetches public key from Fireblocks)
|
|
35
|
-
await signer.init();
|
|
36
|
-
|
|
37
34
|
console.log('Signer address:', signer.address);
|
|
38
35
|
```
|
|
39
36
|
|
|
@@ -66,7 +63,7 @@ const signature = await signMessage([signer], message);
|
|
|
66
63
|
By default, the signer uses RAW signing (signs bytes, you broadcast). Enable `useProgramCall` to have Fireblocks broadcast the transaction:
|
|
67
64
|
|
|
68
65
|
```typescript
|
|
69
|
-
const signer =
|
|
66
|
+
const signer = await createFireblocksSigner({
|
|
70
67
|
apiKey: 'your-fireblocks-api-key',
|
|
71
68
|
privateKeyPem: '...',
|
|
72
69
|
vaultAccountId: '0',
|
|
@@ -77,7 +74,7 @@ const signer = new FireblocksSigner({
|
|
|
77
74
|
### With Devnet
|
|
78
75
|
|
|
79
76
|
```typescript
|
|
80
|
-
const signer =
|
|
77
|
+
const signer = await createFireblocksSigner({
|
|
81
78
|
apiKey: 'your-fireblocks-api-key',
|
|
82
79
|
privateKeyPem: '...',
|
|
83
80
|
vaultAccountId: '0',
|
|
@@ -1,43 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fireblocks PROGRAM_CALL integration tests (devnet, not LiteSVM)
|
|
3
|
+
*
|
|
4
|
+
* Unlike other signers, Fireblocks PROGRAM_CALL mode signs AND broadcasts
|
|
5
|
+
* the transaction to Solana through Fireblocks' infrastructure. The signed
|
|
6
|
+
* transaction never returns to the caller — only a txHash comes back after
|
|
7
|
+
* polling. This means LiteSVM (used by runSignerIntegrationTest) can never
|
|
8
|
+
* observe the transaction, so we test against devnet directly.
|
|
9
|
+
*
|
|
10
|
+
* RAW mode returns a raw signature but is not available on the Fireblocks
|
|
11
|
+
* sandbox/testnet environment used in CI.
|
|
12
|
+
*/
|
|
1
13
|
import { appendTransactionMessageInstructions, createSolanaRpc, createTransactionMessage, pipe, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, signTransactionMessageWithSigners, } from '@solana/kit';
|
|
2
14
|
import { getAddMemoInstruction } from '@solana-program/memo';
|
|
3
15
|
import { config } from 'dotenv';
|
|
4
16
|
import { describe, expect, it } from 'vitest';
|
|
5
|
-
import {
|
|
17
|
+
import { createFireblocksSigner } from '../fireblocks-signer.js';
|
|
6
18
|
config();
|
|
7
19
|
const REQUIRED_ENV_VARS = ['FIREBLOCKS_API_KEY', 'FIREBLOCKS_PRIVATE_KEY_PEM', 'FIREBLOCKS_VAULT_ACCOUNT_ID'];
|
|
8
20
|
function hasRequiredEnvVars() {
|
|
9
21
|
return REQUIRED_ENV_VARS.every(v => process.env[v]);
|
|
10
22
|
}
|
|
11
|
-
async function createFireblocksSigner() {
|
|
12
|
-
const signer = new FireblocksSigner({
|
|
13
|
-
apiKey: process.env.FIREBLOCKS_API_KEY,
|
|
14
|
-
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
15
|
-
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM,
|
|
16
|
-
useProgramCall: true,
|
|
17
|
-
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID,
|
|
18
|
-
});
|
|
19
|
-
await signer.init();
|
|
20
|
-
return signer;
|
|
21
|
-
}
|
|
22
23
|
describe('FireblocksSigner Integration', () => {
|
|
23
24
|
it.skipIf(!hasRequiredEnvVars())('signs transactions with PROGRAM_CALL', async () => {
|
|
24
|
-
const signer = await createFireblocksSigner(
|
|
25
|
+
const signer = await createFireblocksSigner({
|
|
26
|
+
apiKey: process.env.FIREBLOCKS_API_KEY,
|
|
27
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
28
|
+
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM,
|
|
29
|
+
useProgramCall: true,
|
|
30
|
+
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID,
|
|
31
|
+
});
|
|
25
32
|
const rpcUrl = process.env.SOLANA_RPC_URL ?? 'https://api.devnet.solana.com';
|
|
26
|
-
// Get real blockhash from devnet
|
|
27
33
|
const rpc = createSolanaRpc(rpcUrl);
|
|
28
34
|
const { value: { blockhash, lastValidBlockHeight }, } = await rpc.getLatestBlockhash().send();
|
|
29
|
-
// Create memo transaction (doesn't need funds)
|
|
30
35
|
const transaction = pipe(createTransactionMessage({ version: 0 }), tx => setTransactionMessageFeePayerSigner(signer, tx), tx => appendTransactionMessageInstructions([getAddMemoInstruction({ memo: 'Fireblocks test' })], tx), tx => setTransactionMessageLifetimeUsingBlockhash({ blockhash, lastValidBlockHeight }, tx));
|
|
31
|
-
// Sign via Fireblocks (PROGRAM_CALL broadcasts to Solana)
|
|
32
36
|
const signed = await signTransactionMessageWithSigners(transaction);
|
|
33
|
-
// Verify signature returned
|
|
34
37
|
expect(signed.signatures[signer.address]).toBeDefined();
|
|
35
38
|
expect(signed.signatures[signer.address]?.length).toBe(64);
|
|
36
|
-
}, 120000);
|
|
39
|
+
}, 120000);
|
|
37
40
|
// RAW signing not available on Fireblocks testnet/sandbox
|
|
38
41
|
it.skip('signs messages with real API', () => { });
|
|
39
42
|
it.skipIf(!hasRequiredEnvVars())('checks availability', async () => {
|
|
40
|
-
const signer = await createFireblocksSigner(
|
|
43
|
+
const signer = await createFireblocksSigner({
|
|
44
|
+
apiKey: process.env.FIREBLOCKS_API_KEY,
|
|
45
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
46
|
+
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM,
|
|
47
|
+
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID,
|
|
48
|
+
});
|
|
41
49
|
const available = await signer.isAvailable();
|
|
42
50
|
expect(available).toBe(true);
|
|
43
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fireblocks-signer.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oCAAoC,EACpC,eAAe,EACf,wBAAwB,EACxB,IAAI,EACJ,mCAAmC,EACnC,2CAA2C,EAC3C,iCAAiC,GACpC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fireblocks-signer.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,6 +86,52 @@ describe('FireblocksSigner', () => {
|
|
|
86
86
|
expect(signer).toBeDefined();
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
|
+
describe('create', () => {
|
|
90
|
+
it('creates and initializes a FireblocksSigner', async () => {
|
|
91
|
+
const keyPair = await generateKeyPairSigner();
|
|
92
|
+
mockFetch.mockResolvedValueOnce({
|
|
93
|
+
ok: true,
|
|
94
|
+
json: async () => ({ addresses: [{ address: keyPair.address }] }),
|
|
95
|
+
});
|
|
96
|
+
const signer = await FireblocksSigner.create({
|
|
97
|
+
apiKey: TEST_API_KEY,
|
|
98
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
99
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
100
|
+
});
|
|
101
|
+
expect(signer.address).toBe(keyPair.address);
|
|
102
|
+
assertIsSolanaSigner(signer);
|
|
103
|
+
});
|
|
104
|
+
it('should throw error on API failure during create', async () => {
|
|
105
|
+
mockFetch.mockResolvedValueOnce({
|
|
106
|
+
ok: false,
|
|
107
|
+
status: 401,
|
|
108
|
+
text: async () => 'Unauthorized',
|
|
109
|
+
});
|
|
110
|
+
await expect(FireblocksSigner.create({
|
|
111
|
+
apiKey: TEST_API_KEY,
|
|
112
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
113
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
114
|
+
})).rejects.toThrow('Fireblocks API error: 401');
|
|
115
|
+
});
|
|
116
|
+
it('should throw error for missing apiKey', async () => {
|
|
117
|
+
await expect(FireblocksSigner.create({
|
|
118
|
+
apiKey: '',
|
|
119
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
120
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
121
|
+
})).rejects.toThrow('Missing required apiKey field');
|
|
122
|
+
});
|
|
123
|
+
it('should throw HTTP_ERROR when fetch fails during create', async () => {
|
|
124
|
+
mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
|
|
125
|
+
await expect(FireblocksSigner.create({
|
|
126
|
+
apiKey: TEST_API_KEY,
|
|
127
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
128
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
129
|
+
})).rejects.toMatchObject({
|
|
130
|
+
code: 'SIGNER_HTTP_ERROR',
|
|
131
|
+
message: expect.stringContaining('Fireblocks network request failed'),
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
});
|
|
89
135
|
describe('init', () => {
|
|
90
136
|
it('should initialize signer by fetching public key', async () => {
|
|
91
137
|
const keyPair = await generateKeyPairSigner();
|
|
@@ -154,6 +200,29 @@ describe('FireblocksSigner', () => {
|
|
|
154
200
|
});
|
|
155
201
|
});
|
|
156
202
|
describe('signMessages', () => {
|
|
203
|
+
it('should throw HTTP_ERROR when fetch fails during signing request', async () => {
|
|
204
|
+
const keyPair = await generateKeyPairSigner();
|
|
205
|
+
// Mock init fetch (success)
|
|
206
|
+
mockFetch.mockResolvedValueOnce({
|
|
207
|
+
ok: true,
|
|
208
|
+
json: async () => ({ addresses: [{ address: keyPair.address }] }),
|
|
209
|
+
});
|
|
210
|
+
const signer = await FireblocksSigner.create({
|
|
211
|
+
apiKey: TEST_API_KEY,
|
|
212
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
213
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
214
|
+
});
|
|
215
|
+
// Mock signing request to fail with network error
|
|
216
|
+
mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
|
|
217
|
+
const message = {
|
|
218
|
+
content: new Uint8Array([1, 2, 3, 4]),
|
|
219
|
+
signatures: {},
|
|
220
|
+
};
|
|
221
|
+
await expect(signer.signMessages([message])).rejects.toMatchObject({
|
|
222
|
+
code: 'SIGNER_HTTP_ERROR',
|
|
223
|
+
message: expect.stringContaining('Fireblocks network request failed'),
|
|
224
|
+
});
|
|
225
|
+
});
|
|
157
226
|
it('should throw error if not initialized', async () => {
|
|
158
227
|
const signer = new FireblocksSigner({
|
|
159
228
|
apiKey: TEST_API_KEY,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fireblocks-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEvF,sBAAsB;AACtB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAiC,CAAC;AAE3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,UAAU,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAA2B;gBACnC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC;YAEF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,CAAC,GAAG,EAAE;gBACR,IAAI,gBAAgB,CAAC;oBACjB,MAAM,EAAE,EAAE;oBACV,aAAa,EAAE,oBAAoB;oBACnC,cAAc,EAAE,qBAAqB;iBACxC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,GAAG,EAAE;gBACR,IAAI,gBAAgB,CAAC;oBACjB,MAAM,EAAE,YAAY;oBACpB,aAAa,EAAE,EAAE;oBACjB,cAAc,EAAE,qBAAqB;iBACxC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,GAAG,EAAE;gBACR,IAAI,gBAAgB,CAAC;oBACjB,MAAM,EAAE,YAAY;oBACpB,aAAa,EAAE,oBAAoB;oBACnC,cAAc,EAAE,EAAE;iBACrB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACtC,MAAM,CAAC,GAAG,EAAE;gBACR,IAAI,gBAAgB,CAAC;oBACjB,MAAM,EAAE,YAAY;oBACpB,aAAa,EAAE,oBAAoB;oBACnC,cAAc,EAAE,qBAAqB;oBACrC,cAAc,EAAE,CAAC,CAAC;iBACrB,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEvE,IAAI,gBAAgB,CAAC;gBACjB,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;gBACrC,cAAc,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAEvG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAClC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;gBACrC,OAAO,EAAE,UAAU;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC3D,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc;aACnC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;aACtE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,gCAAgC;YAErD,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG;gBACZ,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,UAAU,EAAE,EAAE;aACjB,CAAC;YAEF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,2BAA2B;YAC3B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE;wBACZ;4BACI,SAAS,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,kBAAkB;6BAC/C;yBACJ;qBACJ;iBACJ,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG;gBACZ,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,UAAU,EAAE,EAAE;aACjB,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAEpD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,oCAAoC;YACpC,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,QAAQ;iBACnB,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG;gBACZ,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,UAAU,EAAE,EAAE;aACjB,CAAC;YAEF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,wCAAwC;YACxC,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE;wBACZ;4BACI,SAAS,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,yBAAyB;6BACtD;yBACJ;qBACJ;iBACJ,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,OAAO,GAAG;gBACZ,OAAO,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,UAAU,EAAE,EAAE;aACjB,CAAC;YAEF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,2BAA2B;YAC3B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,WAAW;oBACnB,cAAc,EAAE;wBACZ;4BACI,SAAS,EAAE;gCACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;6BAC3B;yBACJ;qBACJ;iBACJ,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,WAAW,GAAG;gBAChB,YAAY,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1C,UAAU,EAAE,EAAE;aAC8C,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;YACzF,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,+FAA+F;YAC/F,4DAA4D;YAC5D,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,0FAA0F;iBACrG,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,WAAW,GAAG;gBAChB,YAAY,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1C,UAAU,EAAE,EAAE;aAC8C,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAE5D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAE9C,kBAAkB;YAClB,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;YAEH,0BAA0B;YAC1B,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;aAC5D,CAAC,CAAC;YAEH,yEAAyE;YACzE,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACf,EAAE,EAAE,QAAQ;oBACZ,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,MAAM,EAAE,iDAAiD;iBACpE,CAAC;aACL,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpB,MAAM,WAAW,GAAG;gBAChB,YAAY,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC1C,UAAU,EAAE,EAAE;aAC8C,CAAC;YAEjE,MAAM,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAClG,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACvD,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC;aACpD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YACxD,SAAS,CAAC,qBAAqB,CAAC;gBAC5B,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;aACd,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACnD,SAAS,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;gBAChC,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,oBAAoB;gBACnC,cAAc,EAAE,qBAAqB;aACxC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"fireblocks-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { SolanaSigner } from '@solana/keychain-core';
|
|
1
2
|
import { SignerTestConfig, TestScenario } from '@solana/keychain-test-utils';
|
|
2
|
-
|
|
3
|
-
export declare function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<FireblocksSigner>>;
|
|
3
|
+
export declare function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<SolanaSigner>>;
|
|
4
4
|
export declare const TEST_API_KEY = "test-api-key";
|
|
5
5
|
export declare const TEST_VAULT_ACCOUNT_ID = "0";
|
|
6
6
|
export declare const TEST_RSA_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDKKw7fHhfK3/Ts\nrAqsNCrDsjmyBTHx/AUCOTM+tZph2ZOyDSH9nZO4JkzLrW6Vfk7EZvlP3QjLiXEG\nm9qQgAh9sXgp07GicWU5omSILTMdd18yR6aIXVw/YzgjD7EVLRQU6YHc3BYgR8P8\nPBbJcxzYrrUDSGEXX2b44cZO72RxIPM+yeY3ZXiztgFQSpfEIKX488/k/PgUHMHK\n/04VoL/jiQa5dOs44CmHHT6MbBT1Sb/VR0G1hHtfMSIQCtdvzt+VBZhg7sxm50h/\ncT+n0UVOBwEp2IY2x4lzlwOdptZl7P3D1+A2rAbalXg5WO+LVEjx5ym++XbCGyvU\nrlH+ILOPAgMBAAECggEAXio3F5J/N4YgITqzD+mOf69cc0A7NsCRnqsA5PUWbvw2\ncIjwa55BZ1UjkPz7lJML4iwqdNn51j/yzsa6Q3L3QYBvfV/2jbiuku1CUTFobRGk\nXBmGhl6h8H5o79/HthrUjzcCP1qdzbRPo4Vjgbpl1cFuW5STcJ0Fq+gRg8O6b3w7\nA2843mcF9EA9ZFjXpn+VtpzLe4nHVRZFYXvXSlfdYc6WQbThnLLiLQYsVMqhYQAU\nI4c9hfgasfgZ6iCV5hMK2ZPX45+/OVQzjh4+I8zlvNWp2cKNoEhMHU2G/In11yBF\nwHGRuvbwx9Wc4Okqq+GvfTO0jCAinAQQu8C+eIcNcQKBgQDo9dzw2cNsJmaUvaL5\nI7gEtbPdr+CTgVjGoVUIlGeI0OBHt1DJEwczS2tycScE9SUDLdmegYA8ubHsAs/6\nPFEJ+779h9/IDzL3Fe9Zp1fiQgWOKF1uCS7+b8QwFMhh2u0OLWmI1rdFmqX2KCPf\nAfD/Pvp6bgapXTN1EoB3LQ/4PwKBgQDeKZeJMk9CZzWFe+m5x2yzJBK62ZvKzyjZ\nY3IeK75V0xG+Y7ZAb0zTXPkgBpBiQOqdFRgt6bp/S/6Tq/OXfeV9xVURSz4zRtCR\nlRoONL8ZSl0h4VptEjXrYfBnH2j4gtjhnTATJZBp0rYrExbz0jVbQtRzPLs+k3+p\nTuZA8+XwsQKBgCocn8buJpR7UJncugQ9f7tiOVR+waMIg8rMSTnW0ex6jcCJE9J1\nXRzZql+ysrIDuqAbfrZXhJ31l4Mpcv0yQBgE6R6dnEdm7/iYf37+cDWXZ7et9k24\n3UTjYVyrtRlzYNzqOqSg49pyPUQFN47NpAoQEWlmUE/3aCDmqlBg1f0zAoGAamv+\nHUiuUx7hspnTMp1nYsEq/7ryOErYRJqwtec6fB5p54wYZ/FpGe71n/PFAmwadzj9\npjDKl+QthUvfmnhCkOcQgwJKP4Hys2p7WsbFrDXFO0+aY5lPnvwBj0SqojD798e2\nmdVqwmafwS6Z1h6iVJ9E6hbzk1xQ0SfsgLzVL2ECgYBN6fJ99og4fkp4iA5C31TB\nUKlH64yqwxFu4vuVMqBOpGPkdsLNGhE/vpdP7yYxC/MP+v8ow/sCa40Ely20Yqqa\nznT9Ik5JV4eRXyRG9iwllKvcrmczFDIuxFmXPff4G9nmyB9fLQfSM0gD+yDR05Hx\np6B5CCtpBPgD01Vm+bT/JQ==\n-----END PRIVATE KEY-----";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAmB7E,wBAAsB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAKlG;AAED,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,usDA2BP,CAAC"}
|
package/dist/__tests__/setup.js
CHANGED
|
@@ -1,22 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createFireblocksSigner } from '../fireblocks-signer';
|
|
2
2
|
const SIGNER_TYPE = 'fireblocks';
|
|
3
3
|
const REQUIRED_ENV_VARS = ['FIREBLOCKS_API_KEY', 'FIREBLOCKS_PRIVATE_KEY_PEM', 'FIREBLOCKS_VAULT_ACCOUNT_ID'];
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const CONFIG = {
|
|
5
|
+
signerType: SIGNER_TYPE,
|
|
6
|
+
requiredEnvVars: REQUIRED_ENV_VARS,
|
|
7
|
+
createSigner: () => createFireblocksSigner({
|
|
6
8
|
apiKey: process.env.FIREBLOCKS_API_KEY,
|
|
7
|
-
assetId: process.env.FIREBLOCKS_ASSET_ID,
|
|
9
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
8
10
|
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM,
|
|
9
|
-
// Use PROGRAM_CALL for transactions (broadcasts to Solana through Fireblocks)
|
|
10
11
|
useProgramCall: true,
|
|
11
12
|
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID,
|
|
12
|
-
})
|
|
13
|
-
await signer.init();
|
|
14
|
-
return signer;
|
|
15
|
-
}
|
|
16
|
-
const CONFIG = {
|
|
17
|
-
signerType: SIGNER_TYPE,
|
|
18
|
-
requiredEnvVars: REQUIRED_ENV_VARS,
|
|
19
|
-
createSigner: createFireblocksSigner,
|
|
13
|
+
}),
|
|
20
14
|
};
|
|
21
15
|
export async function getConfig(scenarios) {
|
|
22
16
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,iBAAiB,GAAG,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,CAAC,CAAC;AAE9G,MAAM,MAAM,GAAmC;IAC3C,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,GAAG,EAAE,CACf,sBAAsB,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB;QACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,UAAU;QACtD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA2B;QACtD,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA4B;KAC3D,CAAC;CACT,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAyB;IACrD,OAAO;QACH,GAAG,MAAM;QACT,aAAa,EAAE,SAAS;KAC3B,CAAC;AACN,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2BV,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { SolanaSigner } from '@solana/keychain-core';
|
|
|
3
3
|
import { SignableMessage, SignatureDictionary } from '@solana/signers';
|
|
4
4
|
import { Transaction, TransactionWithinSizeLimit, TransactionWithLifetime } from '@solana/transactions';
|
|
5
5
|
import type { FireblocksSignerConfig } from './types.js';
|
|
6
|
+
export declare function createFireblocksSigner<TAddress extends string = string>(config: FireblocksSignerConfig): Promise<SolanaSigner<TAddress>>;
|
|
6
7
|
/**
|
|
7
8
|
* Fireblocks-based signer for Solana transactions
|
|
8
9
|
*
|
|
@@ -11,13 +12,14 @@ import type { FireblocksSignerConfig } from './types.js';
|
|
|
11
12
|
*
|
|
12
13
|
* @example
|
|
13
14
|
* ```typescript
|
|
14
|
-
* const signer =
|
|
15
|
+
* const signer = await FireblocksSigner.create({
|
|
15
16
|
* apiKey: 'your-api-key',
|
|
16
17
|
* privateKeyPem: '-----BEGIN PRIVATE KEY-----\n...',
|
|
17
18
|
* vaultAccountId: '0',
|
|
18
19
|
* });
|
|
19
|
-
* await signer.init();
|
|
20
20
|
* ```
|
|
21
|
+
*
|
|
22
|
+
* @deprecated Prefer `createFireblocksSigner()`. Class export will be removed in a future version.
|
|
21
23
|
*/
|
|
22
24
|
export declare class FireblocksSigner<TAddress extends string = string> implements SolanaSigner<TAddress> {
|
|
23
25
|
private _address;
|
|
@@ -31,6 +33,14 @@ export declare class FireblocksSigner<TAddress extends string = string> implemen
|
|
|
31
33
|
private readonly requestDelayMs;
|
|
32
34
|
private readonly useProgramCall;
|
|
33
35
|
private initialized;
|
|
36
|
+
/**
|
|
37
|
+
* Fetches the public key from Fireblocks API during initialization.
|
|
38
|
+
* @deprecated Use `createFireblocksSigner()` instead.
|
|
39
|
+
*/
|
|
40
|
+
static create<TAddress extends string = string>(config: FireblocksSignerConfig): Promise<FireblocksSigner<TAddress>>;
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Use `createFireblocksSigner()` instead. Direct construction will be removed in a future version.
|
|
43
|
+
*/
|
|
34
44
|
constructor(config: FireblocksSignerConfig);
|
|
35
45
|
/**
|
|
36
46
|
* Get the public key address of this signer
|
|
@@ -39,6 +49,7 @@ export declare class FireblocksSigner<TAddress extends string = string> implemen
|
|
|
39
49
|
get address(): Address<TAddress>;
|
|
40
50
|
/**
|
|
41
51
|
* Initialize the signer by fetching the public key from Fireblocks
|
|
52
|
+
* @deprecated Use `createFireblocksSigner()` instead, which handles initialization automatically.
|
|
42
53
|
*/
|
|
43
54
|
init(): Promise<void>;
|
|
44
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fireblocks-signer.d.ts","sourceRoot":"","sources":["../src/fireblocks-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAA8C,YAAY,EAAoB,MAAM,uBAAuB,CAAC;AAEnH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAEH,WAAW,EACX,0BAA0B,EAC1B,uBAAuB,EAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAGR,sBAAsB,EAGzB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fireblocks-signer.d.ts","sourceRoot":"","sources":["../src/fireblocks-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAA8C,YAAY,EAAoB,MAAM,uBAAuB,CAAC;AAEnH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAEH,WAAW,EACX,0BAA0B,EAC1B,uBAAuB,EAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAGR,sBAAsB,EAGzB,MAAM,YAAY,CAAC;AAGpB,wBAAsB,sBAAsB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EACzE,MAAM,EAAE,sBAAsB,GAC/B,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAEjC;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,YAAY,CAAC,QAAQ,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;WACU,MAAM,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAChD,MAAM,EAAE,sBAAsB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAMtC;;OAEG;gBACS,MAAM,EAAE,sBAAsB;IAgC1C;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAO/B;IAED;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;YACW,KAAK;IAMnB;;OAEG;YACW,cAAc;IA2D5B;;OAEG;YACW,OAAO;IA2CrB;;OAEG;YACW,YAAY;IAqB1B;;;OAGG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,gBAAgB;IAqD9B;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;IAmBjG;;OAEG;IACG,gBAAgB,CAClB,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,0BAA0B,GAAG,uBAAuB,CAAC,EAAE,GAC9F,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;IAiB1C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAO5B"}
|
|
@@ -4,6 +4,9 @@ import { createSignatureDictionary, SignerErrorCode, throwSignerError } from '@s
|
|
|
4
4
|
import { getBase64EncodedWireTransaction, } from '@solana/transactions';
|
|
5
5
|
import { createJwt } from './jwt.js';
|
|
6
6
|
import { TERMINAL_STATUSES } from './types.js';
|
|
7
|
+
export async function createFireblocksSigner(config) {
|
|
8
|
+
return await FireblocksSigner.create(config);
|
|
9
|
+
}
|
|
7
10
|
const DEFAULT_API_BASE_URL = 'https://api.fireblocks.io';
|
|
8
11
|
const DEFAULT_ASSET_ID = 'SOL';
|
|
9
12
|
const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
@@ -16,15 +19,28 @@ const DEFAULT_MAX_POLL_ATTEMPTS = 60;
|
|
|
16
19
|
*
|
|
17
20
|
* @example
|
|
18
21
|
* ```typescript
|
|
19
|
-
* const signer =
|
|
22
|
+
* const signer = await FireblocksSigner.create({
|
|
20
23
|
* apiKey: 'your-api-key',
|
|
21
24
|
* privateKeyPem: '-----BEGIN PRIVATE KEY-----\n...',
|
|
22
25
|
* vaultAccountId: '0',
|
|
23
26
|
* });
|
|
24
|
-
* await signer.init();
|
|
25
27
|
* ```
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Prefer `createFireblocksSigner()`. Class export will be removed in a future version.
|
|
26
30
|
*/
|
|
27
31
|
export class FireblocksSigner {
|
|
32
|
+
/**
|
|
33
|
+
* Fetches the public key from Fireblocks API during initialization.
|
|
34
|
+
* @deprecated Use `createFireblocksSigner()` instead.
|
|
35
|
+
*/
|
|
36
|
+
static async create(config) {
|
|
37
|
+
const signer = new FireblocksSigner(config);
|
|
38
|
+
await signer.init();
|
|
39
|
+
return signer;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated Use `createFireblocksSigner()` instead. Direct construction will be removed in a future version.
|
|
43
|
+
*/
|
|
28
44
|
constructor(config) {
|
|
29
45
|
this._address = null;
|
|
30
46
|
this.initialized = false;
|
|
@@ -68,6 +84,7 @@ export class FireblocksSigner {
|
|
|
68
84
|
}
|
|
69
85
|
/**
|
|
70
86
|
* Initialize the signer by fetching the public key from Fireblocks
|
|
87
|
+
* @deprecated Use `createFireblocksSigner()` instead, which handles initialization automatically.
|
|
71
88
|
*/
|
|
72
89
|
async init() {
|
|
73
90
|
if (this.initialized) {
|
|
@@ -105,13 +122,23 @@ export class FireblocksSigner {
|
|
|
105
122
|
const uri = `/v1/vault/accounts/${this.vaultAccountId}/${this.assetId}/addresses_paginated`;
|
|
106
123
|
const token = await createJwt(this.apiKey, this.privateKeyPem, uri, '');
|
|
107
124
|
const url = `${this.apiBaseUrl}${uri}`;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
125
|
+
let response;
|
|
126
|
+
try {
|
|
127
|
+
response = await fetch(url, {
|
|
128
|
+
headers: {
|
|
129
|
+
Authorization: `Bearer ${token}`,
|
|
130
|
+
'X-API-Key': this.apiKey,
|
|
131
|
+
},
|
|
132
|
+
method: 'GET',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
throwSignerError(SignerErrorCode.HTTP_ERROR, {
|
|
137
|
+
cause: error,
|
|
138
|
+
message: 'Fireblocks network request failed',
|
|
139
|
+
url,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
115
142
|
if (!response.ok) {
|
|
116
143
|
const errorText = await response.text().catch(() => 'Failed to read error response');
|
|
117
144
|
throwSignerError(SignerErrorCode.REMOTE_API_ERROR, {
|
|
@@ -124,8 +151,9 @@ export class FireblocksSigner {
|
|
|
124
151
|
try {
|
|
125
152
|
addressesResponse = (await response.json());
|
|
126
153
|
}
|
|
127
|
-
catch {
|
|
154
|
+
catch (error) {
|
|
128
155
|
throwSignerError(SignerErrorCode.PARSING_ERROR, {
|
|
156
|
+
cause: error,
|
|
129
157
|
message: 'Failed to parse Fireblocks response',
|
|
130
158
|
});
|
|
131
159
|
}
|
|
@@ -139,8 +167,9 @@ export class FireblocksSigner {
|
|
|
139
167
|
assertIsAddress(firstAddress);
|
|
140
168
|
return firstAddress;
|
|
141
169
|
}
|
|
142
|
-
catch {
|
|
170
|
+
catch (error) {
|
|
143
171
|
throwSignerError(SignerErrorCode.INVALID_PUBLIC_KEY, {
|
|
172
|
+
cause: error,
|
|
144
173
|
message: 'Invalid address from Fireblocks',
|
|
145
174
|
});
|
|
146
175
|
}
|
|
@@ -152,15 +181,25 @@ export class FireblocksSigner {
|
|
|
152
181
|
const bodyStr = body ? JSON.stringify(body) : '';
|
|
153
182
|
const token = await createJwt(this.apiKey, this.privateKeyPem, uri, bodyStr);
|
|
154
183
|
const url = `${this.apiBaseUrl}${uri}`;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
184
|
+
let response;
|
|
185
|
+
try {
|
|
186
|
+
response = await fetch(url, {
|
|
187
|
+
body: body ? bodyStr : undefined,
|
|
188
|
+
headers: {
|
|
189
|
+
Authorization: `Bearer ${token}`,
|
|
190
|
+
'Content-Type': 'application/json',
|
|
191
|
+
'X-API-Key': this.apiKey,
|
|
192
|
+
},
|
|
193
|
+
method,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
throwSignerError(SignerErrorCode.HTTP_ERROR, {
|
|
198
|
+
cause: error,
|
|
199
|
+
message: 'Fireblocks network request failed',
|
|
200
|
+
url,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
164
203
|
if (!response.ok) {
|
|
165
204
|
const errorText = await response.text().catch(() => 'Failed to read error response');
|
|
166
205
|
throwSignerError(SignerErrorCode.REMOTE_API_ERROR, {
|
|
@@ -172,8 +211,9 @@ export class FireblocksSigner {
|
|
|
172
211
|
try {
|
|
173
212
|
return (await response.json());
|
|
174
213
|
}
|
|
175
|
-
catch {
|
|
214
|
+
catch (error) {
|
|
176
215
|
throwSignerError(SignerErrorCode.PARSING_ERROR, {
|
|
216
|
+
cause: error,
|
|
177
217
|
message: 'Failed to parse Fireblocks response',
|
|
178
218
|
});
|
|
179
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fireblocks-signer.js","sourceRoot":"","sources":["../src/fireblocks-signer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fireblocks-signer.js","sourceRoot":"","sources":["../src/fireblocks-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAgB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGnH,OAAO,EACH,+BAA+B,GAIlC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,OAAO,EAA+B,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAA8B;IAE9B,OAAO,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,gBAAgB;IAazB;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACf,MAA8B;QAE9B,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAW,MAAM,CAAC,CAAC;QACtD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,YAAY,MAA8B;QA3BlC,aAAQ,GAA6B,IAAI,CAAC;QAU1C,gBAAW,GAAG,KAAK,CAAC;QAkBxB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACjB,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE;gBAC3C,OAAO,EAAE,+BAA+B;aAC3C,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YACxB,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE;gBAC3C,OAAO,EAAE,sCAAsC;aAClD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACzB,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE;gBAC3C,OAAO,EAAE,uCAAuC;aACnD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,oBAAoB,CAAC;QAC5D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACxE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,yBAAyB,CAAC;QAC3E,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QAErD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,gBAAgB,CAAC,eAAe,CAAC,sBAAsB,EAAE;gBACrD,OAAO,EAAE,4CAA4C;aACxD,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,MAA2B,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,cAAsB;QACjD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrB,gBAAgB,CAAC,eAAe,CAAC,YAAY,EAAE;gBAC3C,OAAO,EAAE,qCAAqC;aACjD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACR,yHAAyH,CAC5H,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,KAAK,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACnF,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QACxB,MAAM,GAAG,GAAG,sBAAsB,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,sBAAsB,CAAC;QAC5F,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAExE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QACvC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACxB,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,WAAW,EAAE,IAAI,CAAC,MAAM;iBAC3B;gBACD,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB,CAAC,eAAe,CAAC,UAAU,EAAE;gBACzC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,mCAAmC;gBAC5C,GAAG;aACN,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;YACrF,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBAC/C,OAAO,EAAE,yBAAyB,QAAQ,CAAC,MAAM,EAAE;gBACnD,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,iBAAyC,CAAC;QAC9C,IAAI,CAAC;YACD,iBAAiB,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2B,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB,CAAC,eAAe,CAAC,aAAa,EAAE;gBAC5C,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,qCAAqC;aACjD,CAAC,CAAC;QACP,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QAC7D,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,EAAE;gBACjD,OAAO,EAAE,wCAAwC;aACpD,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC;YACD,eAAe,CAAC,YAAY,CAAC,CAAC;YAC9B,OAAO,YAAuB,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,EAAE;gBACjD,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,iCAAiC;aAC7C,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,GAAW,EAAE,IAAc;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAE7E,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;QACvC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACxB,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBAChC,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;oBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;iBAC3B;gBACD,MAAM;aACT,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB,CAAC,eAAe,CAAC,UAAU,EAAE;gBACzC,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,mCAAmC;gBAC5C,GAAG;aACN,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;YACrF,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,EAAE;gBAC/C,OAAO,EAAE,yBAAyB,QAAQ,CAAC,MAAM,EAAE;gBACnD,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;aAC1B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC;YACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,gBAAgB,CAAC,eAAe,CAAC,aAAa,EAAE;gBAC5C,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,qCAAqC;aACjD,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,YAAwB;QAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,OAAO,GAA6B;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE;gBACb,cAAc,EAAE;oBACZ,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;iBACtC;aACJ;YACD,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,cAAc;gBACvB,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAA4B,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC1G,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC7B,WAA+E;QAE/E,+EAA+E;QAC/E,MAAM,qBAAqB,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;QAE3E,MAAM,OAAO,GAA6B;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,eAAe,EAAE;gBACb,eAAe,EAAE,qBAAqB;aACzC;YACD,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE;gBACJ,EAAE,EAAE,IAAI,CAAC,cAAc;gBACvB,IAAI,EAAE,eAAe;aACxB;SACJ,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAA4B,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAC1G,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAAC,aAAqB;QAChD,MAAM,GAAG,GAAG,oBAAoB,aAAa,EAAE,CAAC;QAEhD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAsB,KAAK,EAAE,GAAG,CAAC,CAAC;YAEvE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAqC,CAAC;YAEhE,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACpC,uDAAuD;gBACvD,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC;gBACnE,IAAI,OAAO,EAAE,CAAC;oBACV,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;oBACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;wBACzB,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE;4BAC7C,OAAO,EAAE,oDAAoD,QAAQ,CAAC,MAAM,EAAE;yBACjF,CAAC,CAAC;oBACP,CAAC;oBACD,OAAO,QAA0B,CAAC;gBACtC,CAAC;gBAED,uDAAuD;gBACvD,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;wBACzB,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE;4BAC7C,OAAO,EAAE,iDAAiD,QAAQ,CAAC,MAAM,EAAE;yBAC9E,CAAC,CAAC;oBACP,CAAC;oBACD,OAAO,QAA0B,CAAC;gBACtC,CAAC;gBAED,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE;oBAC7C,OAAO,EAAE,8DAA8D;iBAC1E,CAAC,CAAC;YACP,CAAC;YAED,sCAAsC;YACtC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE;oBAC7C,OAAO,EAAE,mCAAmC,UAAU,CAAC,MAAM,EAAE;iBAClE,CAAC,CAAC;YACP,CAAC;YAED,wBAAwB;YACxB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE;YAC7C,OAAO,EAAE,uCAAuC,IAAI,CAAC,eAAe,WAAW;SAClF,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAoC;QACnD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,MAAM,OAAO,CAAC,GAAG,CACpB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,YAAY,GACd,OAAO,CAAC,OAAO,YAAY,UAAU;gBACjC,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,yBAAyB,CAAC;gBAC7B,SAAS,EAAE,cAAc;gBACzB,aAAa,EAAE,IAAI,CAAC,OAAO;aAC9B,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAClB,YAA6F;QAE7F,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,OAAO,MAAM,OAAO,CAAC,GAAG,CACpB,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;YAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc;gBACtC,CAAC,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAC7C,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YACxE,OAAO,yBAAyB,CAAC;gBAC7B,SAAS,EAAE,cAAc;gBACzB,aAAa,EAAE,IAAI,CAAC,OAAO;aAC9B,CAAC,CAAC;QACP,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACb,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,sBAAsB,IAAI,CAAC,cAAc,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAExE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC9B,OAAO,EAAE;oBACL,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,WAAW,EAAE,IAAI,CAAC,MAAM;iBAC3B;gBACD,MAAM,EAAE,KAAK;aAChB,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,gBAAgB,CAAC,eAAe,CAAC,sBAAsB,EAAE;gBACrD,OAAO,EAAE,4CAA4C;aACxD,CAAC,CAAC;QACP,CAAC;IACL,CAAC;CACJ;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,KAAiB;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACzC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { FireblocksSigner } from './fireblocks-signer.js';
|
|
1
|
+
export { FireblocksSigner, createFireblocksSigner } from './fireblocks-signer.js';
|
|
2
2
|
export type { FireblocksSignerConfig, CreateTransactionRequest, CreateTransactionResponse, TransactionResponse, VaultAddressesResponse, } from './types.js';
|
|
3
3
|
export { FireblocksTransactionStatus, TERMINAL_STATUSES } from './types.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAClF,YAAY,EACR,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,GACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAQlF,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/keychain-fireblocks",
|
|
3
3
|
"author": "Solana Foundation",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"description": "Fireblocks-based signer for Solana transactions",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": "https://github.com/solana-foundation/solana-keychain",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
"@solana/signers": "^6.0.1",
|
|
35
35
|
"@solana/transactions": "^6.0.1",
|
|
36
36
|
"jose": "^6.1.3",
|
|
37
|
-
"@solana/keychain-core": "0.
|
|
37
|
+
"@solana/keychain-core": "0.5.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@solana-program/memo": "^0.11.0",
|
|
41
41
|
"@solana/kit": "^6.0.1",
|
|
42
42
|
"dotenv": "^17.2.3",
|
|
43
|
-
"@solana/keychain-test-utils": "0.
|
|
43
|
+
"@solana/keychain-test-utils": "0.5.0"
|
|
44
44
|
},
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fireblocks PROGRAM_CALL integration tests (devnet, not LiteSVM)
|
|
3
|
+
*
|
|
4
|
+
* Unlike other signers, Fireblocks PROGRAM_CALL mode signs AND broadcasts
|
|
5
|
+
* the transaction to Solana through Fireblocks' infrastructure. The signed
|
|
6
|
+
* transaction never returns to the caller — only a txHash comes back after
|
|
7
|
+
* polling. This means LiteSVM (used by runSignerIntegrationTest) can never
|
|
8
|
+
* observe the transaction, so we test against devnet directly.
|
|
9
|
+
*
|
|
10
|
+
* RAW mode returns a raw signature but is not available on the Fireblocks
|
|
11
|
+
* sandbox/testnet environment used in CI.
|
|
12
|
+
*/
|
|
1
13
|
import {
|
|
2
14
|
appendTransactionMessageInstructions,
|
|
3
15
|
createSolanaRpc,
|
|
@@ -11,7 +23,7 @@ import { getAddMemoInstruction } from '@solana-program/memo';
|
|
|
11
23
|
import { config } from 'dotenv';
|
|
12
24
|
import { describe, expect, it } from 'vitest';
|
|
13
25
|
|
|
14
|
-
import {
|
|
26
|
+
import { createFireblocksSigner } from '../fireblocks-signer.js';
|
|
15
27
|
|
|
16
28
|
config();
|
|
17
29
|
|
|
@@ -21,32 +33,24 @@ function hasRequiredEnvVars(): boolean {
|
|
|
21
33
|
return REQUIRED_ENV_VARS.every(v => process.env[v]);
|
|
22
34
|
}
|
|
23
35
|
|
|
24
|
-
async function createFireblocksSigner(): Promise<FireblocksSigner> {
|
|
25
|
-
const signer = new FireblocksSigner({
|
|
26
|
-
apiKey: process.env.FIREBLOCKS_API_KEY!,
|
|
27
|
-
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
28
|
-
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM!,
|
|
29
|
-
useProgramCall: true,
|
|
30
|
-
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID!,
|
|
31
|
-
});
|
|
32
|
-
await signer.init();
|
|
33
|
-
return signer;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
36
|
describe('FireblocksSigner Integration', () => {
|
|
37
37
|
it.skipIf(!hasRequiredEnvVars())(
|
|
38
38
|
'signs transactions with PROGRAM_CALL',
|
|
39
39
|
async () => {
|
|
40
|
-
const signer = await createFireblocksSigner(
|
|
40
|
+
const signer = await createFireblocksSigner({
|
|
41
|
+
apiKey: process.env.FIREBLOCKS_API_KEY!,
|
|
42
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
43
|
+
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM!,
|
|
44
|
+
useProgramCall: true,
|
|
45
|
+
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID!,
|
|
46
|
+
});
|
|
41
47
|
const rpcUrl = process.env.SOLANA_RPC_URL ?? 'https://api.devnet.solana.com';
|
|
42
48
|
|
|
43
|
-
// Get real blockhash from devnet
|
|
44
49
|
const rpc = createSolanaRpc(rpcUrl);
|
|
45
50
|
const {
|
|
46
51
|
value: { blockhash, lastValidBlockHeight },
|
|
47
52
|
} = await rpc.getLatestBlockhash().send();
|
|
48
53
|
|
|
49
|
-
// Create memo transaction (doesn't need funds)
|
|
50
54
|
const transaction = pipe(
|
|
51
55
|
createTransactionMessage({ version: 0 }),
|
|
52
56
|
tx => setTransactionMessageFeePayerSigner(signer, tx),
|
|
@@ -54,21 +58,24 @@ describe('FireblocksSigner Integration', () => {
|
|
|
54
58
|
tx => setTransactionMessageLifetimeUsingBlockhash({ blockhash, lastValidBlockHeight }, tx),
|
|
55
59
|
);
|
|
56
60
|
|
|
57
|
-
// Sign via Fireblocks (PROGRAM_CALL broadcasts to Solana)
|
|
58
61
|
const signed = await signTransactionMessageWithSigners(transaction);
|
|
59
62
|
|
|
60
|
-
// Verify signature returned
|
|
61
63
|
expect(signed.signatures[signer.address]).toBeDefined();
|
|
62
64
|
expect(signed.signatures[signer.address]?.length).toBe(64);
|
|
63
65
|
},
|
|
64
66
|
120_000,
|
|
65
|
-
);
|
|
67
|
+
);
|
|
66
68
|
|
|
67
69
|
// RAW signing not available on Fireblocks testnet/sandbox
|
|
68
70
|
it.skip('signs messages with real API', () => {});
|
|
69
71
|
|
|
70
72
|
it.skipIf(!hasRequiredEnvVars())('checks availability', async () => {
|
|
71
|
-
const signer = await createFireblocksSigner(
|
|
73
|
+
const signer = await createFireblocksSigner({
|
|
74
|
+
apiKey: process.env.FIREBLOCKS_API_KEY!,
|
|
75
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
76
|
+
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM!,
|
|
77
|
+
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID!,
|
|
78
|
+
});
|
|
72
79
|
const available = await signer.isAvailable();
|
|
73
80
|
expect(available).toBe(true);
|
|
74
81
|
});
|
|
@@ -106,6 +106,67 @@ describe('FireblocksSigner', () => {
|
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
+
describe('create', () => {
|
|
110
|
+
it('creates and initializes a FireblocksSigner', async () => {
|
|
111
|
+
const keyPair = await generateKeyPairSigner();
|
|
112
|
+
|
|
113
|
+
mockFetch.mockResolvedValueOnce({
|
|
114
|
+
ok: true,
|
|
115
|
+
json: async () => ({ addresses: [{ address: keyPair.address }] }),
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const signer = await FireblocksSigner.create({
|
|
119
|
+
apiKey: TEST_API_KEY,
|
|
120
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
121
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
expect(signer.address).toBe(keyPair.address);
|
|
125
|
+
assertIsSolanaSigner(signer);
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
it('should throw error on API failure during create', async () => {
|
|
129
|
+
mockFetch.mockResolvedValueOnce({
|
|
130
|
+
ok: false,
|
|
131
|
+
status: 401,
|
|
132
|
+
text: async () => 'Unauthorized',
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
await expect(
|
|
136
|
+
FireblocksSigner.create({
|
|
137
|
+
apiKey: TEST_API_KEY,
|
|
138
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
139
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
140
|
+
}),
|
|
141
|
+
).rejects.toThrow('Fireblocks API error: 401');
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it('should throw error for missing apiKey', async () => {
|
|
145
|
+
await expect(
|
|
146
|
+
FireblocksSigner.create({
|
|
147
|
+
apiKey: '',
|
|
148
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
149
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
150
|
+
}),
|
|
151
|
+
).rejects.toThrow('Missing required apiKey field');
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it('should throw HTTP_ERROR when fetch fails during create', async () => {
|
|
155
|
+
mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
|
|
156
|
+
|
|
157
|
+
await expect(
|
|
158
|
+
FireblocksSigner.create({
|
|
159
|
+
apiKey: TEST_API_KEY,
|
|
160
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
161
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
162
|
+
}),
|
|
163
|
+
).rejects.toMatchObject({
|
|
164
|
+
code: 'SIGNER_HTTP_ERROR',
|
|
165
|
+
message: expect.stringContaining('Fireblocks network request failed'),
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
|
|
109
170
|
describe('init', () => {
|
|
110
171
|
it('should initialize signer by fetching public key', async () => {
|
|
111
172
|
const keyPair = await generateKeyPairSigner();
|
|
@@ -192,6 +253,34 @@ describe('FireblocksSigner', () => {
|
|
|
192
253
|
});
|
|
193
254
|
|
|
194
255
|
describe('signMessages', () => {
|
|
256
|
+
it('should throw HTTP_ERROR when fetch fails during signing request', async () => {
|
|
257
|
+
const keyPair = await generateKeyPairSigner();
|
|
258
|
+
|
|
259
|
+
// Mock init fetch (success)
|
|
260
|
+
mockFetch.mockResolvedValueOnce({
|
|
261
|
+
ok: true,
|
|
262
|
+
json: async () => ({ addresses: [{ address: keyPair.address }] }),
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
const signer = await FireblocksSigner.create({
|
|
266
|
+
apiKey: TEST_API_KEY,
|
|
267
|
+
privateKeyPem: TEST_RSA_PRIVATE_KEY,
|
|
268
|
+
vaultAccountId: TEST_VAULT_ACCOUNT_ID,
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
// Mock signing request to fail with network error
|
|
272
|
+
mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
|
|
273
|
+
|
|
274
|
+
const message = {
|
|
275
|
+
content: new Uint8Array([1, 2, 3, 4]),
|
|
276
|
+
signatures: {},
|
|
277
|
+
};
|
|
278
|
+
await expect(signer.signMessages([message])).rejects.toMatchObject({
|
|
279
|
+
code: 'SIGNER_HTTP_ERROR',
|
|
280
|
+
message: expect.stringContaining('Fireblocks network request failed'),
|
|
281
|
+
});
|
|
282
|
+
});
|
|
283
|
+
|
|
195
284
|
it('should throw error if not initialized', async () => {
|
|
196
285
|
const signer = new FireblocksSigner({
|
|
197
286
|
apiKey: TEST_API_KEY,
|
package/src/__tests__/setup.ts
CHANGED
|
@@ -1,29 +1,24 @@
|
|
|
1
|
+
import type { SolanaSigner } from '@solana/keychain-core';
|
|
1
2
|
import { SignerTestConfig, TestScenario } from '@solana/keychain-test-utils';
|
|
2
|
-
import {
|
|
3
|
+
import { createFireblocksSigner } from '../fireblocks-signer';
|
|
3
4
|
|
|
4
5
|
const SIGNER_TYPE = 'fireblocks';
|
|
5
6
|
const REQUIRED_ENV_VARS = ['FIREBLOCKS_API_KEY', 'FIREBLOCKS_PRIVATE_KEY_PEM', 'FIREBLOCKS_VAULT_ACCOUNT_ID'];
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
const signer = new FireblocksSigner({
|
|
9
|
-
apiKey: process.env.FIREBLOCKS_API_KEY!,
|
|
10
|
-
assetId: process.env.FIREBLOCKS_ASSET_ID,
|
|
11
|
-
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM!,
|
|
12
|
-
// Use PROGRAM_CALL for transactions (broadcasts to Solana through Fireblocks)
|
|
13
|
-
useProgramCall: true,
|
|
14
|
-
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID!,
|
|
15
|
-
});
|
|
16
|
-
await signer.init();
|
|
17
|
-
return signer;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const CONFIG: SignerTestConfig<FireblocksSigner> = {
|
|
8
|
+
const CONFIG: SignerTestConfig<SolanaSigner> = {
|
|
21
9
|
signerType: SIGNER_TYPE,
|
|
22
10
|
requiredEnvVars: REQUIRED_ENV_VARS,
|
|
23
|
-
createSigner:
|
|
11
|
+
createSigner: () =>
|
|
12
|
+
createFireblocksSigner({
|
|
13
|
+
apiKey: process.env.FIREBLOCKS_API_KEY!,
|
|
14
|
+
assetId: process.env.FIREBLOCKS_ASSET_ID ?? 'SOL_TEST',
|
|
15
|
+
privateKeyPem: process.env.FIREBLOCKS_PRIVATE_KEY_PEM!,
|
|
16
|
+
useProgramCall: true,
|
|
17
|
+
vaultAccountId: process.env.FIREBLOCKS_VAULT_ACCOUNT_ID!,
|
|
18
|
+
}),
|
|
24
19
|
};
|
|
25
20
|
|
|
26
|
-
export async function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<
|
|
21
|
+
export async function getConfig(scenarios: TestScenario[]): Promise<SignerTestConfig<SolanaSigner>> {
|
|
27
22
|
return {
|
|
28
23
|
...CONFIG,
|
|
29
24
|
testScenarios: scenarios,
|
package/src/fireblocks-signer.ts
CHANGED
|
@@ -20,6 +20,12 @@ import type {
|
|
|
20
20
|
} from './types.js';
|
|
21
21
|
import { FireblocksTransactionStatus, TERMINAL_STATUSES } from './types.js';
|
|
22
22
|
|
|
23
|
+
export async function createFireblocksSigner<TAddress extends string = string>(
|
|
24
|
+
config: FireblocksSignerConfig,
|
|
25
|
+
): Promise<SolanaSigner<TAddress>> {
|
|
26
|
+
return await FireblocksSigner.create(config);
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
const DEFAULT_API_BASE_URL = 'https://api.fireblocks.io';
|
|
24
30
|
const DEFAULT_ASSET_ID = 'SOL';
|
|
25
31
|
const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
@@ -33,13 +39,14 @@ const DEFAULT_MAX_POLL_ATTEMPTS = 60;
|
|
|
33
39
|
*
|
|
34
40
|
* @example
|
|
35
41
|
* ```typescript
|
|
36
|
-
* const signer =
|
|
42
|
+
* const signer = await FireblocksSigner.create({
|
|
37
43
|
* apiKey: 'your-api-key',
|
|
38
44
|
* privateKeyPem: '-----BEGIN PRIVATE KEY-----\n...',
|
|
39
45
|
* vaultAccountId: '0',
|
|
40
46
|
* });
|
|
41
|
-
* await signer.init();
|
|
42
47
|
* ```
|
|
48
|
+
*
|
|
49
|
+
* @deprecated Prefer `createFireblocksSigner()`. Class export will be removed in a future version.
|
|
43
50
|
*/
|
|
44
51
|
export class FireblocksSigner<TAddress extends string = string> implements SolanaSigner<TAddress> {
|
|
45
52
|
private _address: Address<TAddress> | null = null;
|
|
@@ -54,6 +61,21 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
54
61
|
private readonly useProgramCall: boolean;
|
|
55
62
|
private initialized = false;
|
|
56
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Fetches the public key from Fireblocks API during initialization.
|
|
66
|
+
* @deprecated Use `createFireblocksSigner()` instead.
|
|
67
|
+
*/
|
|
68
|
+
static async create<TAddress extends string = string>(
|
|
69
|
+
config: FireblocksSignerConfig,
|
|
70
|
+
): Promise<FireblocksSigner<TAddress>> {
|
|
71
|
+
const signer = new FireblocksSigner<TAddress>(config);
|
|
72
|
+
await signer.init();
|
|
73
|
+
return signer;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @deprecated Use `createFireblocksSigner()` instead. Direct construction will be removed in a future version.
|
|
78
|
+
*/
|
|
57
79
|
constructor(config: FireblocksSignerConfig) {
|
|
58
80
|
if (!config.apiKey) {
|
|
59
81
|
throwSignerError(SignerErrorCode.CONFIG_ERROR, {
|
|
@@ -101,6 +123,7 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
101
123
|
|
|
102
124
|
/**
|
|
103
125
|
* Initialize the signer by fetching the public key from Fireblocks
|
|
126
|
+
* @deprecated Use `createFireblocksSigner()` instead, which handles initialization automatically.
|
|
104
127
|
*/
|
|
105
128
|
async init(): Promise<void> {
|
|
106
129
|
if (this.initialized) {
|
|
@@ -145,13 +168,22 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
145
168
|
const token = await createJwt(this.apiKey, this.privateKeyPem, uri, '');
|
|
146
169
|
|
|
147
170
|
const url = `${this.apiBaseUrl}${uri}`;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
171
|
+
let response: Response;
|
|
172
|
+
try {
|
|
173
|
+
response = await fetch(url, {
|
|
174
|
+
headers: {
|
|
175
|
+
Authorization: `Bearer ${token}`,
|
|
176
|
+
'X-API-Key': this.apiKey,
|
|
177
|
+
},
|
|
178
|
+
method: 'GET',
|
|
179
|
+
});
|
|
180
|
+
} catch (error) {
|
|
181
|
+
throwSignerError(SignerErrorCode.HTTP_ERROR, {
|
|
182
|
+
cause: error,
|
|
183
|
+
message: 'Fireblocks network request failed',
|
|
184
|
+
url,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
155
187
|
|
|
156
188
|
if (!response.ok) {
|
|
157
189
|
const errorText = await response.text().catch(() => 'Failed to read error response');
|
|
@@ -165,8 +197,9 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
165
197
|
let addressesResponse: VaultAddressesResponse;
|
|
166
198
|
try {
|
|
167
199
|
addressesResponse = (await response.json()) as VaultAddressesResponse;
|
|
168
|
-
} catch {
|
|
200
|
+
} catch (error) {
|
|
169
201
|
throwSignerError(SignerErrorCode.PARSING_ERROR, {
|
|
202
|
+
cause: error,
|
|
170
203
|
message: 'Failed to parse Fireblocks response',
|
|
171
204
|
});
|
|
172
205
|
}
|
|
@@ -181,8 +214,9 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
181
214
|
try {
|
|
182
215
|
assertIsAddress(firstAddress);
|
|
183
216
|
return firstAddress as Address;
|
|
184
|
-
} catch {
|
|
217
|
+
} catch (error) {
|
|
185
218
|
throwSignerError(SignerErrorCode.INVALID_PUBLIC_KEY, {
|
|
219
|
+
cause: error,
|
|
186
220
|
message: 'Invalid address from Fireblocks',
|
|
187
221
|
});
|
|
188
222
|
}
|
|
@@ -196,15 +230,24 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
196
230
|
const token = await createJwt(this.apiKey, this.privateKeyPem, uri, bodyStr);
|
|
197
231
|
|
|
198
232
|
const url = `${this.apiBaseUrl}${uri}`;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
233
|
+
let response: Response;
|
|
234
|
+
try {
|
|
235
|
+
response = await fetch(url, {
|
|
236
|
+
body: body ? bodyStr : undefined,
|
|
237
|
+
headers: {
|
|
238
|
+
Authorization: `Bearer ${token}`,
|
|
239
|
+
'Content-Type': 'application/json',
|
|
240
|
+
'X-API-Key': this.apiKey,
|
|
241
|
+
},
|
|
242
|
+
method,
|
|
243
|
+
});
|
|
244
|
+
} catch (error) {
|
|
245
|
+
throwSignerError(SignerErrorCode.HTTP_ERROR, {
|
|
246
|
+
cause: error,
|
|
247
|
+
message: 'Fireblocks network request failed',
|
|
248
|
+
url,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
208
251
|
|
|
209
252
|
if (!response.ok) {
|
|
210
253
|
const errorText = await response.text().catch(() => 'Failed to read error response');
|
|
@@ -217,8 +260,9 @@ export class FireblocksSigner<TAddress extends string = string> implements Solan
|
|
|
217
260
|
|
|
218
261
|
try {
|
|
219
262
|
return (await response.json()) as T;
|
|
220
|
-
} catch {
|
|
263
|
+
} catch (error) {
|
|
221
264
|
throwSignerError(SignerErrorCode.PARSING_ERROR, {
|
|
265
|
+
cause: error,
|
|
222
266
|
message: 'Failed to parse Fireblocks response',
|
|
223
267
|
});
|
|
224
268
|
}
|
package/src/index.ts
CHANGED