@sidhujag/sysweb3-keyring 2.1.7 → 2.1.9

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.
Files changed (105) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cjs/hardware-transaction-authority.js +15 -11
  3. package/cjs/hardware-transaction-authority.js.map +1 -1
  4. package/cjs/hardware-wallet-manager.js +74 -119
  5. package/cjs/hardware-wallet-manager.js.map +1 -1
  6. package/cjs/hardware-wallet-types.js +16 -0
  7. package/cjs/hardware-wallet-types.js.map +1 -0
  8. package/cjs/host-keyring.js +32 -0
  9. package/cjs/host-keyring.js.map +1 -0
  10. package/cjs/index.js +1 -0
  11. package/cjs/index.js.map +1 -1
  12. package/cjs/keyring-core.js +96 -61
  13. package/cjs/keyring-core.js.map +1 -1
  14. package/cjs/keyring-manager.js +15 -16
  15. package/cjs/keyring-manager.js.map +1 -1
  16. package/cjs/ledger/host-types.js.map +1 -1
  17. package/cjs/ledger/index.js +24 -4
  18. package/cjs/ledger/index.js.map +1 -1
  19. package/cjs/ledger-hardware.js +15 -0
  20. package/cjs/ledger-hardware.js.map +1 -0
  21. package/cjs/software.js +6 -25
  22. package/cjs/software.js.map +1 -1
  23. package/cjs/transactions/ethereum.js +371 -494
  24. package/cjs/transactions/ethereum.js.map +1 -1
  25. package/cjs/transactions/evm-submission-failure.js +73 -0
  26. package/cjs/transactions/evm-submission-failure.js.map +1 -0
  27. package/cjs/transactions/evm-submission.js +35 -61
  28. package/cjs/transactions/evm-submission.js.map +1 -1
  29. package/cjs/transactions/ledger-signing.js +52 -0
  30. package/cjs/transactions/ledger-signing.js.map +1 -0
  31. package/cjs/transactions/prepared-evm.js +24 -1
  32. package/cjs/transactions/prepared-evm.js.map +1 -1
  33. package/cjs/transactions/trezor-signing.js +90 -0
  34. package/cjs/transactions/trezor-signing.js.map +1 -0
  35. package/cjs/trezor/connect.js +238 -243
  36. package/cjs/trezor/connect.js.map +1 -1
  37. package/cjs/trezor/host-types.js +19 -0
  38. package/cjs/trezor/host-types.js.map +1 -0
  39. package/cjs/trezor/index.js +75 -23
  40. package/cjs/trezor/index.js.map +1 -1
  41. package/cjs/trezor/webextension-host.js +118 -0
  42. package/cjs/trezor/webextension-host.js.map +1 -0
  43. package/cjs/trezor-hardware.js +16 -0
  44. package/cjs/trezor-hardware.js.map +1 -0
  45. package/cjs/types.js.map +1 -1
  46. package/esm/hardware-transaction-authority.js +14 -11
  47. package/esm/hardware-transaction-authority.js.map +1 -1
  48. package/esm/hardware-wallet-manager.js +20 -32
  49. package/esm/hardware-wallet-manager.js.map +1 -1
  50. package/esm/hardware-wallet-types.js +13 -0
  51. package/esm/hardware-wallet-types.js.map +1 -0
  52. package/esm/keyring-core.js +98 -63
  53. package/esm/keyring-core.js.map +1 -1
  54. package/esm/ledger/dmk-host.js +2 -0
  55. package/esm/ledger/dmk-host.js.map +1 -1
  56. package/esm/ledger/dmk-session.js +73 -8
  57. package/esm/ledger/dmk-session.js.map +1 -1
  58. package/esm/ledger/host-types.js.map +1 -1
  59. package/esm/ledger/index.js +22 -2
  60. package/esm/ledger/index.js.map +1 -1
  61. package/esm/transactions/ethereum.js +372 -495
  62. package/esm/transactions/ethereum.js.map +1 -1
  63. package/esm/transactions/evm-submission-failure.js +68 -0
  64. package/esm/transactions/evm-submission-failure.js.map +1 -0
  65. package/esm/transactions/evm-submission.js +32 -59
  66. package/esm/transactions/evm-submission.js.map +1 -1
  67. package/esm/transactions/ledger-signing.js +49 -0
  68. package/esm/transactions/ledger-signing.js.map +1 -0
  69. package/esm/transactions/prepared-evm.js +23 -1
  70. package/esm/transactions/prepared-evm.js.map +1 -1
  71. package/esm/transactions/trezor-signing.js +87 -0
  72. package/esm/transactions/trezor-signing.js.map +1 -0
  73. package/esm/trezor/connect.js +236 -209
  74. package/esm/trezor/connect.js.map +1 -1
  75. package/esm/trezor/host-types.js +16 -0
  76. package/esm/trezor/host-types.js.map +1 -0
  77. package/esm/trezor/index.js +74 -22
  78. package/esm/trezor/index.js.map +1 -1
  79. package/esm/types.js.map +1 -1
  80. package/package.json +61 -1
  81. package/types/hardware-transaction-authority.d.ts +1 -0
  82. package/types/hardware-wallet-manager.d.ts +6 -22
  83. package/types/hardware-wallet-types.d.ts +21 -0
  84. package/types/host-keyring.d.ts +16 -0
  85. package/types/index.d.ts +1 -0
  86. package/types/keyring-core.d.ts +12 -4
  87. package/types/keyring-manager.d.ts +5 -3
  88. package/types/ledger/dmk-host.d.ts +2 -0
  89. package/types/ledger/dmk-session.d.ts +9 -0
  90. package/types/ledger/host-types.d.ts +2 -0
  91. package/types/ledger/index.d.ts +3 -1
  92. package/types/ledger-hardware.d.ts +5 -0
  93. package/types/software.d.ts +2 -16
  94. package/types/transactions/ethereum.d.ts +11 -1
  95. package/types/transactions/evm-submission-failure.d.ts +11 -0
  96. package/types/transactions/evm-submission.d.ts +6 -8
  97. package/types/transactions/ledger-signing.d.ts +13 -0
  98. package/types/transactions/prepared-evm.d.ts +12 -0
  99. package/types/transactions/trezor-signing.d.ts +13 -0
  100. package/types/trezor/connect.d.ts +11 -9
  101. package/types/trezor/host-types.d.ts +25 -0
  102. package/types/trezor/index.d.ts +7 -7
  103. package/types/trezor/webextension-host.d.ts +7 -0
  104. package/types/trezor-hardware.d.ts +6 -0
  105. package/types/types.d.ts +16 -4
