evm-kms-signer 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import { fromHex, toHex, hashMessage, concat, keccak256, serializeTransaction, hashTypedData } from 'viem';
2
- import { KmsClient } from './client';
1
+ import { concat, fromHex, hashMessage, hashTypedData, keccak256, serializeTransaction, toHex, } from 'viem';
3
2
  import { extractPublicKeyFromDer, publicKeyToAddress } from '../utils/address';
4
3
  import { parseDerSignature } from '../utils/der';
5
- import { normalizeS, calculateRecoveryId, uint8ArrayToBigInt } from '../utils/signature';
4
+ import { calculateRecoveryId, normalizeS, uint8ArrayToBigInt, } from '../utils/signature';
5
+ import { KmsClient } from './client';
6
6
  /**
7
7
  * KmsSigner provides Ethereum signing capabilities using AWS KMS.
8
8
  *
@@ -116,7 +116,7 @@ export class KmsSigner {
116
116
  // Parse DER signature
117
117
  const { r: rBytes, s: sBytes } = parseDerSignature(derSignature);
118
118
  // Convert to bigint
119
- let r = uint8ArrayToBigInt(rBytes);
119
+ const r = uint8ArrayToBigInt(rBytes);
120
120
  let s = uint8ArrayToBigInt(sBytes);
121
121
  // EIP-2 normalization
122
122
  s = normalizeS(s);
@@ -158,7 +158,7 @@ export class KmsSigner {
158
158
  return concat([
159
159
  toHex(r, { size: 32 }),
160
160
  toHex(s, { size: 32 }),
161
- toHex(v, { size: 1 })
161
+ toHex(v, { size: 1 }),
162
162
  ]);
163
163
  }
164
164
  /**
@@ -189,9 +189,14 @@ export class KmsSigner {
189
189
  * })
190
190
  * ```
191
191
  */
192
- async signTransaction(transaction, { serializer = serializeTransaction } = {}) {
192
+ async signTransaction(transaction, { serializer = serializeTransaction, } = {}) {
193
193
  // Serialize transaction for signing (without r, s, v)
194
- const serializedTx = serializeTransaction({ ...transaction, r: undefined, s: undefined, v: undefined });
194
+ const serializedTx = serializeTransaction({
195
+ ...transaction,
196
+ r: undefined,
197
+ s: undefined,
198
+ v: undefined,
199
+ });
195
200
  const hash = keccak256(serializedTx);
196
201
  // Sign with KMS
197
202
  const { r, s } = await this.signHash(hash);
@@ -208,7 +213,7 @@ export class KmsSigner {
208
213
  ...transaction,
209
214
  r: toHex(r, { size: 32 }),
210
215
  s: toHex(s, { size: 32 }),
211
- v
216
+ v,
212
217
  });
213
218
  }
