@sidhujag/sysweb3-keyring 2.1.6 → 2.1.8

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 (100) 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 +321 -269
  24. package/cjs/transactions/ethereum.js.map +1 -1
  25. package/cjs/transactions/evm-envelope.js +186 -0
  26. package/cjs/transactions/evm-envelope.js.map +1 -0
  27. package/cjs/transactions/evm-submission.js +32 -4
  28. package/cjs/transactions/evm-submission.js.map +1 -1
  29. package/cjs/transactions/ledger-signing.js +44 -0
  30. package/cjs/transactions/ledger-signing.js.map +1 -0
  31. package/cjs/transactions/prepared-evm.js +44 -124
  32. package/cjs/transactions/prepared-evm.js.map +1 -1
  33. package/cjs/trezor/connect.js +238 -243
  34. package/cjs/trezor/connect.js.map +1 -1
  35. package/cjs/trezor/host-types.js +19 -0
  36. package/cjs/trezor/host-types.js.map +1 -0
  37. package/cjs/trezor/index.js +75 -23
  38. package/cjs/trezor/index.js.map +1 -1
  39. package/cjs/trezor/webextension-host.js +118 -0
  40. package/cjs/trezor/webextension-host.js.map +1 -0
  41. package/cjs/trezor-hardware.js +16 -0
  42. package/cjs/trezor-hardware.js.map +1 -0
  43. package/cjs/types.js.map +1 -1
  44. package/esm/hardware-transaction-authority.js +14 -11
  45. package/esm/hardware-transaction-authority.js.map +1 -1
  46. package/esm/hardware-wallet-manager.js +20 -32
  47. package/esm/hardware-wallet-manager.js.map +1 -1
  48. package/esm/hardware-wallet-types.js +13 -0
  49. package/esm/hardware-wallet-types.js.map +1 -0
  50. package/esm/keyring-core.js +98 -63
  51. package/esm/keyring-core.js.map +1 -1
  52. package/esm/ledger/dmk-host.js +2 -0
  53. package/esm/ledger/dmk-host.js.map +1 -1
  54. package/esm/ledger/dmk-session.js +73 -8
  55. package/esm/ledger/dmk-session.js.map +1 -1
  56. package/esm/ledger/host-types.js.map +1 -1
  57. package/esm/ledger/index.js +22 -2
  58. package/esm/ledger/index.js.map +1 -1
  59. package/esm/transactions/ethereum.js +322 -270
  60. package/esm/transactions/ethereum.js.map +1 -1
  61. package/esm/transactions/evm-envelope.js +179 -0
  62. package/esm/transactions/evm-envelope.js.map +1 -0
  63. package/esm/transactions/evm-submission.js +32 -4
  64. package/esm/transactions/evm-submission.js.map +1 -1
  65. package/esm/transactions/ledger-signing.js +41 -0
  66. package/esm/transactions/ledger-signing.js.map +1 -0
  67. package/esm/transactions/prepared-evm.js +43 -124
  68. package/esm/transactions/prepared-evm.js.map +1 -1
  69. package/esm/trezor/connect.js +236 -209
  70. package/esm/trezor/connect.js.map +1 -1
  71. package/esm/trezor/host-types.js +16 -0
  72. package/esm/trezor/host-types.js.map +1 -0
  73. package/esm/trezor/index.js +74 -22
  74. package/esm/trezor/index.js.map +1 -1
  75. package/esm/types.js.map +1 -1
  76. package/package.json +61 -1
  77. package/types/hardware-transaction-authority.d.ts +1 -0
  78. package/types/hardware-wallet-manager.d.ts +6 -22
  79. package/types/hardware-wallet-types.d.ts +21 -0
  80. package/types/host-keyring.d.ts +16 -0
  81. package/types/index.d.ts +1 -0
  82. package/types/keyring-core.d.ts +12 -4
  83. package/types/keyring-manager.d.ts +5 -3
  84. package/types/ledger/dmk-host.d.ts +2 -0
  85. package/types/ledger/dmk-session.d.ts +9 -0
  86. package/types/ledger/host-types.d.ts +2 -0
  87. package/types/ledger/index.d.ts +3 -1
  88. package/types/ledger-hardware.d.ts +5 -0
  89. package/types/software.d.ts +4 -17
  90. package/types/transactions/ethereum.d.ts +11 -1
  91. package/types/transactions/evm-envelope.d.ts +64 -0
  92. package/types/transactions/evm-submission.d.ts +7 -2
  93. package/types/transactions/ledger-signing.d.ts +13 -0
  94. package/types/transactions/prepared-evm.d.ts +14 -23
  95. package/types/trezor/connect.d.ts +11 -9
  96. package/types/trezor/host-types.d.ts +25 -0
  97. package/types/trezor/index.d.ts +7 -7
  98. package/types/trezor/webextension-host.d.ts +7 -0
  99. package/types/trezor-hardware.d.ts +6 -0
  100. package/types/types.d.ts +17 -5
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readEvmOwnData = readEvmOwnData;
4
+ exports.snapshotEvmAccessList = snapshotEvmAccessList;
5
+ exports.snapshotPreparedEvmTransaction = snapshotPreparedEvmTransaction;
6
+ exports.prepareUnsignedEvmEnvelope = prepareUnsignedEvmEnvelope;
7
+ exports.serializePreparedEvmTransaction = serializePreparedEvmTransaction;
8
+ const address_1 = require("ethers/address");
9
+ const transaction_1 = require("ethers/transaction");
10
+ const evm_fees_1 = require("../evm-fees");
11
+ const UINT256 = (1n << 256n) - 1n;
12
+ const UINT64 = (1n << 64n) - 1n;
13
+ // A 1 MiB JSON RPC request can contain less than 512 KiB of hex calldata.
14
+ const MAX_DATA_BYTES = 512 * 1024;
15
+ const MAX_ACCESS_LIST_ITEMS = 10000;
16
+ const invalid = () => new TypeError('Invalid prepared EVM signing request');
17
+ /** Snapshot values without invoking accessors or accepting hidden fields. */
18
+ /** @internal Strict own-data snapshot shared with prepared request binding. */
19
+ function readEvmOwnData(value, keys) {
20
+ if (!value || typeof value !== 'object' || Array.isArray(value))
21
+ throw invalid();
22
+ const prototype = Object.getPrototypeOf(value);
23
+ if (prototype !== Object.prototype && prototype !== null)
24
+ throw invalid();
25
+ const names = Reflect.ownKeys(value);
26
+ if (names.length !== keys.length ||
27
+ names.some((key) => typeof key !== 'string' || !keys.includes(key)))
28
+ throw invalid();
29
+ const result = Object.create(null);
30
+ for (const key of keys) {
31
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
32
+ if (!descriptor ||
33
+ !descriptor.enumerable ||
34
+ !Object.prototype.hasOwnProperty.call(descriptor, 'value'))
35
+ throw invalid();
36
+ result[key] = descriptor.value;
37
+ }
38
+ return result;
39
+ }
40
+ function quantity(value, maximum = UINT256, positive = false) {
41
+ if (typeof value !== 'string' || !/^(0|[1-9][0-9]{0,77})$/.test(value))
42
+ throw invalid();
43
+ const parsed = BigInt(value);
44
+ if (parsed > maximum || (positive && parsed === 0n))
45
+ throw invalid();
46
+ return value;
47
+ }
48
+ function address(value) {
49
+ if (typeof value !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(value))
50
+ throw invalid();
51
+ let canonical;
52
+ try {
53
+ canonical = (0, address_1.getAddress)(value);
54
+ }
55
+ catch {
56
+ throw invalid();
57
+ }
58
+ return canonical;
59
+ }
60
+ function sender(value) {
61
+ const canonical = address(value);
62
+ if (/^0x0{40}$/i.test(canonical))
63
+ throw invalid();
64
+ return canonical;
65
+ }
66
+ function arrayData(value, maximum) {
67
+ if (!Array.isArray(value) ||
68
+ Object.getPrototypeOf(value) !== Array.prototype ||
69
+ value.length > maximum ||
70
+ Reflect.ownKeys(value).length !== value.length + 1)
71
+ throw invalid();
72
+ const values = [];
73
+ for (let index = 0; index < value.length; index++) {
74
+ const descriptor = Object.getOwnPropertyDescriptor(value, index);
75
+ if (!descriptor?.enumerable || !('value' in descriptor))
76
+ throw invalid();
77
+ values.push(descriptor.value);
78
+ }
79
+ return values;
80
+ }
81
+ /** Copy bounded own data while preserving the signed order and duplicates. */
82
+ function snapshotEvmAccessList(value) {
83
+ const entries = arrayData(value, MAX_ACCESS_LIST_ITEMS);
84
+ let remaining = MAX_ACCESS_LIST_ITEMS - entries.length;
85
+ return Object.freeze(entries.map((entry) => {
86
+ const fields = readEvmOwnData(entry, ['address', 'storageKeys']);
87
+ const keys = arrayData(fields.storageKeys, remaining);
88
+ remaining -= keys.length;
89
+ const storageKeys = keys.map((key) => {
90
+ if (typeof key !== 'string' || !/^0x[0-9a-fA-F]{64}$/.test(key))
91
+ throw invalid();
92
+ return key.toLowerCase();
93
+ });
94
+ return Object.freeze({
95
+ address: address(fields.address),
96
+ storageKeys: Object.freeze(storageKeys),
97
+ });
98
+ }));
99
+ }
100
+ function snapshotPreparedEvmTransaction(input) {
101
+ // Read the discriminator from a data property before choosing the exact schema.
102
+ if (!input || typeof input !== 'object')
103
+ throw invalid();
104
+ const typeDescriptor = Object.getOwnPropertyDescriptor(input, 'type');
105
+ if (!typeDescriptor ||
106
+ !Object.prototype.hasOwnProperty.call(typeDescriptor, 'value'))
107
+ throw invalid();
108
+ const type = typeDescriptor.value;
109
+ if (type !== 0 && type !== 2)
110
+ throw invalid();
111
+ const fields = [
112
+ 'type',
113
+ 'from',
114
+ 'to',
115
+ 'chainId',
116
+ 'nonce',
117
+ 'value',
118
+ 'gasLimit',
119
+ 'data',
120
+ ];
121
+ const transaction = readEvmOwnData(input, type === 0
122
+ ? [...fields, 'gasPrice']
123
+ : [...fields, 'maxFeePerGas', 'maxPriorityFeePerGas', 'accessList']);
124
+ const from = sender(transaction.from);
125
+ const chainId = quantity(transaction.chainId, UINT256, true);
126
+ if (typeof transaction.data !== 'string' ||
127
+ transaction.data.length > 2 + 2 * MAX_DATA_BYTES ||
128
+ !/^0x(?:[0-9a-fA-F]{2})*$/.test(transaction.data))
129
+ throw invalid();
130
+ const common = {
131
+ from,
132
+ to: transaction.to === null ? null : address(transaction.to),
133
+ chainId,
134
+ nonce: quantity(transaction.nonce, BigInt(Number.MAX_SAFE_INTEGER)),
135
+ value: quantity(transaction.value),
136
+ gasLimit: quantity(transaction.gasLimit, UINT64, true),
137
+ data: transaction.data.toLowerCase(),
138
+ };
139
+ (0, evm_fees_1.assertEvmGasLimit)(BigInt(common.gasLimit), BigInt(chainId));
140
+ const fees = type === 0
141
+ ? { type: 0, gasPrice: quantity(transaction.gasPrice) }
142
+ : {
143
+ type: 2,
144
+ maxFeePerGas: quantity(transaction.maxFeePerGas),
145
+ maxPriorityFeePerGas: quantity(transaction.maxPriorityFeePerGas),
146
+ accessList: snapshotEvmAccessList(transaction.accessList),
147
+ };
148
+ if (fees.type === 2 &&
149
+ BigInt(fees.maxPriorityFeePerGas) > BigInt(fees.maxFeePerGas))
150
+ throw invalid();
151
+ const maximumFee = BigInt(common.gasLimit) *
152
+ BigInt(fees.type === 0 ? fees.gasPrice : fees.maxFeePerGas);
153
+ if (maximumFee + BigInt(common.value) > UINT256)
154
+ throw invalid();
155
+ return Object.freeze({ ...common, ...fees });
156
+ }
157
+ /** @internal The same validated fields feed unsigned serialization and signing. */
158
+ function prepareUnsignedEvmEnvelope(input) {
159
+ const transaction = snapshotPreparedEvmTransaction(input);
160
+ const unsigned = {
161
+ type: transaction.type,
162
+ to: transaction.to,
163
+ chainId: BigInt(transaction.chainId),
164
+ nonce: Number(transaction.nonce),
165
+ value: BigInt(transaction.value),
166
+ gasLimit: BigInt(transaction.gasLimit),
167
+ data: transaction.data,
168
+ ...(transaction.type === 0
169
+ ? { gasPrice: BigInt(transaction.gasPrice) }
170
+ : {
171
+ maxFeePerGas: BigInt(transaction.maxFeePerGas),
172
+ maxPriorityFeePerGas: BigInt(transaction.maxPriorityFeePerGas),
173
+ accessList: transaction.accessList.map((entry) => ({
174
+ address: entry.address,
175
+ storageKeys: [...entry.storageKeys],
176
+ })),
177
+ }),
178
+ };
179
+ const expectedUnsigned = transaction_1.Transaction.from(unsigned).unsignedSerialized;
180
+ return { transaction, unsigned, expectedUnsigned };
181
+ }
182
+ /** Validate and serialize the exact envelope used by prepared signing. */
183
+ function serializePreparedEvmTransaction(transaction) {
184
+ return prepareUnsignedEvmEnvelope(transaction).expectedUnsigned;
185
+ }
186
+ //# sourceMappingURL=evm-envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-envelope.js","sourceRoot":"","sources":["../../../src/transactions/evm-envelope.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ exports.assertSignedEvmTransactionMatches = assertSignedEvmTransactionMatches;
8
8
  exports.submitSignedEvmTransaction = submitSignedEvmTransaction;