@@ -1,4 +1,7 @@
1
1
  import { Transaction } from 'ethers/transaction';
2
+ import { readEvmOwnData } from './evm-envelope';
3
+ import { annotateEvmSubmissionFailure } from './evm-submission-failure';
4
+ export { copyEvmSubmissionFailure, evmSubmissionFailure, } from './evm-submission-failure';
2
5
  const capturedBoundaries = new WeakSet();
3
6
  function assertSynchronous(check) {
4
7
  const result = check();
@@ -13,6 +16,19 @@ function assertSynchronous(check) {
13
16
  /** Capture once, before RPC or device work. Never reread host capabilities later. */
14
17
  export function captureEvmSubmission(input, assertCurrent, capture) {
15
18
  const { origin, walletNonce } = input;
19
+ const inputReview = input.review;
20
+ const review = inputReview === undefined
21
+ ? undefined
22
+ : readEvmOwnData(inputReview, ['id', 'unsignedHash']);
23
+ if (review !== undefined &&
24
+ (input.operation !== 'send' ||
25
+ !walletNonce ||
26
+ !review ||
27
+ typeof review.id !== 'string' ||
28
+ !/^[A-Za-z0-9_-]{1,128}$/.test(review.id) ||
29
+ typeof review.unsignedHash !== 'string' ||
30
+ !/^0x[0-9a-f]{64}$/.test(review.unsignedHash)))
31
+ throw new TypeError('Invalid EVM fee review identity');
16
32
  let approvedWalletNonce;
17
33
  if (walletNonce !== undefined) {
18
34
  if (!walletNonce ||
@@ -30,6 +46,14 @@ export function captureEvmSubmission(input, assertCurrent, capture) {
30
46
  account: Object.freeze({ ...input.account }),
31
47
  network: Object.freeze({ ...input.network }),
32
48
  operation: input.operation,
49
+ ...(review
50
+ ? {
51
+ review: Object.freeze({
52
+ id: review.id,
53
+ unsignedHash: review.unsignedHash,
54
+ }),
55
+ }
56
+ : {}),
33
57
  ...(approvedWalletNonce ? { walletNonce: approvedWalletNonce } : {}),
34
58
  ...(input.originalHash !== undefined
35
59
  ? { originalHash: input.originalHash }
@@ -68,7 +92,13 @@ export function captureEvmSubmission(input, assertCurrent, capture) {
68
92
  const boundary = Object.freeze({
69
93
  context,
70
94
  assertCurrent: guard,
71
- persistSigned,
95
+ persistSigned: (record) => {
96
+ if (context.review &&
97
+ Transaction.from(record.rawTransaction).unsignedHash !==
98
+ context.review.unsignedHash)
99
+ throw new Error('Signed EVM transaction does not match its fee review');
100
+ return persistSigned(record);
101
+ },
72
102
  dispatchSigned,
73
103
  });
74
104
  capturedBoundaries.add(boundary);
@@ -80,21 +110,6 @@ export function assertDurableEvmSubmission(boundary) {
80
110
  throw new TypeError('A captured durable EVM submission is required');
81
111
  boundary.assertCurrent();
82
112
  }
83
- const failures = new WeakMap();
84
- /** Only local stage evidence can label an error as a possibly dispatched send. */
85
- export function evmSubmissionFailure(error) {
86
- return ((error && (typeof error === 'object' || typeof error === 'function')
87
- ? failures.get(error)
88
- : undefined) ?? { transactionNotBroadcast: true });
89
- }
90
- /** Preserve local evidence when an existing public API wraps its Error object. */
91
- export function copyEvmSubmissionFailure(source, target) {
92
- if (source && (typeof source === 'object' || typeof source === 'function')) {
93
- const failure = failures.get(source);
94
- if (failure)
95
- failures.set(target, failure);
96
- }
97
- }
98
113
  /** Compare signed wire bytes with the complete envelope captured before signing. */
99
114
  export function assertSignedEvmTransactionMatches(rawTransaction, expectedUnsignedTransaction, expectedFrom) {
100
115
  if (typeof rawTransaction !== 'string' ||
@@ -206,52 +221,10 @@ async function submit(rawTransaction, broadcast, boundary, beforeBroadcast, expe
206
221
  }
207
222
  }
208
223
  catch (cause) {
209
- const failure = Object.freeze({
224
+ throw annotateEvmSubmissionFailure(cause, {
210
225
  transactionNotBroadcast: !dispatched,
211
226
  ...(hash ? { signedTransactionHash: hash } : {}),
212
227
  });
213
- // Preserve provider Error identity/class and its data/shortMessage/reason/
214
- // cause contract. Only the locally owned submission fields are overwritten.
215
- let error = cause instanceof Error
216
- ? cause
217
- : new Error(typeof cause === 'string' ? cause : 'EVM submission failed');
218
- if (!(cause instanceof Error) && cause && typeof cause === 'object') {
219
- // JSON-RPC adapters can reject with a plain error object. Copy data
220
- // descriptors without invoking accessors or accepting its stage claim.
221
- for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(cause))) {
222
- if (key !== 'transactionNotBroadcast' &&
223
- key !== 'signedTransactionHash' &&
224
- 'value' in descriptor) {
225
- Object.defineProperty(error, key, descriptor);
226
- }
227
- }
228
- }
229
- const stageDescriptors = Object.fromEntries(Object.entries({ ...failure, signedTransactionHash: hash }).map(([key, value]) => [
230
- key,
231
- { value, enumerable: true, configurable: true, writable: true },
232
- ]));
233
- try {
234
- Object.defineProperties(error, stageDescriptors);
235
- }
236
- catch {
237
- // A frozen provider Error may have non-configurable forged stage fields.
238
- // Retain its original details/cause without allowing those fields to win.
239
- const wrapped = new Error(error.message);
240
- wrapped.name = error.name;
241
- const descriptors = Object.getOwnPropertyDescriptors(error);
242
- delete descriptors.transactionNotBroadcast;
243
- delete descriptors.signedTransactionHash;
244
- Object.defineProperties(wrapped, descriptors);
245
- if (!Object.prototype.hasOwnProperty.call(wrapped, 'cause'))
246
- Object.defineProperty(wrapped, 'cause', {
247
- value: error,
248
- configurable: true,
249
- });
250
- Object.defineProperties(wrapped, stageDescriptors);
251
- error = wrapped;
252
- }
253
- failures.set(error, failure);
254
- throw error;
255
228
  }
256
229
  }
257
230
  //# sourceMappingURL=evm-submission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm-submission.js","sourceRoot":"","sources":["../../../src/transactions/evm-submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-submission.js","sourceRoot":"","sources":["../../../src/transactions/evm-submission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAwElC,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAyB,CAAC;AAEhE,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,MAAM,MAAM,GAAY,KAAK,EAAE,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IACE,MAAM;YACN,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,EAC5D,CAAC;YACD,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAClC,KAA2B,EAC3B,aAAyB,EACzB,OAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,MAAM,MAAM,GACV,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1D,IACE,MAAM,KAAK,SAAS;QACpB,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM;YACzB,CAAC,WAAW;YACZ,CAAC,MAAM;YACP,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ;YAC7B,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ;YACvC,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEhD,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACzD,IAAI,mBAA+C,CAAC;IACpD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IACE,CAAC,WAAW;YACZ,OAAO,WAAW,KAAK,QAAQ;YAC/B,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAE1B,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC3D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QACtC,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YAC5B,KAAK,GAAG,CAAC;YACT,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,CAAC;YAE/C,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC3D,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,OAAO,GAAyB,MAAM,CAAC,MAAM,CAAC;QAClD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,GAAG,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;oBACpB,EAAE,EAAE,MAAM,CAAC,EAAY;oBACvB,YAAY,EAAE,MAAM,CAAC,YAAsB;iBAC5C,CAAC;aACH;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM;YACR,CAAC,CAAC;gBACE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;oBACpB,GAAG,MAAM;oBACT,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;iBAChD,CAAC;aACH;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,UAAU;QAC/B,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,SAAS,EAAE,aAAa,CAAC;IAC3C,MAAM,aAAa,GAAG,SAAS,EAAE,aAAa,CAAC;IAC/C,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,CAAC;IACjD,IACE,CAAC,SAAS;QACV,OAAO,SAAS,KAAK,QAAQ;QAC7B,OAAO,SAAS,KAAK,UAAU;QAC/B,OAAO,aAAa,KAAK,UAAU;QACnC,OAAO,cAAc,KAAK,UAAU,EACpC,CAAC;QACD,IAAI,SAAS,IAAI,OAAQ,SAAiB,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/D,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACjC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,KAAK,EAAE,CAAC;IACR,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO;QACP,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,CAAC,MAA2B,EAAE,EAAE;YAC7C,IACE,OAAO,CAAC,MAAM;gBACd,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,YAAY;oBAClD,OAAO,CAAC,MAAM,CAAC,YAAY;gBAE7B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,cAAc;KACf,CAA0B,CAAC;IAC5B,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B,CACxC,QAA+B;IAE/B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,QAAQ,CAAC,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iCAAiC,CAC/C,cAAsB,EACtB,2BAAmC,EACnC,YAAqB;IAErB,IACE,OAAO,cAAc,KAAK,QAAQ;QAClC,OAAO,2BAA2B,KAAK,QAAQ;QAE/C,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChD,IACE,QAAQ,CAAC,QAAQ,EAAE;QACnB,QAAQ,CAAC,kBAAkB,KAAK,2BAA2B;QAC3D,CAAC,MAAM,CAAC,QAAQ,EAAE;QAClB,MAAM,CAAC,UAAU,KAAK,cAAc;QACpC,MAAM,CAAC,kBAAkB,KAAK,2BAA2B;QACzD,CAAC,YAAY,KAAK,SAAS;YACzB,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QAE5D,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;IACJ,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,0BAA0B,CACxC,cAAsB,EACtB,SAAgC,EAChC,QAA+B,EAC/B,eAAyC,EACzC,2BAAmC;IAEnC,OAAO,MAAM,CACX,cAAc,EACd,SAAS,EACT,QAAQ,EACR,eAAe,EACf,2BAA2B,EAC3B,EAAE,IAAI,EAAE,UAAU,EAAE,CACrB,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,kCAAkC,CAChD,cAAsB,EACtB,SAAgC,EAChC,QAA+B,EAC/B,eAAyC,EACzC,2BAAmC,EACnC,kBAAuC;IAEvC,OAAO,MAAM,CACX,cAAc,EACd,SAAS,EACT,QAAQ,EACR,eAAe,EACf,2BAA2B,EAC3B,EAAE,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,CACzC,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAEf,CAAC;AAElC,iFAAiF;AACjF,KAAK,UAAU,MAAM,CACnB,cAAsB,EACtB,SAAgC,EAChC,QAA+B,EAC/B,eAAyC,EACzC,2BAAmC,EACnC,SAEiE;IAEjE,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACzD,KAAK,EAAE,CAAC;QACR,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CACjD,CAAC;QACF,IACE,eAAe,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;YACnD,CAAC,SAAS,CAAC,IAAI,KAAK,UAAU;gBAC5B,OAAO,SAAS,CAAC,kBAAkB,KAAK,UAAU,CAAC;YAErD,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG,iCAAiC,CAC1C,cAAc,EACd,2BAA2B,EAC3B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CACjC,CAAC;QACF,IAAI,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC;QAC1D,IAAI,aAAa,KAAK,SAAS,IAAI,EAAE,CAAC,KAAK,KAAK,aAAa;YAC3D,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,IAAI,GAAG,EAAE,CAAC,IAAK,CAAC;QAChB,MAAM,MAAM,GAAwB,MAAM,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc;YACd,IAAI;YACJ,IAAI,EAAE,EAAE,CAAC,IAAK;YACd,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC9B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,IAAI,EAAE,EAAE,CAAC,IAAI;SACd,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,CAAC,IAAI,KAAK,UAAU;YAChE,MAAM,IAAI,SAAS,CACjB,+DAA+D,CAChE,CAAC;QACJ,MAAM,eAAe,CAAC;QACtB,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,IAAI,IAAI,UAAU;gBACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,MAAM,CAAC,MAAM,CAAC;gBACZ,cAAc;gBACd,KAAK,EAAE,CACL,QAA0B,EAC1B,SAA+B,EAC/B,EAAE;oBACF,IACE,CAAC,IAAI;wBACL,SAAS;wBACT,OAAO,QAAQ,KAAK,UAAU;wBAC9B,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU,CAAC;wBAE5D,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;oBACpD,SAAS,GAAG,IAAI,CAAC;oBACjB,IAAI,gBAAgB,GAAG,KAAK,CAAC;oBAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;oBAC9B,OAAO,QAAQ,CAAC,cAAc,CAC5B,MAAM,EACN,GAAG,EAAE;wBACH,kBAAkB,EAAE,CAAC;wBACrB,IAAI,CAAC,iBAAiB;4BACpB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;wBAC9D,IAAI,eAAe;4BAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;wBACxD,KAAK,EAAE,CAAC;wBACR,UAAU,GAAG,IAAI,CAAC;wBAClB,OAAO,QAAQ,EAAE,CAAC;oBACpB,CAAC,EACD,KAAK,IAAI,EAAE;wBACT,kBAAkB,EAAE,CAAC;wBACrB,IAAI,gBAAgB;4BAClB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBAC5D,gBAAgB,GAAG,IAAI,CAAC;wBACxB,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;4BAC/B,MAAM,SAAS,CAAC,kBAAkB,EAAE,CAAC;wBACvC,kBAAkB,EAAE,CAAC;wBACrB,IAAI,SAAS;4BAAE,MAAM,SAAS,EAAE,CAAC;wBACjC,kBAAkB,EAAE,CAAC;wBACrB,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC,CACF,CAAC;gBACJ,CAAC;aACF,CAAC,CACH,CAAC;YACF,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,4BAA4B,CAAC,KAAK,EAAE;YACxC,uBAAuB,EAAE,CAAC,UAAU;YACpC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { getAddress } from 'ethers/address';
2
+ import { Signature } from 'ethers/crypto';
3
+ import { Transaction } from 'ethers/transaction';
4
+ import { assertSignedEvmTransactionMatches } from './evm-submission';
5
+ import { annotateEvmSubmissionFailure } from './evm-submission-failure';
6
+ import { captureHardwareTransactionAuthority } from '../hardware-transaction-authority';
7
+ /** Sign the reviewed bytes through the shared Ledger adapter without changing fees or nonce. */
8
+ export async function signLedgerEvmTransaction(signer, request, authority) {
9
+ try {
10
+ const owner = captureHardwareTransactionAuthority(authority);
11
+ const { accountIndex, unsignedTransaction } = request;
12
+ const expectedAddress = getAddress(request.expectedAddress);
13
+ if (!Number.isSafeInteger(accountIndex) ||
14
+ accountIndex < 0 ||
15
+ accountIndex > 0x7fffffff ||
16
+ typeof unsignedTransaction !== 'string')
17
+ throw new TypeError('Invalid reviewed Ledger transaction');
18
+ const transaction = Transaction.from(unsignedTransaction);
19
+ if (transaction.isSigned() ||
20
+ transaction.chainId <= 0n ||
21
+ transaction.unsignedSerialized !== unsignedTransaction)
22
+ throw new TypeError('Ledger signing requires canonical unsigned transaction bytes');
23
+ owner.assertCurrent();
24
+ const signature = await signer.evm.signEVMTransaction({
25
+ accountIndex,
26
+ expectedAddress,
27
+ rawTx: unsignedTransaction.slice(2),
28
+ }, owner);
29
+ owner.assertCurrent();
30
+ transaction.signature = Signature.from({
31
+ r: `0x${signature.r}`,
32
+ s: `0x${signature.s}`,
33
+ v: Number.parseInt(signature.v, 16),
34
+ });
35
+ const rawTransaction = transaction.serialized;
36
+ if (transaction.from?.toLowerCase() !== expectedAddress.toLowerCase()) {
37
+ throw Object.assign(new Error('Hardware signature does not match the approved account'), { code: 'HARDWARE_ACCOUNT_MISMATCH' });
38
+ }
39
+ const checked = assertSignedEvmTransactionMatches(rawTransaction, unsignedTransaction, expectedAddress);
40
+ owner.assertCurrent();
41
+ return Object.freeze({ rawTransaction, hash: checked.hash });
42
+ }
43
+ catch (cause) {
44
+ throw annotateEvmSubmissionFailure(cause, {
45
+ transactionNotBroadcast: true,
46
+ });
47
+ }
48
+ }
49
+ //# sourceMappingURL=ledger-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-signing.js","sourceRoot":"","sources":["../../../src/transactions/ledger-signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAKxF,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAwD,EACxD,OAIE,EACF,SAAuC;IAEvC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,mCAAmC,CAAC,SAAS,CAAC,CAAC;QAC7D,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC5D,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;YACnC,YAAY,GAAG,CAAC;YAChB,YAAY,GAAG,UAAU;YACzB,OAAO,mBAAmB,KAAK,QAAQ;YAEvC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1D,IACE,WAAW,CAAC,QAAQ,EAAE;YACtB,WAAW,CAAC,OAAO,IAAI,EAAE;YACzB,WAAW,CAAC,kBAAkB,KAAK,mBAAmB;YAEtD,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;QACJ,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CACnD;YACE,YAAY;YACZ,eAAe;YACf,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC,EACD,KAAK,CACN,CAAC;QACF,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;YACrC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;YACrB,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;YACrB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC;QAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YACtE,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,wDAAwD,CAAC,EACnE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,iCAAiC,CAC/C,cAAc,EACd,mBAAmB,EACnB,eAAe,CAChB,CAAC;QACF,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,4BAA4B,CAAC,KAAK,EAAE;YACxC,uBAAuB,EAAE,IAAI;SAC9B,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -4,8 +4,29 @@ import { prepareUnsignedEvmEnvelope, readEvmOwnData, snapshotPreparedEvmTransact
4
4
  import { signTransaction } from './evm-local-signer';
5
5
  import { assertSignedEvmTransactionMatches } from './evm-submission';
6
6
  const invalid = () => new TypeError('Invalid prepared EVM signing request');
7
+ export function snapshotEvmSigningIdentity(input) {
8
+ const identity = readEvmOwnData(input, ['id', 'type', 'expectedAddress']);
9
+ if (!Number.isSafeInteger(identity.id) ||
10
+ identity.id < 0 ||
11
+ identity.id > 0x7fffffff ||
12
+ !['HDAccount', 'Imported', 'Ledger', 'Trezor', 'SmartAccount'].includes(identity.type) ||
13
+ typeof identity.expectedAddress !== 'string' ||
14
+ !/^0x[0-9a-fA-F]{40}$/.test(identity.expectedAddress))
15
+ throw invalid();
16
+ return Object.freeze({
17
+ id: identity.id,
18
+ type: identity.type,
19
+ expectedAddress: getAddress(identity.expectedAddress),
20
+ });
21
+ }
7
22
  export function snapshotPreparedEvmRequest(input) {
8
- const root = readEvmOwnData(input, ['account', 'network', 'transaction']);
23
+ const root = readEvmOwnData(input, [
24
+ 'selectedAccount',
25
+ 'account',
26
+ 'network',
27
+ 'transaction',
28
+ ]);
29
+ const selectedAccount = snapshotEvmSigningIdentity(root.selectedAccount);
9
30
  const account = readEvmOwnData(root.account, [
10
31
  'id',
11
32
  'type',
@@ -40,6 +61,7 @@ export function snapshotPreparedEvmRequest(input) {
40
61
  if (transaction.from !== expectedAddress || network.chainId !== chainId)
41
62
  throw invalid();
42
63
  return Object.freeze({
64
+ selectedAccount,
43
65
  account: Object.freeze({
44
66
  id: account.id,
45
67
  type: account.type,
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { getAddress } from 'ethers/address';
2
+ import { Signature } from 'ethers/crypto';
3
+ import { Transaction } from 'ethers/transaction';
4
+ import { toBeHex } from 'ethers/utils';
5
+ import { assertSignedEvmTransactionMatches } from './evm-submission';
6
+ import { annotateEvmSubmissionFailure } from './evm-submission-failure';
7
+ import { assertEvmGasLimit } from '../evm-fees';
8
+ import { captureHardwareTransactionAuthority } from '../hardware-transaction-authority';
9
+ // Connect returns hexadecimal fields, including an optionally numeric recovery v.
10
+ const trezorSignature = (signature) => {
11
+ const { r, s, v } = signature;
12
+ if (![r, s].every((value) => /^(?:0x)?[0-9a-f]{64}$/i.test(value)))
13
+ throw new Error('Invalid Trezor signature scalar encoding');
14
+ if (typeof v === 'string' && !/^(?:0x)?[0-9a-f]+$/i.test(v))
15
+ throw new Error('Invalid Trezor signature recovery value');
16
+ const recovery = typeof v === 'number' ? v : Number.parseInt(v, 16);
17
+ if (!Number.isSafeInteger(recovery) || recovery < 0)
18
+ throw new Error('Invalid Trezor signature recovery value');
19
+ return Signature.from({
20
+ r: `0x${r.replace(/^0x/i, '')}`,
21
+ s: `0x${s.replace(/^0x/i, '')}`,
22
+ v: recovery,
23
+ });
24
+ };
25
+ /** Sign reviewed bytes through an explicitly hosted Trezor keyring. */
26
+ export async function signTrezorEvmTransaction(signer, request, authority) {
27
+ try {
28
+ const owner = captureHardwareTransactionAuthority(authority);
29
+ const { accountIndex, coin, slip44, unsignedTransaction } = request;
30
+ const expectedAddress = getAddress(request.expectedAddress);
31
+ if (!Number.isSafeInteger(accountIndex) ||
32
+ accountIndex < 0 ||
33
+ accountIndex > 0x7fffffff ||
34
+ !Number.isSafeInteger(slip44) ||
35
+ slip44 < 0 ||
36
+ slip44 > 0x7fffffff ||
37
+ typeof coin !== 'string' ||
38
+ coin.length === 0 ||
39
+ typeof unsignedTransaction !== 'string')
40
+ throw new TypeError('Invalid reviewed Trezor transaction');
41
+ const transaction = Transaction.from(unsignedTransaction);
42
+ if (transaction.isSigned() ||
43
+ transaction.chainId <= 0n ||
44
+ transaction.chainId > BigInt(Number.MAX_SAFE_INTEGER) ||
45
+ (transaction.type !== 0 && transaction.type !== 2) ||
46
+ transaction.unsignedSerialized !== unsignedTransaction)
47
+ throw new TypeError('Trezor signing requires canonical unsigned type 0 or type 2 transaction bytes');
48
+ assertEvmGasLimit(transaction.gasLimit, transaction.chainId);
49
+ const common = {
50
+ to: transaction.to,
51
+ value: toBeHex(transaction.value),
52
+ gasLimit: toBeHex(transaction.gasLimit),
53
+ nonce: toBeHex(transaction.nonce),
54
+ data: transaction.data,
55
+ chainId: Number(transaction.chainId),
56
+ };
57
+ const tx = transaction.type === 0
58
+ ? { ...common, gasPrice: toBeHex(transaction.gasPrice) }
59
+ : {
60
+ ...common,
61
+ maxFeePerGas: toBeHex(transaction.maxFeePerGas),
62
+ maxPriorityFeePerGas: toBeHex(transaction.maxPriorityFeePerGas),
63
+ accessList: transaction.accessList.map(({ address, storageKeys }) => ({
64
+ address,
65
+ storageKeys: [...storageKeys],
66
+ })),
67
+ };
68
+ owner.assertCurrent();
69
+ const signature = await signer.signEthTransaction({ index: String(accountIndex), coin, slip44, tx }, owner);
70
+ owner.assertCurrent();
71
+ if (signature.success !== true)
72
+ throw new Error('Transaction signature failed');
73
+ transaction.signature = trezorSignature(signature.payload);
74
+ const rawTransaction = transaction.serialized;
75
+ if (transaction.from?.toLowerCase() !== expectedAddress.toLowerCase())
76
+ throw Object.assign(new Error('Hardware signature does not match the approved account'), { code: 'HARDWARE_ACCOUNT_MISMATCH' });
77
+ const checked = assertSignedEvmTransactionMatches(rawTransaction, unsignedTransaction, expectedAddress);
78
+ owner.assertCurrent();
79
+ return Object.freeze({ rawTransaction, hash: checked.hash });
80
+ }
81
+ catch (cause) {
82
+ throw annotateEvmSubmissionFailure(cause, {
83
+ transactionNotBroadcast: true,
84
+ });
85
+ }
86
+ }
87
+ //# sourceMappingURL=trezor-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trezor-signing.js","sourceRoot":"","sources":["../../../src/transactions/trezor-signing.ts"],"names":[],"mappings":"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"}