682 Commits

Author SHA1 Message Date
wborgeaud
46d5e62a13
Copy txn data to calldata (#935) 2023-04-01 07:34:38 +02:00
wborgeaud
8e04cbfe8d
Self-destruct list (#948) 2023-04-01 07:29:22 +02:00
wborgeaud
a926dcad22
Transaction validity checks (#949) 2023-04-01 07:24:02 +02:00
wborgeaud
2ca00a9ad4
Selfdestruct gas and set (#947)
* Add new segment and global metadata

* Insert into self-destruct set

* Implement sys_selfdestruct

* PR feedback

* Fix stack underflow

* Forgot that NOT 1 ≠ 0. Added %not_bit macro for that.
2023-03-31 11:13:36 +02:00
wborgeaud
56bf08921b
Charge gas for extcodecopy (#942)
* Charge gas for extcodecopy

* Check for size=0
2023-03-30 06:46:26 +02:00
Daniel Lubarov
f71d364237
Merge pull request #945 from mir-protocol/remove_CONSUME_GAS
Remove `CONSUME_GAS`
2023-03-29 13:17:06 -07:00
Hamish Ivey-Law
9480cbed99
Signed operations as syscalls (#933)
* Implement syscalls for BYTE, SIGNEXTEND, SAR, SLT and SGT.

* Implement SDIV and SMOD; minor documentation and tidying.

* Implement EXP.

* Add sys_byte to the syscall jumptable.

* Test suite for signed syscalls.

* Handle `EXIT_KERNEL` "properly".

* Add gas charges; rename label.

* Uppercase all opcodes.

* Add test for BYTE; fix bug in BYTE.

* Calculate and charge gas for calling `EXP`.

* Fix gas calculation for `exponent = 0`.

* Address Jacqui's comments.

* Remove BYTE syscall as it will be implemented natively.

* Oops, forgot to remove this bit.
2023-03-30 05:56:01 +11:00
Daniel Lubarov
2d87c5d627 Remove CONSUME_GAS
Now that gas info is in `kexit_info`.
2023-03-29 11:28:05 -07:00
Daniel Lubarov
834522a653
Merge pull request #939 from mir-protocol/termination_fixes
A few fixes for terminal instructions
2023-03-29 11:26:05 -07:00
Daniel Lubarov
be0cccdf95
Merge pull request #938 from mir-protocol/rework_create_create2
Rework CREATE, CREATE2 syscalls
2023-03-29 11:25:52 -07:00
Daniel Lubarov
39fdad8c86 Feedback 2023-03-29 11:00:41 -07:00
wborgeaud
a0d04ca3d8
Fix Wcopy when size=0 (#944) 2023-03-29 19:58:44 +02:00
wborgeaud
9f1a5f975c
Charge gas for keccak (#943) 2023-03-29 19:58:29 +02:00
Dmitry Vagner
c3a5fd8631 merge 2023-03-24 11:32:01 -07:00
Daniel Lubarov
911dfedd07 Rework CREATE, CREATE2 syscalls
The old code was outdated in various ways, e.g. it was trying to share code with contract-creation txns, so I would ignore the diff and just look at the new code.

Still a bunch of TODOs left here, like actually saving code that's returned.
2023-03-24 10:43:46 -07:00
Daniel Lubarov
b4eb837346 A few fixes for terminal instructions 2023-03-23 17:28:55 -07:00
wborgeaud
ce22d94518
Access lists (#937)
* Working linear search

* Working linear search for storage keys

* Macros

* Gas for wextaccount

* Add origin and to to the access list

* Handle precompiles

* Fixes

* Other opcodes

* Access list SLOAD

* Minor

* Add TODO for SSTORE

* Comments

* Clippy

* Minor

* PR feedback: cold_access

* PR feedback: simplify insert_accessed_addresses_no_return macro

* Fix sys_selfdestruct

* Store length in global metadata and store arrays in kernel memory

* Truncate address in all *CALL syscalls
2023-03-23 20:22:25 +01:00
Daniel Lubarov
f9fa38d3cd Fix new account insert key 2023-03-22 21:53:33 -07:00
Dmitry Vagner
7ff2122e46 Merge branch 'main' of github.com:mir-protocol/plonky2 into fp381-opcodes 2023-03-22 18:22:37 -07:00
wborgeaud
f4e65feb65
Fix bugs in wcopy and update_mem_words (#934)
* Fix bugs in wcopy and update_mem_words

* Update comment
2023-03-22 19:14:55 +01:00
wborgeaud
15bafce5dd
Implement CREATE2 address generation (#936)
* Implement create2 address gen

* Clippy

* Minor

* Wrong order

* Fix test

* Fix comment
2023-03-22 19:14:17 +01:00
Dmitry Vagner
874805cc65 Merge branch 'fp318' of github.com:mir-protocol/plonky2 into fp381-opcodes 2023-03-22 10:58:19 -07:00
Dmitry Vagner
1627a9a0d3 tests pass 2023-03-22 09:55:35 -07:00
wborgeaud
06936c7649
Implement various syscalls (#930)
* Bunch of syscalls

* Minor

* Minor

* Minor

* Add todo for overflow
2023-03-22 06:42:14 +01:00
Dmitry Vagner
0e8f6a2f68 test skeleton 2023-03-21 21:17:46 -07:00
Dmitry Vagner
9ea0ebd78f skeleton 2023-03-21 21:10:01 -07:00
Dmitry Vagner
13d2ed90d7 merge 2023-03-21 19:23:54 -07:00
wborgeaud
a79271a8ec
Minor account code fixes (#929)
* Fixes

* Fix

* Newline
2023-03-21 20:15:30 +01:00
Daniel Lubarov
e1ae539271 Fix test 2023-03-20 23:57:44 -07:00
Daniel Lubarov
afded1682b Contract creation fixes 2023-03-20 23:43:13 -07:00
wborgeaud
893b88c309
Implement syscalls for BALANCE and SELFBALANCE (#922)
* Implement syscalls for BALANCE and SELFBALANCE

* Remove stubs
2023-03-21 05:54:29 +01:00
Daniel Lubarov
fc6487cac0
Merge pull request #926 from mir-protocol/fix_gas
Fix GAS and implement storage value parsing
2023-03-20 18:29:59 -07:00
Daniel Lubarov
3c4bc1d824 Fix GAS and implement storage value parsing 2023-03-20 18:02:20 -07:00
Nicholas Ward
b16b82613e
Merge pull request #881 from mir-protocol/bignum-basic
Basic bignum operations
2023-03-20 13:09:17 -07:00
Nicholas Ward
f6b9d6ee2e addressed comments 2023-03-20 12:36:07 -07:00
Daniel Lubarov
bdf35374d5 Misc 2023-03-19 23:22:33 -07:00
Daniel Lubarov
b80a28dbd1 Misc 2023-03-19 22:52:49 -07:00
Daniel Lubarov
47fac8e35b Couple fixes & minor refactor 2023-03-19 22:35:53 -07:00
Nicholas Ward
64c76e76dd Merge branch 'main' into bignum-basic 2023-03-19 22:19:54 -07:00
Daniel Lubarov
f717a40b85 Charge for memory expansion 2023-03-19 20:17:30 -07:00
Nicholas Ward
e8405effa1 Merge branch 'main' into bignum-basic 2023-03-19 17:29:51 -07:00
Daniel Lubarov
7ed53142a0 Fix reads from not-found ext nodes 2023-03-19 14:13:42 -07:00
Daniel Lubarov
a05ed9fc3a Fix clobbering of RLP data memory 2023-03-19 11:49:15 -07:00
Nicholas Ward
c3ba7a8917 Merge branch 'main' into bignum-basic 2023-03-17 14:19:36 -07:00
Daniel Lubarov
8c692b72b0 Fix account cloning 2023-03-17 13:10:58 -07:00
Nicholas Ward
f514d966a7 Merge branch 'main' into bignum-basic 2023-03-17 12:02:01 -07:00
Daniel Lubarov
994c54abe6
Merge pull request #912 from mir-protocol/stack_on_panic
Log stack on panic
2023-03-17 11:46:46 -07:00
Nicholas Ward
cda31b5e07 Merge branch 'main' into bignum-basic 2023-03-16 15:05:59 -07:00
Nicholas Ward
38f79e4991 optimizations with rep 2023-03-16 14:58:31 -07:00
Nicholas Ward
92ee77869e Merge branch 'main' into hash-asm-optimization 2023-03-16 14:37:55 -07:00