v0.1.0
What's Changed
- feat: impl mock stack by @jobez in #25
- 🚧 init stop and arithmetic operations by @AbdelStark in #29
- Init repository structure by @AbdelStark in #30
- feat: mutable stack by @enitrat in #31
- chore: bump to 1.0.0-rc0 by @enitrat in #33
- feat: memory by @enitrat in #34
- feat: missing stack features & refactoring by @enitrat in #35
- feat: cleanup kakarot ssj to match latest version of cairo by @Eikix in #38
- Feat/devcontainer by @Eikix in #40
- refactor: use Nullable in Stack by @enitrat in #47
- dev: update scarb & use asdf version management by @enitrat in #48
- dev: memory optimisation by @enitrat in #52
- refactor: memory structure by @enitrat in #53
- feat: first execution context skeleton by @enitrat in #56
- feat: 0x00 opcode by @enitrat in #58
- feat:two's complement division by @enitrat in #68
- tests: execution context by @enitrat in #57
- feat: arithmetic opcodes by @enitrat in #66
- chore: bump scarb 0.6.1 by @enitrat in #71
- feat: 0x05 sdiv by @enitrat in #69
- feat: create first version of skeleton for kakarot ssj by @Eikix in #42
- dev: add changelog and enforce in ci by @ftupas in #76
- feat: Opcode 0x0A - EXP by @enitrat in #74
- doc: add migration markdown doc by @Eikix in #78
- feat: 0x09-MULMOD by @enitrat in #82
- Docs/leaner comments by @Eikix in #87
- fix: addmod by @enitrat in #88
- refactor: u256_signed_div by @enitrat in #90
- chore: bump scarb by @enitrat in #92
- chore: remove _ prefixes by @enitrat in #95
- feat: 0x07-smod by @enitrat in #96
- feat: 0x0B -SIGNEXTEND by @enitrat in #132
- Feat/xor by @Eikix in #133
- feat: implement and by @Eikix in #137
- feat: implement not by @Eikix in #136
- feat: implement DUP1 to DUP16 by @lambda-0x in #139
- Refactor ExecutionContext by Separating into Static and Dynamic structs by @danilowhk in #140
- feat: scripts for gas estimates snapshots by @enitrat in #143
- Feat/stack nopanic by @Eikix in #141
- Feat/error handling execution by @Eikix in #148
- refactor: box-based context by @enitrat in #146
- feat: pre-push hook and CI gas artifacts by @enitrat in #147
- feat: impl byte by @Eikix in #162
- refactor: scarb workspaces by @enitrat in #164
- feat: add makefile by @enitrat in #171
- feat: add gas-comparison PR bot by @enitrat in #173
- dev: add pre-commit hook to format project by @aniketpr01 in #174
- chore: bump scarb by @enitrat in #179
- feat: delete stale and label action by @Eikix in #167
- feat(block_information): add timestamp opcode by @LucasLvy in #180
- feat(environmental_information): implement ADDRESS opcode by @lambda-0x in #181
- bug: add missing
?
operators in methods andunwrap
s in tests by @lambda-0x in #182 - chore: delete manual changelog flow by @Eikix in #188
- feat: add 0x34-CALLVALUE opcode by @ftupas in #186
- feat(evm): add number opcode by @LucasLvy in #193
- docs: execution context by @enitrat in #176
- feat(evm): add basefee opcode by @LucasLvy in #191
- feat(evm): add gaslimit opcode by @LucasLvy in #192
- refacto(evm): improve split word by 2x by @LucasLvy in #196
- fix: gas reports by @enitrat in #217
- feat(evm): add push{i} opcodes by @LucasLvy in #195
- refactor: simplify returns by @lambda-0x in #201
- feat: implement 0x36 - CALLDATASIZE Opcode by @TAdev0 in #200
- feat: implement 0x46 - CHAINID Opcode by @Quentash in #205
- feat: implement 0x11 - GT opcode by @dbejarano820 in #220
- feat: implement 0x3A - GASPRICE Opcode by @TAdev0 in #204
- feat: implement 0x38 - CODESIZE Opcode by @khaeljy in #218
- feat: implement 0x3D - RETURNDATASIZE Opcode by @khaeljy in #202
- feat: implement 0x39 - CODECOPY Opcode by @khaeljy in #219
- fix: CI by @enitrat in #225
- revert unintended changes by @enitrat in #226
- fix: #199 by @enitrat in #228
- feat: derive default trait by @enitrat in #231
- feat: EOA bytecode and bytecode_len implementation by @danilowhk in #224
- feat: add bitshift library and refactor BYTE opcode by @Eikix in #175
- fix: integer underflow by @lambda-0x in #234
- feat: implement 0x12 - SLT opcode by @khaeljy in #235
- feat: implement 0x1C - SHR opcode by @khaeljy in #237
- feat: implement 0x1D - SAR opcode by @khaeljy in #238
- dev: implement Into<bool,u256> trait by @khaeljy in #240
- feat: 0x1B - SHL opcode by @trbutler4 in #241
- fix: rename bitwise to bitshift by @enitrat in #236
- Fix returned_data to return_data by @danilowhk in #268
- [doc] Replace u128 by u256 by @ClementWalter in #272
- Fix call_data to calldata by @danilowhk in #274
- feat: implement 0x13 - SGT Opcode by @TAdev0 in #271
- feat: implement 0x3E - RETURNDATACOPY Opcode by @khaeljy in #203
- feat: implement PC opcode by @lambda-0x in #264
- feat: implement 0x35 - CALLDATALOAD Opcode by @Quentash in #198
- feat: implement 0x15 - ISZERO opcode by @Noeljarillo in #232
- implement LT opcode by @glihm in #221
- docs: update all contributors list + opcodes parity table by @kariy in #287
- feat: implement 0x50 - POP Opcode by @Quentash in #285
- feat: span pad end zeroes by @enitrat in #277
- fix: store_aligned_words slice by @enitrat in #273
- bug: Memory expansion should only increments modulo 32 by @khaeljy in #284
- docs: contract storage design doc by @enitrat in #280
- feat: inline stack/memory methods by @enitrat in #295
- Fix compare-snapshot script by @ClementWalter in #318
- feat: implement 0x52 - MSTORE Opcode by @Quentash in #290
- implement 0x17 - OR opcode #12 by @Noeljarillo in #292
- feat: implement 0x53 - MSTORE8 Opcode by @khaeljy in #321
- feat: implement 0x51 - MLOAD Opcode by @khaeljy in #266
- fix: load_n_internal by @enitrat in #331
- feat: implement 0x37 - CALLDATACOPY Opcode by @khaeljy in #197
- chore: clean codebase by @enitrat in #339
- add msize opcode by @rkdud007 in #286
- Fix compare_snapshot CI by @ClementWalter in #341
- dev: move pow to constants by @lambda-0x in #332
- feat: add tests for JUMP instruction by @lambda-0x in #291
- feat(evm): add exec_return opcode by @LucasLvy in #328
- feat: implement 0x14 - EQ Opcode by @alextnetto in #323
- Link to get Github token for .env by @alextnetto in #346
- feat: implement pop_type methods and use them by @lambda-0x in #340
- feat: add a store_padded_segment method to memory by @khaeljy in #343
- refactor: remove legacy gas calculations by @enitrat in #348
- Feat: Divide Bitshift into Bitshift and WrappingBitshift by @trbutler4 in #344
- feat: feat/implement_0x90_SWAP1_Opcode by @Noeljarillo in #342
- feat: implement JUMP instruction by @lambda-0x in #350
- feat: Create a i256 type with its associated methods by @khaeljy in #352
- feat: implement JUMPI tests by @lambda-0x in #355
- feat: add comment for JUMPDEST opcode by @lambda-0x in #354
- feat: implement JUMPI instruction by @lambda-0x in #356
- Update contributors by @TAdev0 in #361
- Fix: changed endian syntax to le/be by @Quentash in #362
- docs: evm-machine design doc by @enitrat in #351
- Final name update by @TAdev0 in #363
- delete_duplicate by @TAdev0 in #364
- docs: contract storage design doc by @enitrat in #360
- feat: implement 0x20 - SHA3 Opcode by @Quentash in #281
- feat: store_byte memory method by @enitrat in #329
- ci: log result by @enitrat in #347
- Add trunk by @ClementWalter in #368
- Replace print with logger in snapshot script by @ClementWalter in #376
- Fix no GITHUB_STEP_SUMMARY by @ClementWalter in #378
- Fix summary bis by @ClementWalter in #379
- Fix summary ter by @ClementWalter in #380
- Dev: fix devcontainer by @khaeljy in #382
- feat: update memory with new active segment by @Eikix in #371
- feat: update stack by @Eikix in #375
- Dev: replace all
*_div_rem
byDivRem::div_rem
by @khaeljy in #381 - docs: bytecode storage by @enitrat in #372
- Feat/execution context update by @Eikix in #384
- dev: refactor constants to be base 2 instead of base 256 by @lambda-0x in #365
- feat: v2.3.0-rc0, clean and sort codebase, add documentation by @enitrat in #385
- feat: implement exec_caller by @Eikix in #386
- refactor: refactor child context to be child context return data by @Eikix in #388
- feat: A0-A4 - LOG0-4 Opcode by @Quentash in #322
- feat: origin by @Eikix in #399
- feat: sload opcode by @enitrat in #396
- feat: create kakarot core smart contract by @Eikix in #401
- feat: ownable component by @enitrat in #409
- feat: sstore by @enitrat in #415
- feat: finalize storage changes by @enitrat in #417
- dev: Exponentiation & Bitshift generics by @akhercha in #410
- refactor: update eoa by @Eikix in #403
- feat: update kakarot core with minimal functions by @Eikix in #416
- fix: returndata by @enitrat in #419
- fix: exponential by @greged93 in #420
- Feat/compute sn address by @Eikix in #418
- Feat/balance by @Eikix in #427
- feat: contract account bytecode storage by @enitrat in #425
- feat: add upgradable component by @bajpai244 in #431
- dev: refactor from_byte by @chachaleo in #432
- Implementation of rlp::decode() by @Quentash in #405
- Feat/selfbalance by @Eikix in #434
- feat: execute by @enitrat in #430
- feat: ContractAccount storage methods by @enitrat in #438
- Feat/blockhash by @Eikix in #435
- feat: rlp string encoding by @enitrat in #445
- feat: account model by @enitrat in #449
- Feat/extcodehash by @Eikix in #443
- fix: fix chain id inconsistency by @bajpai244 in #456
- Feat/extcodesize by @Eikix in #447
- feat: scarb 2.3.0 by @Eikix in #462
- feat: exec call by @Eikix in #441
- Feat/extcodecopy by @Eikix in #450
- feat: add gas and randao by @Eikix in #452
- chore: make contract crates compilable by @enitrat in #472
- Feat/add upgradabeality to eoa by @bajpai244 in #439
- feat: coinbase by @Eikix in #466
- feat: deploy contract account by @enitrat in #460
- feat: fetch account from SN by @enitrat in #478
- refactor: eoa deployment by @enitrat in #476
- feat: prepare account model by @enitrat in #479
- feat: add handle_eth_call by @Eikix in #473
- feat: create an account transparent proxy by @Eikix in #483
- fix: fix check if context is static in sstore, create, create2 by @Eikix in #492
- Refactor/return data by @Eikix in #491
- dev: improve rlp.cairo to support recursive list by @Quentash in #457
- Feat/ca sn contract by @Eikix in #486
- feat: pending state by @enitrat in #489
- fix: fix parsing of default value for int
0
from byte[0x80]
by @bajpai244 in #500 - script compute_starknet_address.ts by @chachaleo in #493
- feat: account infinite token approval by @enitrat in #505
- Feat/value transfer by @enitrat in #506
- dev: Added new #[abi(embed_v0)] notation by @akhercha in #514
- refactor: flatten folder structure by @Eikix in #515
- feat: compute create 2 address helpers by @Eikix in #510
- Feat/delegate call by @Eikix in #508
- feat: add legacy transaction decoding by @bajpai244 in #507
- feat: integrate state by @enitrat in #517
- dev: Refactor test contracts deployment by @akhercha in #521
- feat: add create helper logic and create2 by @Eikix in #520
- docs: update state doc by @enitrat in #527
- refactor: account model by @enitrat in #526
- feat: optimize decode_legacy_tx by @bajpai244 in #525
- docs: fix bytecode storage doc by @enitrat in #528
- feat: add eip-2718 tx decode by @bajpai244 in #529
- Feat: implement
decode
and islegacy tx
by @bajpai244 in #531 - Refactor/account model by @enitrat in #533
- dev: optimize to_u64_words to use span as input by @enitrat in #534
- Feat : Implementation of RLP::encode() by @Quentash in #513
- feat: implement eth transaction validate by @bajpai244 in #536
- fix: delegatecall caller by @enitrat in #543
- feat: chain_id in eao by @chachaleo in #547
- feat: implement some remaining todos by @enitrat in #549
- feat: selfdestruct by @enitrat in #554
- Revert "feat: selfdestruct" by @Eikix in #555
- feat: seperate target address and the code address by @bajpai244 in #553
- feat: delegate call test by @bajpai244 in #557
- feat: add callcode by @bajpai244 in #559
- chore: bump cairo by @enitrat in #548
- feat: send transaction by @greged93 in #560
- feat: compute contract address by @enitrat in #563
- dev: import alexandria as local crate by @enitrat in #566
- bug: RLP::decode() should return an empty string instead of "0" when decoding 0x80 by @Quentash in #539
- feat: selfdestruct by @enitrat in #567
- chore: bump cairo to nigtly by @enitrat in #570
- dev: Add builder pattern for the machine object in tests by @edisontim in #558
- feat: add
__execute__
for eoa by @bajpai244 in #564 - docs: Added missing contributors by @akhercha in #578
- add_transfer update by @Mohiiit in #575
- feat: deploy tx by @enitrat in #568
- refactor: account balances by @enitrat in #569
- dev: address address-related todos by @enitrat in #573
- feat: add more supported opcodes by @Eikix in #579
- dev: remove available_gas attributes by @enitrat in #589
- feat: revert-behavior by @enitrat in #580
- feat: add
__validate__
to EOA by @bajpai244 in #576 - feat: fix coinbase by @Eikix in #581
- docs: improve docs by @enitrat in #591
- refactor: fix warnings post cairo bump by @enitrat in #599
- refactor: use box_snapshot by @enitrat in #597
- Feat/gas accounting static by @Eikix in #596
- tests: create opcode by @enitrat in #594
- feat: add testing for call_helpers by @bajpai244 in #593
- feat: architecture refactor by @enitrat in #604
- ci: add workflow dispatch event by @enitrat in #613
- build: contract artifacts by @enitrat in #612
- feat: memory gas costs by @enitrat in #606
- feat: set data structure by @enitrat in #609
- fix: precompile contracts limit address by @greged93 in #614
- feat: valid jumps by @bajpai244 in #607
- feat: address access list by @enitrat in #615
- feat(gas): warm/cold storage accesses by @enitrat in #618
- fix: is_precompile by @enitrat in #626
- fix: deploy-tx rlp decoding by @enitrat in #629
- refactor: gas_left VM field by @enitrat in #631
- feat: ensure checks by @enitrat in #625
- feat: checked math by @enitrat in #634
- feat: add event emission to
__execute__
by @bajpai244 in #636 - BUG : environment information opcodes should grab info from the environment struct, not syscalls by @TAdev0 in #635
- feat: Added calculate_intrinsic_cost by @akhercha in #640
- feat(gas): finalize contract creation & handle revert opcode executio… by @enitrat in #637
- fix: fetching storage of undeployed CA by @enitrat in #639
- feat: put extraction of y_parity in kakarot codebase by @bajpai244 in #643
- feat: charge intrinsic gas by @enitrat in #644
- FEAT : make chain_id an environmental variable by @TAdev0 in #649
- feat: make TransactionEmitted event consistent by @bajpai244 in #653
- fix: read state on undeployed alive account by @enitrat in #658
- refactor: call opcodes by @enitrat in #648
- feat: add transaction type by @bajpai244 in #659
- feat: add support for access list by @bajpai244 in #660
- feat(gas): charge-create-message-gas by @enitrat in #661
- dev: add blockchain-tests-skip.yml by @bajpai244 in #672
- feat: remove SN-syscall related errors by @enitrat in #670
- feat: add ef-tests to SSJ by @bajpai244 in #668
- refactor: update to 2.4.0 by @enitrat in #673
- feat: identity precompile by @bajpai244 in #674
- Feat/ec recover by @bajpai244 in #675
- feat: add sha256 precompile by @bajpai244 in #677
- feat: add blockchain-tests-skip generation file to CI by @bajpai244 in #678
- fix: fix manual trigger of ef-tests run! by @bajpai244 in #681
- feat(gas): charge tx gas fee by @enitrat in #682
- dev: optimize from_bytes u32 by @enitrat in #684
- feat: pre_deployed_eoas in kakarot constructor by @TAdev0 in #685
- feat: gas refunds by @enitrat in #686
- fix: compiler issues by @enitrat in #688
- feat: dynamic exp gas by @enitrat in #689
- fix: selfdestruct double gas charge by @enitrat in #690
- revert charging eth for gas usage by @enitrat in #692
- chore: remove prints by @enitrat in #693
- feat: blake 2 precompile by @bajpai244 in #694
- Fix ef test step not failing by @ClementWalter in #695
- feat: include
gas_used
ineth_call
return data by @TAdev0 in #698 - bug: fix_memory_cost_calculation by @TAdev0 in #701
- feat: add math helpers required for #699 { modexp precompile } by @bajpai244 in #703
- bug: fix
is_account_alive
function by @TAdev0 in #708 - feat: add bytes related utils by @bajpai244 in #706
- Add a Precompiles contract by @ClementWalter in #710
- feat: add vec utils by @bajpai244 in #714
- Refacto precompiles and return gas in precompile contract by @ClementWalter in #721
- chore: update to cairo 2.5.3 by @enitrat in #723
- feat: add ModExp core lib by @bajpai244 in #718
- ci: add release workflow and artifacts upload by @d-roak in #728
New Contributors
- @jobez made their first contribution in #25
- @AbdelStark made their first contribution in #29
- @enitrat made their first contribution in #31
- @Eikix made their first contribution in #38
- @ftupas made their first contribution in #76
- @lambda-0x made their first contribution in #139
- @danilowhk made their first contribution in #140
- @aniketpr01 made their first contribution in #174
- @LucasLvy made their first contribution in #180
- @TAdev0 made their first contribution in #200
- @Quentash made their first contribution in #205
- @dbejarano820 made their first contribution in #220
- @khaeljy made their first contribution in #218
- @trbutler4 made their first contribution in #241
- @ClementWalter made their first contribution in #272
- @Noeljarillo made their first contribution in #232
- @glihm made their first contribution in #221
- @kariy made their first contribution in #287
- @rkdud007 made their first contribution in #286
- @alextnetto made their first contribution in #323
- @akhercha made their first contribution in #410
- @greged93 made their first contribution in #420
- @bajpai244 made their first contribution in #431
- @chachaleo made their first contribution in #432
- @edisontim made their first contribution in #558
- @Mohiiit made their first contribution in #575
- @d-roak made their first contribution in #728
Full Changelog: https://github.com/kkrt-labs/kakarot-ssj/commits/v0.1.0