Commit Graph
4241 Commits
Author SHA1 Message Date
wborgeaud b116929f11 Delete touched recipient in EOA -> EOA (#1037) 2023-05-15 20:38:06 +02:00
Nicholas Ward 6ebee38e72 fix 2023-05-15 11:02:21 -07:00
wborgeaud d05db4973d Don't touch contract address in DELEGATECALL or CALLCODE (#1036)
* Don't touch address in DELEGATECALL or CALLCODE

* Minor
2023-05-15 18:41:21 +02:00
wborgeaud bfd6834dc2 Journal of state changes + state reversion (#1028)
* Add segments and global metadata

* Add journal asm files

* Start revert

* Revert access lists

* Revert balance transfer

* Revert code change

* Revert nonce change

* Revert storage change

* Checkpoints

* Add some journal entries

* Add some journal entries

* Add some journal entries

* Fix revert

* Checkpoint in sys_call

* Minor

* PR feedback

* More checkpoints

* Fix checkpoint check

* Minor

* Checkpoints in precompiles

* Storage change checkpoint

* Add touched addresses

* Add touched addresses revert

* Add touched addresses journal events

* Delete all empty touch addresses

* Implement selfdestruct

* Update aggregator.rs
2023-05-12 13:04:46 +02:00
wborgeaud 74ba303255 MPT deletion (#1025)
* First try

* Fixes

* Fix sstore

* Comments

* Clippy

* Fix aggregator.rs

* PR feedback
2023-05-11 14:56:10 +02:00
wborgeaud 202985b24f Fix CALL gas (#1030)
* Fix call gas + precompiles can be non-existent

* Memory expansion before call gas

* Minor

* Add call_gas.asm

* EIP-2200: If gasleft is less than or equal to gas stipend, fail the current call frame with ‘out of gas’ exception.
2023-05-11 14:45:32 +02:00
wborgeaud 944d4a2460 SSTORE refund (#1018)
* SSTORE refund

* SSTORE refund

* Minor
2023-05-11 14:18:34 +02:00
Hamish Ivey-Law c134b59763 Cross-table lookup for arithmetic stark (#905)
* First draft of linking arithmetic Stark into the CTL mechanism.

* Handle {ADD,SUB,MUL}FP254 operations explicitly in `modular.rs`.

* Adjust argument order; add tests.

* Add CTLs for ADD, MUL, SUB, LT and GT.

* Add CTLs for {ADD,MUL,SUB}MOD, DIV and MOD.

* Add CTLs for {ADD,MUL,SUB}FP254 operations.

* Refactor the CPU/arithmetic CTL mapping; add some documentation.

* Minor comment fixes.

* Combine addcy CTLs at the expense of repeated constraint evaluation.

* Combine addcy CTLs at the expense of repeated constraint evaluation.

* Merge `*FP254` CTL into main CTL; rename some registers.

* Connect extra argument from CPU in binary ops to facilitate combining with ternary ops.

* Merge modular ops CTL into main CTL.

* Refactor DIV and MOD code into its own module.

* Merge DIV and MOD into arithmetic CTL.

* Clippy.

* Fixes related to merge.

* Simplify register naming.

* Generate u16 BN254 modulus limbs at compile time.

* Clippy.

* Add degree bits ranges for Arithmetic table.
2023-05-11 03:29:06 +10:00
Nicholas Ward 779456c2c9 Merge pull request #1029 from mir-protocol/precompile-memory-context-change
Use current memory context in hash precompiles
2023-05-10 10:06:00 -07:00
Nicholas Ward 6f4f00c6f8 Merge pull request #1027 from mir-protocol/memory-refactor
Memory refactor to make code more re-usable
2023-05-10 10:05:03 -07:00
Hamish Ivey-Law 2c5f6fd62a Fix compile time problems and generic hash implementation (#1024)
* Fix egregious magic number.

* Remove generic consts from core permutations.

* Remove redundant `where` clauses.

* Remove HashConfig and friends.

* Refactor Permutation code.

* Remove redundant `where` clauses and `use`s.

* Introduce AlgebraicPermutation to wrap `[Target; WIDTH]`s.

* Remove `generic_const_expr` feature from plonky2!

* Remove `generic_const_expr` feature from plonky2!

* Compile time fixed! Start removing `generic_const_expr` from evm.

* Remove redundant `where` clauses from Starky.

* Remove `generic_const_expr`s from benchmarks.

* Remove redundant HASH_SIZE `where` clause.

* Clippy.

* Fix unrelated OsRng issue in `bench_recursion`.

* Fix function doc.
2023-05-11 02:59:02 +10:00
Nicholas Ward 76fb31606a Merge branch 'memory-refactor' into precompile-memory-context-change 2023-05-10 09:55:59 -07:00
Nicholas Ward 0d9e321647 fix (mstore_unpacking returns offset) 2023-05-10 09:55:35 -07:00
Nicholas Ward 97aedd11cf Merge branch 'memory-refactor' into precompile-memory-context-change 2023-05-10 09:22:04 -07:00
Nicholas Ward 6e7fa6da02 fix 2023-05-10 09:21:52 -07:00
Nicholas Ward 675d6440d3 Merge branch 'memory-refactor' into precompile-memory-context-change 2023-05-10 09:13:29 -07:00
Nicholas Ward 57bcb45104 use mstore_unpacking and mload_packing 2023-05-10 09:12:30 -07:00
Nicholas Ward 6669f73abe use mstore_unpacking and mload_packing 2023-05-10 09:09:21 -07:00
Nicholas Ward af12368a7b addressed comments & cleanup 2023-05-10 08:48:05 -07:00
Nicholas Ward 98a75774d4 cleanup 2023-05-10 08:39:35 -07:00
Nicholas Ward 5dc043aa4c Merge pull request #1012 from honeywest/transpose
optimize transpose_in_place_square_small code
2023-05-09 13:22:01 -07:00
Nicholas Ward a4a4fbb39b fmt 2023-05-09 10:57:59 -07:00
Nicholas Ward 057b650fc2 fix 2023-05-08 16:35:58 -07:00
Nicholas Ward a076da7541 fix 2023-05-08 16:32:36 -07:00
Nicholas Ward 24159886eb precompile memory context change 2023-05-08 16:23:14 -07:00
Nicholas Ward d9694d95a6 fix 2023-05-08 16:22:12 -07:00
Nicholas Ward 446c3b7140 fix 2023-05-08 16:02:43 -07:00
Nicholas Ward b566dbd735 refactor memory/core.asm to make code more reusable 2023-05-08 15:52:35 -07:00
Daniel Lubarov 46c7903b5d Merge pull request #1023 from topos-network/clippy
Fix clippy
2023-05-08 10:00:45 -07:00
Robin Salen 92c2378c6a Fix clippy 2023-05-08 12:00:52 +02:00
wborgeaud f11921c9ad Fix doubly_encode_rlp_scalar in the 0 case. (#1022) 2023-05-04 17:51:27 +02:00
Hamish Ivey-Law 653a6b15de Remove generic_const_exprs dependency from field crate. (#1020) 2023-05-04 07:28:50 +10:00
Nicholas Ward 4380395e8b Merge pull request #1017 from mir-protocol/expmod-fix
expmod edge case fix
2023-05-02 10:46:39 -07:00
Nicholas Ward 91067e58ba expmod edge case fix 2023-05-02 10:45:43 -07:00
Daniel Lubarov b159c9e791 Merge pull request #1013 from topos-network/overflow-check
Address overflow-related TODOs in ASM code.
2023-05-02 10:22:53 -07:00
Nicholas Ward f0df03f65a Merge pull request #1009 from mir-protocol/expmod_precompile
expmod precompile calling code
2023-05-02 08:14:19 -07:00
Nicholas Ward 099e7946e7 fixes 2023-05-02 08:13:49 -07:00
Robin Salen 17a7c57d03 Change add_or_fault macro 2023-05-02 08:22:00 +02:00
Linda Guiga 1f39c555a9 Address overflow-related TODOs in ASM code, using a macro add_or_fault. This is related to https://github.com/mir-protocol/plonky2/pull/930/files/a4ea0965d79561c345e2f77836c07949c7e0bc69 2023-05-02 08:22:00 +02:00
Daniel Lubarov 40515dc66a Merge pull request #1014 from toposware/bootstrap_constraint
Constrain memory channels at end of bootstrapping
2023-05-01 20:27:41 -07:00
Nicholas Ward f3de2afc3b remove test file 2023-05-01 15:34:23 -07:00
Nicholas Ward cae5a2cf21 fix 2023-05-01 15:25:45 -07:00
Nicholas Ward 050c2e657e fix: calculate gas properly 2023-05-01 13:03:48 -07:00
Nicholas Ward ab8ebdfb3a Merge pull request #1016 from mir-protocol/remove-proof-challenges-serialization
remove ProofChallenges serialization
2023-05-01 11:07:26 -07:00
Nicholas Ward 8d738729e8 Merge pull request #1015 from mir-protocol/clippy-fix
Fix for updated clippy
2023-05-01 11:07:06 -07:00
Nicholas Ward ade5b433ae fix 2023-05-01 10:58:56 -07:00
Nicholas Ward 30e58ad22e remove ProofChallenges serialization 2023-05-01 10:33:53 -07:00
Nicholas Ward 8358b85d9f remove unneeded mut 2023-05-01 08:36:16 -07:00
Nicholas Ward 08e6c3521c addressed comments 2023-05-01 08:09:13 -07:00
Nicholas Ward 037c2f5ee8 addressed comments 2023-05-01 08:04:14 -07:00