Skip to content

Commit 1ba2597

Browse files
vm: fix modexp bug
1 parent f7b0cd4 commit 1ba2597

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

packages/vm/lib/evm/precompiles/05-modexp.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,6 @@ export default function (opts: PrecompileInput): ExecResult {
100100
const mStart = eEnd
101101
const mEnd = mStart.add(mLen)
102102

103-
const maxInt = new BN(Number.MAX_SAFE_INTEGER)
104-
const maxSize = new BN(2147483647) // ethereumjs-util setLengthRight limitation
105-
106-
if (bLen.gt(maxSize) || eLen.gt(maxSize) || mLen.gt(maxSize)) {
107-
return OOGResult(opts.gasLimit)
108-
}
109-
110-
if (mEnd.gt(maxInt)) {
111-
return OOGResult(opts.gasLimit)
112-
}
113-
114-
const B = new BN(setLengthRight(data.slice(bStart.toNumber(), bEnd.toNumber()), bLen.toNumber()))
115-
const E = new BN(setLengthRight(data.slice(eStart.toNumber(), eEnd.toNumber()), eLen.toNumber()))
116-
const M = new BN(setLengthRight(data.slice(mStart.toNumber(), mEnd.toNumber()), mLen.toNumber()))
117-
118103
if (!opts._common.eips().includes(2565)) {
119104
gasUsed = adjustedELen.mul(multComplexity(maxLen)).divn(Gquaddivisor)
120105
} else {
@@ -142,6 +127,21 @@ export default function (opts: PrecompileInput): ExecResult {
142127
}
143128
}
144129

130+
const maxInt = new BN(Number.MAX_SAFE_INTEGER)
131+
const maxSize = new BN(2147483647) // ethereumjs-util setLengthRight limitation
132+
133+
if (bLen.gt(maxSize) || eLen.gt(maxSize) || mLen.gt(maxSize)) {
134+
return OOGResult(opts.gasLimit)
135+
}
136+
137+
const B = new BN(setLengthRight(data.slice(bStart.toNumber(), bEnd.toNumber()), bLen.toNumber()))
138+
const E = new BN(setLengthRight(data.slice(eStart.toNumber(), eEnd.toNumber()), eLen.toNumber()))
139+
const M = new BN(setLengthRight(data.slice(mStart.toNumber(), mEnd.toNumber()), mLen.toNumber()))
140+
141+
if (mEnd.gt(maxInt)) {
142+
return OOGResult(opts.gasLimit)
143+
}
144+
145145
let R
146146
if (M.isZero()) {
147147
R = new BN(0)

0 commit comments

Comments
 (0)