viem 1.18.4 → 1.18.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # viem
2
2
 
3
+ ## 1.18.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1438](https://github.com/wagmi-dev/viem/pull/1438) [`8e52fcb8`](https://github.com/wagmi-dev/viem/commit/8e52fcb8565a9fadce4da31e924894881804f9d2) Thanks [@jxom](https://github.com/jxom)! - Fixed legacy EIP-155 transaction serializing.
8
+
3
9
  ## 1.18.4
4
10
 
5
11
  ### Patch Changes
@@ -73,11 +73,20 @@ function serializeTransactionLegacy(transaction, signature) {
73
73
  data ?? '0x',
74
74
  ];
75
75
  if (signature) {
76
- let v = 27n + (signature.v === 27n ? 0n : 1n);
77
- if (chainId > 0)
78
- v = BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);
79
- else if (signature.v !== v)
80
- throw new transaction_js_1.InvalidLegacyVError({ v: signature.v });
76
+ const v = (() => {
77
+ if (chainId > 0)
78
+ return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);
79
+ if (signature.v >= 35n) {
80
+ const inferredChainId = (signature.v - 35n) / 2n;
81
+ if (inferredChainId > 0)
82
+ return signature.v;
83
+ return 27n + (signature.v === 35n ? 0n : 1n);
84
+ }
85
+ const v = 27n + (signature.v === 27n ? 0n : 1n);
86
+ if (signature.v !== v)
87
+ throw new transaction_js_1.InvalidLegacyVError({ v: signature.v });
88
+ return v;
89
+ })();
81
90
  serializedTransaction = [
82
91
  ...serializedTransaction,
83
92
  (0, toHex_js_1.toHex)(v),
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../utils/transaction/serializeTransaction.ts"],"names":[],"mappings":";;;AAAA,gEAGoC;AAcpC,iDAAsE;AACtE,6CAAsC;AACtC,mDAAiE;AACjE,mDAAiE;AAEjE,iEAO+B;AAC/B,mEAIgC;AAChC,qEAGiC;AAkBjC,SAAgB,oBAAoB,CAGlC,WAAqC,EACrC,SAAqB;IAErB,MAAM,IAAI,GAAG,IAAA,0CAAkB,EAAC,WAAW,CAAuB,CAAA;IAElE,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,2BAA2B,CAChC,WAA6C,EAC7C,SAAS,CACmD,CAAA;IAEhE,IAAI,IAAI,KAAK,SAAS;QACpB,OAAO,2BAA2B,CAChC,WAA6C,EAC7C,SAAS,CACmD,CAAA;IAEhE,OAAO,0BAA0B,CAC/B,WAA4C,EAC5C,SAAS,CACmD,CAAA;AAChE,CAAC;AAxBD,oDAwBC;AAWD,SAAS,2BAA2B,CAClC,WAA2C,EAC3C,SAAqB;IAErB,MAAM,EACJ,OAAO,EACP,GAAG,EACH,KAAK,EACL,EAAE,EACF,KAAK,EACL,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,IAAI,GACL,GAAG,WAAW,CAAA;IAEf,IAAA,+CAAwB,EAAC,WAAW,CAAC,CAAA;IAErC,MAAM,oBAAoB,GAAG,IAAA,4CAAmB,EAAC,UAAU,CAAC,CAAA;IAE5D,MAAM,qBAAqB,GAAG;QAC5B,IAAA,gBAAK,EAAC,OAAO,CAAC;QACd,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,oBAAoB,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QACzD,YAAY,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QACzC,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACvB,EAAE,IAAI,IAAI;QACV,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,IAAI,IAAI,IAAI;QACZ,oBAAoB;KACrB,CAAA;IAED,IAAI,SAAS;QACX,qBAAqB,CAAC,IAAI,CACxB,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,CAAC,CAAC,EACrC,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,CAAC,EACjB,IAAA,cAAI,EAAC,SAAS,CAAC,CAAC,CAAC,CAClB,CAAA;IAEH,OAAO,IAAA,qBAAS,EAAC;QACf,MAAM;QACN,IAAA,gBAAK,EAAC,qBAAqB,CAAC;KAC7B,CAAiC,CAAA;AACpC,CAAC;AAWD,SAAS,2BAA2B,CAClC,WAA2C,EAC3C,SAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAClE,WAAW,CAAA;IAEb,IAAA,+CAAwB,EAAC,WAAW,CAAC,CAAA;IAErC,MAAM,oBAAoB,GAAG,IAAA,4CAAmB,EAAC,UAAU,CAAC,CAAA;IAE5D,MAAM,qBAAqB,GAAG;QAC5B,IAAA,gBAAK,EAAC,OAAO,CAAC;QACd,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,QAAQ,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QACjC,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACvB,EAAE,IAAI,IAAI;QACV,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,IAAI,IAAI,IAAI;QACZ,oBAAoB;KACrB,CAAA;IAED,IAAI,SAAS;QACX,qBAAqB,CAAC,IAAI,CACxB,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,CAAC,CAAC,EACrC,SAAS,CAAC,CAAC,EACX,SAAS,CAAC,CAAC,CACZ,CAAA;IAEH,OAAO,IAAA,qBAAS,EAAC;QACf,MAAM;QACN,IAAA,gBAAK,EAAC,qBAAqB,CAAC;KAC7B,CAAiC,CAAA;AACpC,CAAC;AASD,SAAS,0BAA0B,CACjC,WAA0C,EAC1C,SAAqB;IAErB,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAA;IAE1E,IAAA,8CAAuB,EAAC,WAAW,CAAC,CAAA;IAEpC,IAAI,qBAAqB,GAAG;QAC1B,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,QAAQ,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QACjC,GAAG,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QACvB,EAAE,IAAI,IAAI;QACV,KAAK,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3B,IAAI,IAAI,IAAI;KACb,CAAA;IAED,IAAI,SAAS,EAAE;QACb,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC7C,IAAI,OAAO,GAAG,CAAC;YAAE,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;aACrE,IAAI,SAAS,CAAC,CAAC,KAAK,CAAC;YACxB,MAAM,IAAI,oCAAmB,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA;QAEnD,qBAAqB,GAAG;YACtB,GAAG,qBAAqB;YACxB,IAAA,gBAAK,EAAC,CAAC,CAAC;YACR,SAAS,CAAC,CAAC;YACX,SAAS,CAAC,CAAC;SACZ,CAAA;KACF;SAAM,IAAI,OAAO,GAAG,CAAC,EAAE;QACtB,qBAAqB,GAAG;YACtB,GAAG,qBAAqB;YACxB,IAAA,gBAAK,EAAC,OAAO,CAAC;YACd,IAAI;YACJ,IAAI;SACL,CAAA;KACF;IAED,OAAO,IAAA,gBAAK,EAAC,qBAAqB,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"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"}
@@ -71,11 +71,23 @@ function serializeTransactionLegacy(transaction, signature) {
71
71
  data ?? '0x',
72
72
  ];