9
9
  exports.submitSignedHardwareEvmTransaction = submitSignedHardwareEvmTransaction;
10
10
  const transaction_1 = require("ethers/transaction");
11
+ const evm_envelope_1 = require("./evm-envelope");
11
12
  const capturedBoundaries = new WeakSet();
12
13
  function assertSynchronous(check) {
13
14
  const result = check();
@@ -22,6 +23,19 @@ function assertSynchronous(check) {
22
23
  /** Capture once, before RPC or device work. Never reread host capabilities later. */
23
24
  function captureEvmSubmission(input, assertCurrent, capture) {
24
25
  const { origin, walletNonce } = input;
26
+ const inputReview = input.review;
27
+ const review = inputReview === undefined
28
+ ? undefined
29
+ : (0, evm_envelope_1.readEvmOwnData)(inputReview, ['id', 'unsignedHash']);
30
+ if (review !== undefined &&
31
+ (input.operation !== 'send' ||
32
+ !walletNonce ||
33
+ !review ||
34
+ typeof review.id !== 'string' ||
35
+ !/^[A-Za-z0-9_-]{1,128}$/.test(review.id) ||
36
+ typeof review.unsignedHash !== 'string' ||
37
+ !/^0x[0-9a-f]{64}$/.test(review.unsignedHash)))
38
+ throw new TypeError('Invalid EVM fee review identity');
25
39
  let approvedWalletNonce;
26
40
  if (walletNonce !== undefined) {
27
41
  if (!walletNonce ||
@@ -39,6 +53,14 @@ function captureEvmSubmission(input, assertCurrent, capture) {
39
53
  account: Object.freeze({ ...input.account }),
40
54
  network: Object.freeze({ ...input.network }),
41
55
  operation: input.operation,
56
+ ...(review
57
+ ? {
58
+ review: Object.freeze({
59
+ id: review.id,
60
+ unsignedHash: review.unsignedHash,
61
+ }),
62
+ }
63
+ : {}),
42
64
  ...(approvedWalletNonce ? { walletNonce: approvedWalletNonce } : {}),
43
65
  ...(input.originalHash !== undefined
44
66
  ? { originalHash: input.originalHash }
@@ -77,7 +99,13 @@ function captureEvmSubmission(input, assertCurrent, capture) {
77
99
  const boundary = Object.freeze({
78
100
  context,
79
101
  assertCurrent: guard,
80
- persistSigned,
102
+ persistSigned: (record) => {
103
+ if (context.review &&
104
+ transaction_1.Transaction.from(record.rawTransaction).unsignedHash !==
105
+ context.review.unsignedHash)
106
+ throw new Error('Signed EVM transaction does not match its fee review');
107
+ return persistSigned(record);
108
+ },
81
109
  dispatchSigned,
82
110
  });
83
111
  capturedBoundaries.add(boundary);
@@ -90,11 +118,11 @@ function assertDurableEvmSubmission(boundary) {
90
118
  boundary.assertCurrent();
91
119
  }
92
120
  const failures = new WeakMap();
93
- /** Only local stage evidence can label an error as a possibly dispatched send. */
121
+ /** Return owned stage evidence only; unrecognized errors carry no classification. */
94
122
  function evmSubmissionFailure(error) {
95
- return ((error && (typeof error === 'object' || typeof error === 'function')
123
+ return error && (typeof error === 'object' || typeof error === 'function')
96
124
  ? failures.get(error)
97
- : undefined) ?? { transactionNotBroadcast: true });
125
+ : undefined;
98
126
  }
99
127
  /** Preserve local evidence when an existing public API wraps its Error object. */
100
128
  function copyEvmSubmissionFailure(source, target) {
@@ -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":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signLedgerEvmTransaction = signLedgerEvmTransaction;
4
+ const address_1 = require("ethers/address");
5
+ const crypto_1 = require("ethers/crypto");
6
+ const transaction_1 = require("ethers/transaction");
7
+ const evm_submission_1 = require("./evm-submission");
8
+ const hardware_transaction_authority_1 = require("../hardware-transaction-authority");
9
+ /** Sign the reviewed bytes through the shared Ledger adapter without changing fees or nonce. */
10
+ async function signLedgerEvmTransaction(signer, request, authority) {
11
+ const owner = (0, hardware_transaction_authority_1.captureHardwareTransactionAuthority)(authority);
12
+ const { accountIndex, unsignedTransaction } = request;
13
+ const expectedAddress = (0, address_1.getAddress)(request.expectedAddress);
14
+ if (!Number.isSafeInteger(accountIndex) ||
15
+ accountIndex < 0 ||
16
+ accountIndex > 0x7fffffff ||
17
+ typeof unsignedTransaction !== 'string')
18
+ throw new TypeError('Invalid reviewed Ledger transaction');
19
+ const transaction = transaction_1.Transaction.from(unsignedTransaction);
20
+ if (transaction.isSigned() ||
21
+ transaction.chainId <= 0n ||
22
+ transaction.unsignedSerialized !== unsignedTransaction)
23
+ throw new TypeError('Ledger signing requires canonical unsigned transaction bytes');
24
+ owner.assertCurrent();
25
+ const signature = await signer.evm.signEVMTransaction({
26
+ accountIndex,
27
+ expectedAddress,
28
+ rawTx: unsignedTransaction.slice(2),
29
+ }, owner);
30
+ owner.assertCurrent();
31
+ transaction.signature = crypto_1.Signature.from({
32
+ r: `0x${signature.r}`,
33
+ s: `0x${signature.s}`,
34
+ v: Number.parseInt(signature.v, 16),
35
+ });
36
+ const rawTransaction = transaction.serialized;
37
+ if (transaction.from?.toLowerCase() !== expectedAddress.toLowerCase()) {
38
+ throw Object.assign(new Error('Hardware signature does not match the approved account'), { code: 'HARDWARE_ACCOUNT_MISMATCH', transactionNotBroadcast: true });
39
+ }
40
+ const checked = (0, evm_submission_1.assertSignedEvmTransactionMatches)(rawTransaction, unsignedTransaction, expectedAddress);
41
+ owner.assertCurrent();
42
+ return Object.freeze({ rawTransaction, hash: checked.hash });
43
+ }
44
+ //# sourceMappingURL=ledger-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-signing.js","sourceRoot":"","sources":["../../../src/transactions/ledger-signing.ts"],"names":[],"mappings":";;AAWA,4DAyDC;AApED,4CAA4C;AAC5C,0CAA0C;AAC1C,oDAAiD;AAEjD,qDAAqE;AACrE,sFAAwF;AAKxF,gGAAgG;AACzF,KAAK,UAAU,wBAAwB,CAC5C,MAAwD,EACxD,OAIE,EACF,SAAuC;IAEvC,MAAM,KAAK,GAAG,IAAA,oEAAmC,EAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,eAAe,GAAG,IAAA,oBAAU,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5D,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;QACnC,YAAY,GAAG,CAAC;QAChB,YAAY,GAAG,UAAU;QACzB,OAAO,mBAAmB,KAAK,QAAQ;QAEvC,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,yBAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC1D,IACE,WAAW,CAAC,QAAQ,EAAE;QACtB,WAAW,CAAC,OAAO,IAAI,EAAE;QACzB,WAAW,CAAC,kBAAkB,KAAK,mBAAmB;QAEtD,MAAM,IAAI,SAAS,CACjB,8DAA8D,CAC/D,CAAC;IACJ,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,CACnD;QACE,YAAY;QACZ,eAAe;QACf,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;KACpC,EACD,KAAK,CACN,CAAC;IACF,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,WAAW,CAAC,SAAS,GAAG,kBAAS,CAAC,IAAI,CAAC;QACrC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;QACrB,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,EAAE;QACrB,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACpC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC;IAC9C,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,wDAAwD,CAAC,EACnE,EAAE,IAAI,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,IAAI,EAAE,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,kDAAiC,EAC/C,cAAc,EACd,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACF,KAAK,CAAC,aAAa,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,CAAC,IAAK,EAAE,CAAC,CAAC;AAChE,CAAC"}
@@ -1,71 +1,54 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.snapshotEvmSigningIdentity = snapshotEvmSigningIdentity;
3
4
  exports.snapshotPreparedEvmRequest = snapshotPreparedEvmRequest;
4
5
  exports.preparedEvmGuard = preparedEvmGuard;
5
6
  exports.signPreparedEvmEnvelope = signPreparedEvmEnvelope;
6
7
  const address_1 = require("ethers/address");
7
8
  const crypto_1 = require("ethers/crypto");
8
- const transaction_1 = require("ethers/transaction");
9
- const evm_fees_1 = require("../evm-fees");
9
+ const evm_envelope_1 = require("./evm-envelope");
10
10
  const evm_local_signer_1 = require("./evm-local-signer");
11
11
  const evm_submission_1 = require("./evm-submission");
12
- const UINT256 = (1n << 256n) - 1n;
13
- const UINT64 = (1n << 64n) - 1n;
14
- const MAX_DATA_BYTES = 16 * 1024;
15
12
  const invalid = () => new TypeError('Invalid prepared EVM signing request');
16
- /** Snapshot values without invoking accessors or accepting hidden fields. */
17
- function record(value, keys) {
18
- if (!value || typeof value !== 'object' || Array.isArray(value))
13
+ function snapshotEvmSigningIdentity(input) {
14
+ const identity = (0, evm_envelope_1.readEvmOwnData)(input, ['id', 'type', 'expectedAddress']);
15
+ if (!Number.isSafeInteger(identity.id) ||
16
+ identity.id < 0 ||
17
+ identity.id > 0x7fffffff ||
18
+ !['HDAccount', 'Imported', 'Ledger', 'Trezor', 'SmartAccount'].includes(identity.type) ||
19
+ typeof identity.expectedAddress !== 'string' ||
20
+ !/^0x[0-9a-fA-F]{40}$/.test(identity.expectedAddress))
19
21
  throw invalid();
20
- const prototype = Object.getPrototypeOf(value);
21
- if (prototype !== Object.prototype && prototype !== null)
22
- throw invalid();
23
- const names = Reflect.ownKeys(value);
24
- if (names.length !== keys.length ||
25
- names.some((key) => typeof key !== 'string' || !keys.includes(key)))
26
- throw invalid();
27
- const result = Object.create(null);
28
- for (const key of keys) {
29
- const descriptor = Object.getOwnPropertyDescriptor(value, key);
30
- if (!descriptor ||
31
- !descriptor.enumerable ||
32
- !Object.prototype.hasOwnProperty.call(descriptor, 'value'))
33
- throw invalid();
34
- result[key] = descriptor.value;
35
- }
36
- return result;
37
- }
38
- function quantity(value, maximum = UINT256, positive = false) {
39
- if (typeof value !== 'string' || !/^(0|[1-9][0-9]{0,77})$/.test(value))
40
- throw invalid();
41
- const parsed = BigInt(value);
42
- if (parsed > maximum || (positive && parsed === 0n))
43
- throw invalid();
44
- return value;
45
- }
46
- function address(value) {
47
- if (typeof value !== 'string' || !/^0x[0-9a-fA-F]{40}$/.test(value))
48
- throw invalid();
49
- let canonical;
50
- try {
51
- canonical = (0, address_1.getAddress)(value);
52
- }
53
- catch {
54
- throw invalid();
55
- }
56
- if (/^0x0{40}$/i.test(canonical))
57
- throw invalid();
58
- return canonical;
22
+ return Object.freeze({
23
+ id: identity.id,
24
+ type: identity.type,
25
+ expectedAddress: (0, address_1.getAddress)(identity.expectedAddress),
26
+ });
59
27
  }
60
28
  function snapshotPreparedEvmRequest(input) {
61
- const root = record(input, ['account', 'network', 'transaction']);
62
- const account = record(root.account, ['id', 'type', 'expectedAddress']);
29
+ const root = (0, evm_envelope_1.readEvmOwnData)(input, [
30
+ 'selectedAccount',
31
+ 'account',
32
+ 'network',
33
+ 'transaction',
34
+ ]);
35
+ const selectedAccount = snapshotEvmSigningIdentity(root.selectedAccount);
36
+ const account = (0, evm_envelope_1.readEvmOwnData)(root.account, [
37
+ 'id',
38
+ 'type',
39
+ 'expectedAddress',
40
+ ]);
63
41
  if (!Number.isSafeInteger(account.id) ||
64
42
  account.id < 0 ||
65
43
  account.id > 0x7fffffff ||
66
44
  (account.type !== 'HDAccount' && account.type !== 'Imported'))
67
45
  throw invalid();
68
- const network = record(root.network, ['kind', 'chainId', 'slip44', 'url']);
46
+ const network = (0, evm_envelope_1.readEvmOwnData)(root.network, [
47
+ 'kind',
48
+ 'chainId',
49
+ 'slip44',
50
+ 'url',
51
+ ]);
69
52
  if (network.kind !== 'ethereum' ||
70
53
  network.slip44 !== 60 ||
71
54
  typeof network.url !== 'string' ||
@@ -75,64 +58,16 @@ function snapshotPreparedEvmRequest(input) {
75
58
  // eslint-disable-next-line no-control-regex -- Reject endpoint control characters and lone surrogates.
76
59
  /[\uD800-\uDFFF\u0000-\u001f\u007f]/u.test(network.url))
77
60
  throw invalid();
78
- const chainId = quantity(network.chainId, UINT256, true);
79
- // Read the discriminator from a data property before choosing the exact schema.
80
- if (!root.transaction || typeof root.transaction !== 'object')
81
- throw invalid();
82
- const typeDescriptor = Object.getOwnPropertyDescriptor(root.transaction, 'type');
83
- if (!typeDescriptor ||
84
- !Object.prototype.hasOwnProperty.call(typeDescriptor, 'value'))
61
+ const transaction = (0, evm_envelope_1.snapshotPreparedEvmTransaction)(root.transaction);
62
+ if (typeof account.expectedAddress !== 'string' ||
63
+ !/^0x[0-9a-fA-F]{40}$/.test(account.expectedAddress))
85
64
  throw invalid();
86
- const type = typeDescriptor.value;
87
- if (type !== 0 && type !== 2)
88
- throw invalid();
89
- const fields = [
90
- 'type',
91
- 'from',
92
- 'to',
93
- 'chainId',
94
- 'nonce',
95
- 'value',
96
- 'gasLimit',
97
- 'data',
98
- ];
99
- const transaction = record(root.transaction, type === 0
100
- ? [...fields, 'gasPrice']
101
- : [...fields, 'maxFeePerGas', 'maxPriorityFeePerGas']);
102
- const from = address(transaction.from);
103
- const expectedAddress = address(account.expectedAddress);
104
- if (from !== expectedAddress ||
105
- quantity(transaction.chainId, UINT256, true) !== chainId)
106
- throw invalid();
107
- if (typeof transaction.data !== 'string' ||
108
- transaction.data.length > 2 + 2 * MAX_DATA_BYTES ||
109
- !/^0x(?:[0-9a-fA-F]{2})*$/.test(transaction.data))
110
- throw invalid();
111
- const common = {
112
- from,
113
- to: address(transaction.to),
114
- chainId,
115
- nonce: quantity(transaction.nonce, BigInt(Number.MAX_SAFE_INTEGER)),
116
- value: quantity(transaction.value),
117
- gasLimit: quantity(transaction.gasLimit, UINT64, true),
118
- data: transaction.data.toLowerCase(),
119
- };
120
- (0, evm_fees_1.assertEvmGasLimit)(BigInt(common.gasLimit), BigInt(chainId));
121
- const fees = type === 0
122
- ? { type: 0, gasPrice: quantity(transaction.gasPrice) }
123
- : {
124
- type: 2,
125
- maxFeePerGas: quantity(transaction.maxFeePerGas),
126
- maxPriorityFeePerGas: quantity(transaction.maxPriorityFeePerGas),
127
- };
128
- if (fees.type === 2 &&
129
- BigInt(fees.maxPriorityFeePerGas) > BigInt(fees.maxFeePerGas))
130
- throw invalid();
131
- const maximumFee = BigInt(common.gasLimit) *
132
- BigInt(fees.type === 0 ? fees.gasPrice : fees.maxFeePerGas);
133
- if (maximumFee + BigInt(common.value) > UINT256)
65
+ const expectedAddress = (0, address_1.getAddress)(account.expectedAddress);
66
+ const chainId = transaction.chainId;
67
+ if (transaction.from !== expectedAddress || network.chainId !== chainId)
134
68
  throw invalid();
135
69
  return Object.freeze({
70
+ selectedAccount,
136
71
  account: Object.freeze({
137
72
  id: account.id,
138
73
  type: account.type,
@@ -144,11 +79,11 @@ function snapshotPreparedEvmRequest(input) {
144
79
  slip44: 60,
145
80
  url: network.url,
146
81
  }),
147
- transaction: Object.freeze({ ...common, ...fees }),
82
+ transaction,
148
83
  });
149
84
  }
150
85
  function preparedEvmGuard(input) {
151
- const options = record(input, ['assertCurrent']);
86
+ const options = (0, evm_envelope_1.readEvmOwnData)(input, ['assertCurrent']);
152
87
  if (typeof options.assertCurrent !== 'function')
153
88
  throw invalid();
154
89
  const guard = options.assertCurrent;
@@ -164,23 +99,8 @@ function preparedEvmGuard(input) {
164
99
  };
165
100
  }
166
101
  /** Internal, network-free signing. The key never becomes part of the result. */
167
- function signPreparedEvmEnvelope(transaction, privateKey) {
168
- const unsigned = {
169
- type: transaction.type,
170
- to: transaction.to,
171
- chainId: BigInt(transaction.chainId),
172
- nonce: Number(transaction.nonce),
173
- value: BigInt(transaction.value),
174
- gasLimit: BigInt(transaction.gasLimit),
175
- data: transaction.data,
176
- ...(transaction.type === 0
177
- ? { gasPrice: BigInt(transaction.gasPrice) }
178
- : {
179
- maxFeePerGas: BigInt(transaction.maxFeePerGas),
180
- maxPriorityFeePerGas: BigInt(transaction.maxPriorityFeePerGas),
181
- }),
182
- };
183
- const expectedUnsigned = transaction_1.Transaction.from(unsigned).unsignedSerialized;
102
+ function signPreparedEvmEnvelope(input, privateKey) {
103
+ const { transaction, unsigned, expectedUnsigned } = (0, evm_envelope_1.prepareUnsignedEvmEnvelope)(input);
184
104
  const rawTransaction = (0, evm_local_signer_1.signTransaction)(unsigned, privateKey);
185
105
  const signed = (0, evm_submission_1.assertSignedEvmTransactionMatches)(rawTransaction, expectedUnsigned, transaction.from);
186
106
  if (signed.hash !== (0, crypto_1.keccak256)(rawTransaction))
@@ -1 +1 @@
1
- {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":";;AAkHA,gEA6GC;AAED,4CAkBC;AAGD,0DA2CC;AAjSD,4CAA4C;AAC5C,0CAA0C;AAC1C,oDAAiD;AAEjD,0CAAgD;AAChD,yDAAqD;AACrD,qDAAqE;AAqDrE,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAClC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAChC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AACjC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;AAE5E,6EAA6E;AAC7E,SAAS,MAAM,CACb,KAAc,EACd,IAAuB;IAEvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,MAAM,OAAO,EAAE,CAAC;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IACE,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC5B,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEnE,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,MAAM,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/D,IACE,CAAC,UAAU;YACX,CAAC,UAAU,CAAC,UAAU;YACtB,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YAE1D,MAAM,OAAO,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,KAAK;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;QACpE,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC;QAAE,MAAM,OAAO,EAAE,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjE,MAAM,OAAO,EAAE,CAAC;IAClB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,MAAM,OAAO,EAAE,CAAC;IAClD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,0BAA0B,CACxC,KAAc;IAEd,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACxE,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,EAAa,GAAG,CAAC;QACzB,OAAO,CAAC,EAAa,GAAG,UAAU;QACnC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC;QAE7D,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3E,IACE,OAAO,CAAC,IAAI,KAAK,UAAU;QAC3B,OAAO,CAAC,MAAM,KAAK,EAAE;QACrB,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ;QAC/B,CAAC,OAAO,CAAC,GAAG;QACZ,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,GAAG;QAClC,uGAAuG;QACvG,qCAAqC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAEvD,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,gFAAgF;IAChF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAC3D,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,cAAc,GAAG,MAAM,CAAC,wBAAwB,CACpD,IAAI,CAAC,WAAW,EAChB,MAAM,CACP,CAAC;IACF,IACE,CAAC,cAAc;QACf,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;QAE9D,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC;IAClC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;QAAE,MAAM,OAAO,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG;QACb,MAAM;QACN,MAAM;QACN,IAAI;QACJ,SAAS;QACT,OAAO;QACP,OAAO;QACP,UAAU;QACV,MAAM;KACP,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,CACxB,IAAI,CAAC,WAAW,EAChB,IAAI,KAAK,CAAC;QACR,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC;QACzB,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,cAAc,EAAE,sBAAsB,CAAC,CACxD,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACzD,IACE,IAAI,KAAK,eAAe;QACxB,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,OAAO;QAExD,MAAM,OAAO,EAAE,CAAC;IAClB,IACE,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ;QACpC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc;QAChD,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAEjD,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,OAAO;QACP,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnE,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC;QAClC,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;QACtD,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;KACrC,CAAC;IACF,IAAA,4BAAiB,EAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,MAAM,IAAI,GACR,IAAI,KAAK,CAAC;QACR,CAAC,CAAC,EAAE,IAAI,EAAE,CAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;QAChE,CAAC,CAAC;YACE,IAAI,EAAE,CAAU;YAChB,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;YAChD,oBAAoB,EAAE,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC;SACjE,CAAC;IACR,IACE,IAAI,CAAC,IAAI,KAAK,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QAE7D,MAAM,OAAO,EAAE,CAAC;IAClB,MAAM,UAAU,GACd,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9D,IAAI,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO;QAAE,MAAM,OAAO,EAAE,CAAC;IACjE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,EAAE,EAAE,OAAO,CAAC,EAAY;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,eAAe;SAChB,CAAC;QACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;KACnD,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACjD,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU;QAAE,MAAM,OAAO,EAAE,CAAC;IACjE,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC;IACpC,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAY,KAAK,EAAE,CAAC;QAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,2EAA2E;YAC3E,IACE,MAAM,KAAK,IAAI;gBACf,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC;gBAE5D,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,IAAI,SAAS,CACjB,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAgB,uBAAuB,CACrC,WAAmC,EACnC,UAAkB;IAKlB,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;QACpC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QACtC,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC5C,CAAC,CAAC;gBACE,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC;gBAC9C,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;aAC/D,CAAC;KACP,CAAC;IACF,MAAM,gBAAgB,GAAG,yBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC;IACvE,MAAM,cAAc,GAAG,IAAA,kCAAe,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAA,kDAAiC,EAC9C,cAAc,EACd,gBAAgB,EAChB,WAAW,CAAC,IAAI,CACjB,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,KAAK,IAAA,kBAAS,EAAC,cAAc,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,gBAAgB;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,cAAc;YACd,IAAI,EAAE,MAAM,CAAC,IAAK;YAClB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,IAAI,EAAE,MAAM,CAAC,IAAK;YAClB,WAAW;SACZ,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prepared-evm.js","sourceRoot":"","sources":["../../../src/transactions/prepared-evm.ts"],"names":[],"mappings":"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"}