@solana/keychain-fireblocks 0.4.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 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 { FireblocksSigner } from '@solana/keychain-fireblocks';
24
+ import { createFireblocksSigner } from '@solana/keychain-fireblocks';
25
25
 
26
- const signer = new FireblocksSigner({
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 = new FireblocksSigner({
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 = new FireblocksSigner({
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 { FireblocksSigner } from '../fireblocks-signer.js';
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); // 2 minute timeout for PROGRAM_CALL
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":"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"}
1
+ {"version":3,"file":"fireblocks-signer.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.integration.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
3
3
  import { assertIsSolanaSigner } from '@solana/keychain-core';
4
4
  import { FireblocksSigner } from '../fireblocks-signer.js';
5
5
  import { TEST_API_KEY, TEST_RSA_PRIVATE_KEY, TEST_VAULT_ACCOUNT_ID } from './setup.js';
6
+ vi.mock('@solana/keychain-core', async (importOriginal) => {
7
+ const mod = await importOriginal();
8
+ return { ...mod, assertSignatureValid: vi.fn() };
9
+ });
6
10
  // Mock fetch globally
7
11
  global.fetch = vi.fn();
8
12
  const mockFetch = global.fetch;
@@ -86,6 +90,52 @@ describe('FireblocksSigner', () => {
86
90
  expect(signer).toBeDefined();
87
91
  });
88
92
  });
93
+ describe('create', () => {
94
+ it('creates and initializes a FireblocksSigner', async () => {
95
+ const keyPair = await generateKeyPairSigner();
96
+ mockFetch.mockResolvedValueOnce({
97
+ ok: true,
98
+ json: async () => ({ addresses: [{ address: keyPair.address }] }),
99
+ });
100
+ const signer = await FireblocksSigner.create({
101
+ apiKey: TEST_API_KEY,
102
+ privateKeyPem: TEST_RSA_PRIVATE_KEY,
103
+ vaultAccountId: TEST_VAULT_ACCOUNT_ID,
104
+ });
105
+ expect(signer.address).toBe(keyPair.address);
106
+ assertIsSolanaSigner(signer);
107
+ });
108
+ it('should throw error on API failure during create', async () => {
109
+ mockFetch.mockResolvedValueOnce({
110
+ ok: false,
111
+ status: 401,
112
+ text: async () => 'Unauthorized',
113
+ });
114
+ await expect(FireblocksSigner.create({
115
+ apiKey: TEST_API_KEY,
116
+ privateKeyPem: TEST_RSA_PRIVATE_KEY,
117
+ vaultAccountId: TEST_VAULT_ACCOUNT_ID,
118
+ })).rejects.toThrow('Fireblocks API error: 401');
119
+ });
120
+ it('should throw error for missing apiKey', async () => {
121
+ await expect(FireblocksSigner.create({
122
+ apiKey: '',
123
+ privateKeyPem: TEST_RSA_PRIVATE_KEY,
124
+ vaultAccountId: TEST_VAULT_ACCOUNT_ID,
125
+ })).rejects.toThrow('Missing required apiKey field');
126
+ });
127
+ it('should throw HTTP_ERROR when fetch fails during create', async () => {
128
+ mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
129
+ await expect(FireblocksSigner.create({
130
+ apiKey: TEST_API_KEY,
131
+ privateKeyPem: TEST_RSA_PRIVATE_KEY,
132
+ vaultAccountId: TEST_VAULT_ACCOUNT_ID,
133
+ })).rejects.toMatchObject({
134
+ code: 'SIGNER_HTTP_ERROR',
135
+ message: expect.stringContaining('Fireblocks network request failed'),
136
+ });
137
+ });
138
+ });
89
139
  describe('init', () => {
90
140
  it('should initialize signer by fetching public key', async () => {
91
141
  const keyPair = await generateKeyPairSigner();
@@ -154,6 +204,29 @@ describe('FireblocksSigner', () => {
154
204
  });
155
205
  });
156
206
  describe('signMessages', () => {
207
+ it('should throw HTTP_ERROR when fetch fails during signing request', async () => {
208
+ const keyPair = await generateKeyPairSigner();
209
+ // Mock init fetch (success)
210
+ mockFetch.mockResolvedValueOnce({
211
+ ok: true,
212
+ json: async () => ({ addresses: [{ address: keyPair.address }] }),
213
+ });
214
+ const signer = await FireblocksSigner.create({
215
+ apiKey: TEST_API_KEY,
216
+ privateKeyPem: TEST_RSA_PRIVATE_KEY,
217
+ vaultAccountId: TEST_VAULT_ACCOUNT_ID,
218
+ });
219
+ // Mock signing request to fail with network error
220
+ mockFetch.mockRejectedValueOnce(new Error('Network timeout'));
221
+ const message = {
222
+ content: new Uint8Array([1, 2, 3, 4]),
223
+ signatures: {},
224
+ };
225
+ await expect(signer.signMessages([message])).rejects.toMatchObject({
226
+ code: 'SIGNER_HTTP_ERROR',
227
+ message: expect.stringContaining('Fireblocks network request failed'),
228
+ });
229
+ });
157
230
  it('should throw error if not initialized', async () => {
158
231
  const signer = new FireblocksSigner({
159
232
  apiKey: TEST_API_KEY,
@@ -1 +1 @@
1
- {"version":3,"file":"fireblocks-signer.test.js","sourceRoot":"","sources":["../../src/__tests__/fireblocks-signer.test.ts"],"names":[],"mappings":"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"}
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
- import { FireblocksSigner } from '../fireblocks-signer';
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,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAwBxD,wBAAsB,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,CAKtG;AAED,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAC3C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,oBAAoB,usDA2BP,CAAC"}
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"}
@@ -1,22 +1,16 @@
1
- import { FireblocksSigner } from '../fireblocks-signer';
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
- async function createFireblocksSigner() {
5
- const signer = new FireblocksSigner({
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":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,iBAAiB,GAAG,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,6BAA6B,CAAC,CAAC;AAE9G,KAAK,UAAU,sBAAsB;IACjC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC;QAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB;QACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACxC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA2B;QACtD,8EAA8E;QAC9E,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA4B;KAC3D,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IACpB,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAuC;IAC/C,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,sBAAsB;CACvC,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"}
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 = new FireblocksSigner({
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;AAQpB;;;;;;;;;;;;;;;GAeG;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;gBAEhB,MAAM,EAAE,sBAAsB;IAgC1C;;;OAGG;IACH,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAO/B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;YACW,KAAK;IAMnB;;OAEG;YACW,cAAc;IAgD5B;;OAEG;YACW,OAAO;IAiCrB;;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"}
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,EAIH,YAAY,EAEf,MAAM,uBAAuB,CAAC;AAE/B,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;AAUD;;;;;;;;;;;;;;;;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;IAsB1B;;;OAGG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,gBAAgB;IA4D9B;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;IAwBjG;;OAEG;IACG,gBAAgB,CAClB,YAAY,EAAE,SAAS,CAAC,WAAW,GAAG,0BAA0B,GAAG,uBAAuB,CAAC,EAAE,GAC9F,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC;IA0B1C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAO5B"}
@@ -1,9 +1,14 @@
1
1
  import { assertIsAddress } from '@solana/addresses';
2
- import { getBase58Encoder } from '@solana/codecs-strings';
3
- import { createSignatureDictionary, SignerErrorCode, throwSignerError } from '@solana/keychain-core';
2
+ import { getBase16Decoder, getBase16Encoder, getBase58Encoder } from '@solana/codecs-strings';
3
+ import { assertSignatureValid, createSignatureDictionary, SignerErrorCode, throwSignerError, } from '@solana/keychain-core';
4
4
  import { getBase64EncodedWireTransaction, } from '@solana/transactions';
5
5
  import { createJwt } from './jwt.js';
6
- import { TERMINAL_STATUSES } from './types.js';
6
+ import { isTerminalStatus } from './types.js';
7
+ export async function createFireblocksSigner(config) {
8
+ return await FireblocksSigner.create(config);
9
+ }
10
+ let base16Encoder;
11
+ let base16Decoder;
7
12
  const DEFAULT_API_BASE_URL = 'https://api.fireblocks.io';
8
13
  const DEFAULT_ASSET_ID = 'SOL';
9
14
  const DEFAULT_POLL_INTERVAL_MS = 1000;
@@ -16,15 +21,28 @@ const DEFAULT_MAX_POLL_ATTEMPTS = 60;
16
21
  *
17
22
  * @example
18
23
  * ```typescript
19
- * const signer = new FireblocksSigner({
24
+ * const signer = await FireblocksSigner.create({
20
25
  * apiKey: 'your-api-key',
21
26
  * privateKeyPem: '-----BEGIN PRIVATE KEY-----\n...',
22
27
  * vaultAccountId: '0',
23
28
  * });
24
- * await signer.init();
25
29
  * ```
30
+ *
31
+ * @deprecated Prefer `createFireblocksSigner()`. Class export will be removed in a future version.
26
32
  */
27
33
  export class FireblocksSigner {
34
+ /**
35
+ * Fetches the public key from Fireblocks API during initialization.
36
+ * @deprecated Use `createFireblocksSigner()` instead.
37
+ */
38
+ static async create(config) {
39
+ const signer = new FireblocksSigner(config);
40
+ await signer.init();
41
+ return signer;
42
+ }
43
+ /**
44
+ * @deprecated Use `createFireblocksSigner()` instead. Direct construction will be removed in a future version.
45
+ */
28
46
  constructor(config) {
29
47
  this._address = null;
30
48
  this.initialized = false;
@@ -68,6 +86,7 @@ export class FireblocksSigner {
68
86
  }
69
87
  /**
70
88
  * Initialize the signer by fetching the public key from Fireblocks
89
+ * @deprecated Use `createFireblocksSigner()` instead, which handles initialization automatically.
71
90
  */
72
91
  async init() {
73
92
  if (this.initialized) {
@@ -105,13 +124,23 @@ export class FireblocksSigner {
105
124
  const uri = `/v1/vault/accounts/${this.vaultAccountId}/${this.assetId}/addresses_paginated`;
106
125
  const token = await createJwt(this.apiKey, this.privateKeyPem, uri, '');
107
126
  const url = `${this.apiBaseUrl}${uri}`;
108
- const response = await fetch(url, {
109
- headers: {
110
- Authorization: `Bearer ${token}`,
111
- 'X-API-Key': this.apiKey,
112
- },
113
- method: 'GET',
114
- });
127
+ let response;
128
+ try {
129
+ response = await fetch(url, {
130
+ headers: {
131
+ Authorization: `Bearer ${token}`,
132
+ 'X-API-Key': this.apiKey,
133
+ },
134
+ method: 'GET',
135
+ });
136
+ }
137
+ catch (error) {
138
+ throwSignerError(SignerErrorCode.HTTP_ERROR, {
139
+ cause: error,
140
+ message: 'Fireblocks network request failed',
141
+ url,
142
+ });
143
+ }
115
144
  if (!response.ok) {
116
145
  const errorText = await response.text().catch(() => 'Failed to read error response');
117
146
  throwSignerError(SignerErrorCode.REMOTE_API_ERROR, {
@@ -124,8 +153,9 @@ export class FireblocksSigner {
124
153
  try {
125
154
  addressesResponse = (await response.json());
126
155
  }
127
- catch {
156
+ catch (error) {
128
157
  throwSignerError(SignerErrorCode.PARSING_ERROR, {
158
+ cause: error,
129
159
  message: 'Failed to parse Fireblocks response',
130
160
  });
131
161
  }
@@ -139,8 +169,9 @@ export class FireblocksSigner {
139
169
  assertIsAddress(firstAddress);
140
170
  return firstAddress;
141
171
  }
142
- catch {
172
+ catch (error) {
143
173
  throwSignerError(SignerErrorCode.INVALID_PUBLIC_KEY, {
174
+ cause: error,
144
175
  message: 'Invalid address from Fireblocks',
145
176
  });
146
177
  }
@@ -152,15 +183,25 @@ export class FireblocksSigner {
152
183
  const bodyStr = body ? JSON.stringify(body) : '';
153
184
  const token = await createJwt(this.apiKey, this.privateKeyPem, uri, bodyStr);
154
185
  const url = `${this.apiBaseUrl}${uri}`;
155
- const response = await fetch(url, {
156
- body: body ? bodyStr : undefined,
157
- headers: {
158
- Authorization: `Bearer ${token}`,
159
- 'Content-Type': 'application/json',
160
- 'X-API-Key': this.apiKey,
161
- },
162
- method,
163
- });
186
+ let response;
187
+ try {
188
+ response = await fetch(url, {
189
+ body: body ? bodyStr : undefined,
190
+ headers: {
191
+ Authorization: `Bearer ${token}`,
192
+ 'Content-Type': 'application/json',
193
+ 'X-API-Key': this.apiKey,
194
+ },
195
+ method,
196
+ });
197
+ }
198
+ catch (error) {
199
+ throwSignerError(SignerErrorCode.HTTP_ERROR, {
200
+ cause: error,
201
+ message: 'Fireblocks network request failed',
202
+ url,
203
+ });
204
+ }
164
205
  if (!response.ok) {
165
206
  const errorText = await response.text().catch(() => 'Failed to read error response');
166
207
  throwSignerError(SignerErrorCode.REMOTE_API_ERROR, {
@@ -172,8 +213,9 @@ export class FireblocksSigner {
172
213
  try {
173
214
  return (await response.json());
174
215
  }
175
- catch {
216
+ catch (error) {
176
217
  throwSignerError(SignerErrorCode.PARSING_ERROR, {
218
+ cause: error,
177
219
  message: 'Failed to parse Fireblocks response',
178
220
  });
179
221
  }
@@ -182,7 +224,8 @@ export class FireblocksSigner {
182
224
  * Sign raw bytes using Fireblocks RAW operation
183
225
  */
184
226
  async signRawBytes(messageBytes) {
185
- const hexContent = bytesToHex(messageBytes);
227
+ base16Decoder || (base16Decoder = getBase16Decoder());
228
+ const hexContent = base16Decoder.decode(messageBytes);
186
229
  const request = {
187
230
  assetId: this.assetId,
188
231
  extraParameters: {
@@ -232,7 +275,14 @@ export class FireblocksSigner {
232
275
  // Try signedMessages first (RAW signing - hex encoded)
233
276
  const fullSig = txResponse.signedMessages?.[0]?.signature?.fullSig;
234
277
  if (fullSig) {
235
- const sigBytes = hexToBytes(fullSig);
278
+ const cleanHex = fullSig.startsWith('0x') || fullSig.startsWith('0X') ? fullSig.slice(2) : fullSig;
279
+ if (cleanHex.length % 2 !== 0) {
280
+ throwSignerError(SignerErrorCode.SIGNING_FAILED, {
281
+ message: `Invalid hex signature: odd length (${cleanHex.length} chars)`,
282
+ });
283
+ }
284
+ base16Encoder || (base16Encoder = getBase16Encoder());
285
+ const sigBytes = new Uint8Array(base16Encoder.encode(cleanHex.toLowerCase()));
236
286
  if (sigBytes.length !== 64) {
237
287
  throwSignerError(SignerErrorCode.SIGNING_FAILED, {
238
288
  message: `Invalid signature length: expected 64 bytes, got ${sigBytes.length}`,
@@ -255,7 +305,7 @@ export class FireblocksSigner {
255
305
  });
256
306
  }
257
307
  // Check for terminal failure statuses
258
- if (TERMINAL_STATUSES.has(status)) {
308
+ if (isTerminalStatus(status)) {
259
309
  throwSignerError(SignerErrorCode.SIGNING_FAILED, {
260
310
  message: `Transaction failed with status: ${txResponse.status}`,
261
311
  });
@@ -278,6 +328,11 @@ export class FireblocksSigner {
278
328
  ? message.content
279
329
  : new Uint8Array(Array.from(message.content));
280
330
  const signatureBytes = await this.signRawBytes(messageBytes);
331
+ await assertSignatureValid({
332
+ data: messageBytes,
333
+ signature: signatureBytes,
334
+ signerAddress: this.address,
335
+ });
281
336
  return createSignatureDictionary({
282
337
  signature: signatureBytes,
283
338
  signerAddress: this.address,
@@ -294,6 +349,15 @@ export class FireblocksSigner {
294
349
  const signatureBytes = this.useProgramCall
295
350
  ? await this.signWithProgramCall(transaction)
296
351
  : await this.signRawBytes(new Uint8Array(transaction.messageBytes));
352
+ // Skip verification for PROGRAM_CALL: it broadcasts to Solana and returns
353
+ // a txHash (on-chain confirmation), not a signature over the message bytes.
354
+ if (!this.useProgramCall) {
355
+ await assertSignatureValid({
356
+ data: transaction.messageBytes,
357
+ signature: signatureBytes,
358
+ signerAddress: this.address,
359
+ });
360
+ }
297
361
  return createSignatureDictionary({
298
362
  signature: signatureBytes,
299
363
  signerAddress: this.address,
@@ -332,23 +396,4 @@ export class FireblocksSigner {
332
396
  }
333
397
  }
334
398
  }
335
- /**
336
- * Convert Uint8Array to hex string
337
- */
338
- function bytesToHex(bytes) {
339
- return Array.from(bytes)
340
- .map(b => b.toString(16).padStart(2, '0'))
341
- .join('');
342
- }
343
- /**
344
- * Convert hex string to Uint8Array
345
- */
346
- function hexToBytes(hex) {
347
- const cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
348
- const bytes = new Uint8Array(cleanHex.length / 2);
349
- for (let i = 0; i < bytes.length; i++) {
350
- bytes[i] = parseInt(cleanHex.substring(i * 2, i * 2 + 2), 16);
351
- }
352
- return bytes;
353
- }
354
399
  //# sourceMappingURL=fireblocks-signer.js.map