73
73
  if (signature) {
74
- let v = 27n + (signature.v === 27n ? 0n : 1n);
75
- if (chainId > 0)
76
- v = BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);
77
- else if (signature.v !== v)
78
- throw new InvalidLegacyVError({ v: signature.v });
74
+ const v = (() => {
75
+ // EIP-155 (explicit chainId)
76
+ if (chainId > 0)
77
+ return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n);
78
+ // EIP-155 (inferred chainId)
79
+ if (signature.v >= 35n) {
80
+ const inferredChainId = (signature.v - 35n) / 2n;
81
+ if (inferredChainId > 0)
82
+ return signature.v;
83
+ return 27n + (signature.v === 35n ? 0n : 1n);
84
+ }
85
+ // Pre-EIP-155 (no chainId)
86
+ const v = 27n + (signature.v === 27n ? 0n : 1n);
87
+ if (signature.v !== v)
88
+ throw new InvalidLegacyVError({ v: signature.v });
89
+ return v;
90
+ })();
79
91
  serializedTransaction = [
80
92
  ...serializedTransaction,
81
93
  toHex(v),
@@ -1 +1 @@
1
- {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializeTransaction.js","sourceRoot":"","sources":["../../../utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "1.18.4",
4
+ "version": "1.18.5",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -203,10 +203,23 @@ function serializeTransactionLegacy(
203
203
  ]
204
204
 
205
205
  if (signature) {
206
- let v = 27n + (signature.v === 27n ? 0n : 1n)
207
- if (chainId > 0) v = BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)
208
- else if (signature.v !== v)
209
- throw new InvalidLegacyVError({ v: signature.v })
206
+ const v = (() => {
207
+ // EIP-155 (explicit chainId)
208
+ if (chainId > 0)
209
+ return BigInt(chainId * 2) + BigInt(35n + signature.v - 27n)
210
+
211
+ // EIP-155 (inferred chainId)
212
+ if (signature.v >= 35n) {
213
+ const inferredChainId = (signature.v - 35n) / 2n
214
+ if (inferredChainId > 0) return signature.v
215
+ return 27n + (signature.v === 35n ? 0n : 1n)
216
+ }
217
+
218
+ // Pre-EIP-155 (no chainId)
219
+ const v = 27n + (signature.v === 27n ? 0n : 1n)
220
+ if (signature.v !== v) throw new InvalidLegacyVError({ v: signature.v })
221
+ return v
222
+ })()
210
223
 
211
224
  serializedTransaction = [
212
225
  ...serializedTransaction,