Releases: 0xPolygonHermez/zkevm-rom
Releases · 0xPolygonHermez/zkevm-rom
v9.0.0-fork.13
ChangeLog
New features
- Update
CONST %FORK_ID = 13
- Enable the precompiled modexp
- Add
p256verify
precompiled
Fixes
- Fixes
pre-modexp
- Modexp new version
- Fix
poseidon
counters
What's Changed
- Feature/fork 13 by @laisolizq in #406
- Modexp Durian by @hecmas in #408
- Feature/add pre eip7212 by @laisolizq in #410
- P256VERIFY precompile by @hecmas in #407
- update VCs tests by @laisolizq in #411
- Fixing modexp counters by @hecmas in #412
- fix return pre-p256verify by @laisolizq in #414
- Feature/audit touched by @laisolizq in #413
- Modifications p256verify by @hecmas in #415
- fix pre-modexp fails ctx 0 by @laisolizq in #417
- Fix/modexp audit by @laisolizq in #416
- internal audit durian by @laisolizq in #418
- fork.13 poseidon counters fix by @krlosMata in #420
- add external audit by @krlosMata in #422
Full Changelog: v8.0.0-fork.12...v9.0.0-fork.13
v8.0.0-fork.12
ChangeLog
There are no changes in the zkevm-rom
from fork.11
. It is updated to fork.12
, and the package.json
is updated.
In fork.12, there are important changes in zkevm-contracts. Among these changes, there are:
v7.0.0-fork.11
ChangeLog
New features
- TOTAL_STEPS_LIMIT = 2**25
- SAFE_RANGE = 80
Fixes
- Fix push at last opcode
- Don't revert touched address on deploy collision
What's Changed
- add audit report by @krlosMata in #381
- Dont revert touched address on deploy collision by @ignasirv in #390
- Fix issue push at last opcode by @ignasirv in #398
- Feature/25 update by @laisolizq in #396
Full Changelog: v6.0.1-fork.9...v7.0.0-fork.11
The only change between
fork.10
andfork.11
isTOTAL_STEPS_LIMIT
andSAFE_RANGE
. The comparison is being made withfork.9
.
v7.0.0-fork.10
ChangeLog
New features
- TOTAL_STEPS_LIMIT = 2**24
- SAFE_RANGE = 40
Fixes
- Fix push at last opcode
- Don't revert touched address on deploy collision
What's Changed
- add audit report by @krlosMata in #381
- Dont revert touched address on deploy collision by @ignasirv in #390
- Fix issue push at last opcode by @ignasirv in #398
- Feature/24 update by @laisolizq in #397
Full Changelog: v6.0.1-fork.9...v7.0.0-fork.10
Elderberry v2 (fork.9)
ChangeLog
fixes
- allow to prove zero value in
l1InfoTreeRoot
What's Changed
- Feature/fix prove zeroes by @krlosMata in #363
- update packages to fork.9 by @krlosMata in #366
- Develop by @krlosMata in #367
- breaks dependency by @krlosMata in #369
Full Changelog: v5.0.0-fork.8...v6.0.1-fork.9
Elderberry (fork.8)
ChangeLog
new features
- deactivate
modExp
support - set
BlockGasLimit
to2^50
fixes
- return value in
modExp
in large modExp (> 32 bytes) ecPairings
substraction valueecPairings
zk-counters checkslog
opcode to increase nexthashP
address ti use just after set it- detect empty list at RLP level and jump directly to
invalidTxRLP
error - set
txStatus
to 0 when a precompile smart contract is not supported - check poseidon padding counters against
%MAX_CNT_PADDING_PG
optimization
- reduce
push
opcode zk-counters consumption
What's Changed
- Feature/reduce push steps by @krlosMata in #345
- fix call precompiled revert by @laisolizq in #349
- Develop no opt by @laisolizq in #344
- update packages to fork.8 by @krlosMata in #352
- Develop by @krlosMata in #353
Full Changelog: v4.0.0-fork.7...v5.0.0-fork.8
Etrog (fork.7)
ChangeLog
Precompiled
- add support for the following precompiled smart contracts
- sha256
- modexp
- ecadd
- ecmul
- ecpairing
L1InfoTree
- merkle tree that contains historical data
- saved in the smart contracts
- each leaf contains the following parameters:
ger
: global exit rootblockHashL1
: blockHash of the L1 networkminTimestamp
: minimum timestamp
changeL2Block transaction
- add parsing and processing for
changeL2Block
marker in the batch data - allows to change L2Block inside a batch
- format:
fields: [type | deltaTimestamp | indexL1InfoTree ]
bytes: [ 1 | 4 | 4 ]
- where
type
: transaction type to allow differentiate between preEIP155 and legacy transactionsdeltaTimestamp
: time to add to previous block in order to compute the current block timestampindexL1InfoTree
: leaf index in the l1InfoTree. The index will determine the parameters to insert into L2
- leaf data is verified through
smtVerify
function against theL1InfoRoot
(coming from the smart contracts)
BlockInfoTree
- Add merkle-tree to include all the block data while the L2 Block is being processed
- allow to verify data returned by the RPC
Virtual counters
- modify tooling and test scripts to support virtual counters
What's Changed
- Develop etrog by @krlosMata in #319
- Feature/vcounters 2 by @ignasirv in #321
- fork 7 by @krlosMata in #325
Full Changelog: v3.0.0-fork.6...v4.0.0-fork.7
incaberry (fork.6)
Changelog
ecrecover
- update
sqrtFpEc
function to return root aligned with parity specified, reducing number of binaries used in ROM - added a new specific error code for invalid point
- do not allow signatures from private key
0x0000000000000000000000000000000000000000000000000000000000000000
- do not allow signatures from private key
- update
- arithmetic instruction
- new feature on arithmetic state machine that checks outputs to be alias-free and checks that
x1
&x2
are different, reducing number of binaries used in ROM
- new feature on arithmetic state machine that checks outputs to be alias-free and checks that
What's Changed
- Do not skip tests in
run-tests-zkasm.js
by @MCJOHN974 in #306 - Feature/incaberry by @krlosMata in #310
- Develop by @krlosMata in #311
New Contributors
- @MCJOHN974 made their first contribution in #306
Full Changelog: v2.0.0-fork.5...v3.0.0-fork.6
dragonfruit (fork.5)
Changelog
new features
- add support for
push0
opcode - implement
effectiveGasPrice
mechanism- add an additional byte for each transaction to be able to apply a % of the transaction
gasPrice
- add an additional byte for each transaction to be able to apply a % of the transaction
- add
eventLog
event wheninvalidRLP
is triggered
Fixes
- fix
calldataload
&calldatacopy
call on constructor- bytecode was fetched instead of zero
- fix large size calldata in internal transactions
- override memory region in zkEVM when calldata was larger than 2MB
- calldata is handled now via a pointer to the previous context
- fix
gasRefund
- Update
gasRefund
after check bytecode starts with0xEF
- Update
- fix revert precompiled behaviour
- clears return buffer when calling a non-supported precompiled
- fix
memAlign
counter atcalldatacopy
opcode - fix adding zk-counters check at
endDeploy
label
Github automatic generation changelog based on PR
- update LICENSE by @zkronos73 in #277
- update README.md by @zkronos73 in #278
- add Spearbit audit reports by @zkronos73 in #279
- add audit report by @zkronos73 in #280
- add issues templates & CODEOWNERS by @krlosMata in #283
- Feature/run tests zkasm by @krlosMata in #282
- add full test read-push by @krlosMata in #285
- Feature/fix rlp push0 by @laisolizq in #286
- Set on update storage at the beginning of sstore by @ignasirv in #288
- review changes by @krlosMata in #291
- Effective gas implementation by @ignasirv in #290
- update packages versions by @krlosMata in #293
- add audits by @krlosMata in #299
- Feature/pre develop by @krlosMata in #304
- Develop by @krlosMata in #305
Full Changelog: v1.1.0-fork.4...fork.5
cherry (v1.0.0-fork.3)
What's Changed
- fix readPush by @laisolizq in #269
- Feature/forkid 3 audit fixes by @krlosMata in #268
- add hexens audit report by @zkronos73 in #270
- update packages by @krlosMata in #271
- Develop by @krlosMata in #272
Full Changelog: v0.8.0.0-fork.2...v1.0.0-fork.3