214
219
  /**
@@ -264,7 +269,7 @@ export class KmsSigner {
264
269
  return concat([
265
270
  toHex(r, { size: 32 }),
266
271
  toHex(s, { size: 32 }),
267
- toHex(v, { size: 1 })
272
+ toHex(v, { size: 1 }),
268
273
  ]);
269
274
  }
270
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/kms/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/kms/signer.ts"],"names":[],"mappings":"AAQA,OAAO,EACN,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,KAAK,GACL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACN,mBAAmB,EACnB,UAAU,EACV,kBAAkB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,SAAS;IAMrB;;;;;;;;OAQG;IACH,YAAY,MAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,YAAY;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,UAAU;QACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACK,KAAK,CAAC,QAAQ,CAAC,IAAS;QAC/B,4BAA4B;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,gBAAgB;QAChB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1D,sBAAsB;QACtB,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEjE,oBAAoB;QACpB,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEnC,sBAAsB;QACtB,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAElB,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAuB;QACjD,+CAA+C;QAC/C,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzC,gBAAgB;QAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAElD,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC3C,WAAW,EACX,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,OAAO,CACP,CAAC;QAEF,uCAAuC;QACvC,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAE1B,sBAAsB;QACtB,OAAO,MAAM,CAAC;YACb,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACrB,CAAQ,CAAC;IACX,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,eAAe,CACpB,WAAoC,EACpC,EACC,UAAU,GAAG,oBAAoB,MACW,EAAE;QAE/C,sDAAsD;QACtD,MAAM,YAAY,GAAG,oBAAoB,CAAC;YACzC,GAAG,WAAW;YACd,CAAC,EAAE,SAAS;YACZ,CAAC,EAAE,SAAS;YACZ,CAAC,EAAE,SAAS;SACZ,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QAErC,gBAAgB;QAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE3C,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC3C,IAAI,EACJ,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,OAAO,CACP,CAAC;QAEF,oBAAoB;QACpB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,MAAM,CAAC,GAAG,OAAO;YAChB,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,UAAU;YAClD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS;QAErC,qCAAqC;QACrC,OAAO,UAAU,CAAC;YACjB,GAAG,WAAW;YACd,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACzB,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACzB,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,KAAK,CAAC,aAAa,CAGjB,SAAwD;QACzD,gEAAgE;QAChE,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAEtC,gBAAgB;QAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE3C,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAC3C,IAAI,EACJ,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EACtB,OAAO,CACP,CAAC;QAEF,sDAAsD;QACtD,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAE1B,sBAAsB;QACtB,OAAO,MAAM,CAAC;YACb,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACrB,CAAQ,CAAC;IACX,CAAC;CACD"}
@@ -19,6 +19,36 @@ export interface KmsConfig {
19
19
  secretAccessKey: string;
20
20
  };
21
21
  }
22
+ /**
23
+ * GCP KMS configuration for signing operations
24
+ */
25
+ export interface GcpKmsConfig {
26
+ /**
27
+ * GCP project ID where the KMS key is located
28
+ */
29
+ projectId: string;
30
+ /**
31
+ * GCP location/region (e.g., "global", "us-east1")
32
+ */
33
+ locationId: string;
34
+ /**
35
+ * Key ring ID containing the crypto key
36
+ */
37
+ keyRingId: string;
38
+ /**
39
+ * Crypto key ID to use for signing
40
+ */
41
+ keyId: string;
42
+ /**
43
+ * Crypto key version number (e.g., "1")
44
+ */
45
+ keyVersion: string;
46
+ /**
47
+ * Optional path to service account key file.
48
+ * If not provided, uses GOOGLE_APPLICATION_CREDENTIALS environment variable
49
+ */
50
+ keyFilename?: string;
51
+ }
22
52
  /**
23
53
  * DER-parsed signature as raw byte arrays
24
54
  * Used internally by DER parsing utilities
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,CAAC,EAAE,UAAU,CAAA;IAEb;;OAEG;IACH,CAAC,EAAE,UAAU,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IAET;;OAEG;IACH,CAAC,EAAE,MAAM,CAAA;IAET;;;;OAIG;IACH,CAAC,EAAE,MAAM,CAAA;CACV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACxB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,CAAC,EAAE,UAAU,CAAC;IAEd;;OAEG;IACH,CAAC,EAAE,UAAU,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IAEV;;OAEG;IACH,CAAC,EAAE,MAAM,CAAC;IAEV;;;;OAIG;IACH,CAAC,EAAE,MAAM,CAAC;CACV"}
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/utils/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAGrD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAuBnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAsBjE"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/utils/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,MAAM,CAAC;AAGtD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAuBnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAsBjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/utils/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,MAAM,MAAM,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAe;IACrD,0BAA0B;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,eAAe,CACvB,kEAAkE,GAAG,CAAC,MAAM,GAAG,CAChF,CAAA;IACH,CAAC;IAED,0DAA0D;IAC1D,yDAAyD;IACzD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;IAEhC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,kEAAkE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC/G,CAAA;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAqB;IACtD,6BAA6B;IAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,eAAe,CACvB,uDAAuD,SAAS,CAAC,MAAM,EAAE,CAC1E,CAAA;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,sBAAsB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEjD,2BAA2B;IAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAErD,mCAAmC;IACnC,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAa,CAAA;IAEjD,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/utils/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAe;IACtD,0BAA0B;IAC1B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,eAAe,CACxB,kEAAkE,GAAG,CAAC,MAAM,GAAG,CAC/E,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,yDAAyD;IACzD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CACxB,kEAAkE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAC9G,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAqB;IACvD,6BAA6B;IAC7B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CACxB,uDAAuD,SAAS,CAAC,MAAM,EAAE,CACzE,CAAC;IACH,CAAC;IAED,oDAAoD;IACpD,MAAM,sBAAsB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElD,2BAA2B;IAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAEtD,mCAAmC;IACnC,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAa,CAAC;IAElD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"der.d.ts","sourceRoot":"","sources":["../../src/utils/der.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAG5C;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CA0G/D"}
1
+ {"version":3,"file":"der.d.ts","sourceRoot":"","sources":["../../src/utils/der.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,CA0H/D"}
package/dist/utils/der.js CHANGED
@@ -39,7 +39,7 @@ export function parseDerSignature(der) {
39
39
  if (offset >= der.length) {
40
40
  throw new DerParsingError('Invalid DER signature: missing r length');
41
41
  }
42
- let rLength = der[offset];
42
+ const rLength = der[offset];
43
43
  offset++;
44
44
  // Validate r length
45
45
  if (rLength === 0) {
@@ -74,7 +74,7 @@ export function parseDerSignature(der) {
74
74
  if (offset >= der.length) {
75
75
  throw new DerParsingError('Invalid DER signature: missing s length');
76
76
  }
77
- let sLength = der[offset];
77
+ const sLength = der[offset];
78
78
  offset++;
79
79
  // Validate s length
80
80
  if (sLength === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"der.js","sourceRoot":"","sources":["../../src/utils/der.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"der.js","sourceRoot":"","sources":["../../src/utils/der.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Hex, Address } from 'viem';
1
+ import type { Address, Hex } from 'viem';
2
2
  /**
3
3
  * secp256k1 curve order (n)
4
4
  * Maximum value for ECDSA signature components r and s
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAIxC;;;GAGG;AACH,eAAO,MAAM,WAAW,kFAAsE,CAAA;AAE9F;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAmB,CAAA;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,GAAG,EAChB,CAAC,EAAE,GAAG,EACN,CAAC,EAAE,GAAG,EACN,eAAe,EAAE,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAY1D"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAQzC;;;GAGG;AACH,eAAO,MAAM,WAAW,kFAC4C,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAY5C;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,mBAAmB,CACxC,WAAW,EAAE,GAAG,EAChB,CAAC,EAAE,GAAG,EACN,CAAC,EAAE,GAAG,EACN,eAAe,EAAE,OAAO,GACtB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAY1D"}
@@ -1,5 +1,5 @@
1
- import { recoverPublicKey, fromHex } from 'viem';
2
- import { SignatureNormalizationError, RecoveryIdCalculationError } from '../errors';
1
+ import { fromHex, recoverPublicKey } from 'viem';
2
+ import { RecoveryIdCalculationError, SignatureNormalizationError, } from '../errors';
3
3
  import { publicKeyToAddress } from './address';
4
4
  /**
5
5
  * secp256k1 curve order (n)
@@ -73,8 +73,8 @@ export async function calculateRecoveryId(messageHash, r, s, expectedAddress) {
73
73
  signature: {
74
74
  r,
75
75
  s,
76
- v: BigInt(27 + recoveryId)
77
- }
76
+ v: BigInt(27 + recoveryId),
77
+ },
78
78
  });
79
79
  // Calculate address from recovered public key
80
80
  // recoverPublicKey returns Hex, convert to Uint8Array for publicKeyToAddress
@@ -85,10 +85,7 @@ export async function calculateRecoveryId(messageHash, r, s, expectedAddress) {
85
85
  return recoveryId;
86
86
  }
87
87
  }
88
- catch {
89
- // Recovery failed with this ID, try next one
90
- continue;
91
- }
88
+ catch { }
92
89
  }
93
90
  throw new RecoveryIdCalculationError(`Cannot find valid recovery ID for signature (r=${r}, s=${s}) and address ${expectedAddress}`);
94
91
  }
@@ -145,9 +142,9 @@ export function uint8ArrayToBigInt(arr) {
145
142
  }
146
143
  // Convert Uint8Array to hex string
147
144
  const hex = Array.from(arr)
148
- .map(byte => byte.toString(16).padStart(2, '0'))
145
+ .map((byte) => byte.toString(16).padStart(2, '0'))
149
146
  .join('');
150
147
  // Parse as bigint
151
- return BigInt('0x' + hex);
148
+ return BigInt(`0x${hex}`);
152
149
  }
153
150
  //# sourceMappingURL=signature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/utils/signature.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "evm-kms-signer",
3
- "version": "1.0.0",
4
- "description": "AWS KMS-based Ethereum signer for viem with enterprise-grade security. Sign transactions and messages using keys stored in AWS KMS without exposing private keys.",
3
+ "version": "1.1.0",
4
+ "type": "module",
5
+ "description": "AWS/GCP KMS-based Ethereum signer for viem with enterprise-grade security. Sign transactions and messages using keys stored in AWS or GCP KMS without exposing private keys.",
5
6
  "main": "./dist/index.js",
6
7
  "types": "./dist/index.d.ts",
7
8
  "exports": {
@@ -20,6 +21,8 @@
20
21
  "ethereum",
21
22
  "aws",
22
23
  "kms",
24
+ "gcp",
25
+ "google-cloud",
23
26
  "viem",
24
27
  "signer",
25
28
  "evm",
@@ -36,35 +39,42 @@
36
39
  "url": "https://github.com/gtg7784/evm-kms-signer/issues"
37
40
  },
38
41
  "homepage": "https://github.com/gtg7784/evm-kms-signer#readme",
39
- "scripts": {
40
- "type-check": "tsc --noEmit",
41
- "start": "tsx src/index.ts",
42
- "build": "tsc",
43
- "test": "vitest",
44
- "test:ui": "vitest --ui",
45
- "test:run": "vitest run",
46
- "example:sign": "tsx examples/sign-message.ts",
47
- "example:tx": "tsx examples/send-transaction.ts"
48
- },
49
42
  "author": "Alan Go <tae.gun7784@gmail.com>",
50
43
  "license": "MIT",
51
44
  "engines": {
52
45
  "node": ">=18.0.0"
53
46
  },
54
- "packageManager": "pnpm@9.0.1+sha1.0e0a9c2d140ddf9aab730067eb7bcfb9e18bdee7",
55
47
  "peerDependencies": {
56
48
  "viem": "^2.0.0"
57
49
  },
58
50
  "dependencies": {
59
51
  "@aws-sdk/client-kms": "^3.0.0",
52
+ "@google-cloud/kms": "^5.2.1",
60
53
  "abitype": "^1.1.1"
61
54
  },
62
55
  "devDependencies": {
56
+ "@biomejs/biome": "2.3.4",
63
57
  "@types/node": "^24.10.0",
58
+ "@vitest/coverage-v8": "4.0.8",
64
59
  "dotenv": "^17.2.3",
65
60
  "tsx": "^4.20.6",
66
61
  "typescript": "^5.9.3",
67
- "vitest": "^4.0.8",
68
- "viem": "^2.0.0"
62
+ "viem": "^2.0.0",
63
+ "vitest": "^4.0.8"
64
+ },
65
+ "scripts": {
66
+ "type-check": "tsc --noEmit",
67
+ "lint": "biome check .",
68
+ "lint:fix": "biome check --write .",
69
+ "start": "tsx src/index.ts",
70
+ "build": "tsc",
71
+ "test": "vitest",
72
+ "test:ui": "vitest --ui",
73
+ "test:run": "vitest run",
74
+ "test:coverage": "vitest run --coverage",
75
+ "example:sign": "tsx examples/sign-message.ts",
76
+ "example:tx": "tsx examples/send-transaction.ts",
77
+ "example:gcp-sign": "tsx examples/gcp-sign-message.ts",
78
+ "example:gcp-tx": "tsx examples/gcp-send-transaction.ts"
69
79
  }
70
- }
80
+ }