Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a bit of logging to mock runtime #1006

Open
wants to merge 244 commits into
base: fvm-next
Choose a base branch
from

Commits on Jul 22, 2022

  1. Configuration menu
    Copy the full SHA
    a87c640 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2022

  1. add devnet-wasm and wallaby networks with associated features to buil…

    …d scripts (#504)
    
    * add devnet-m2-native network with associated features to build scripts
    
    * transitively activate m2-native on runtime
    
    * add devnet-m2-native bundle build target
    
    * fix output target for m2-native bundle
    
    * pacify clippy.
    
    * runtime: Cargo.toml sort dependencies.
    
    * Cargo.toml: point patches to master.
    
    * fix devnet-m2-bundle by propagating Cargo features.
    
    * add build preset / bundle configurations for wallaby and devnet-wasm.
    
    QoL finishing touches:
    - The 1:N network/features mapping in runtime/build.rs wasn't cutting it any longer.
      I expanded this data structure to M:N.
    - Added docs to runtime/build.rs.
    
    Co-authored-by: vyzo <[email protected]>
    raulk and vyzo authored Jul 28, 2022
    Configuration menu
    Copy the full SHA
    427bc99 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'master' into next

    raulk committed Jul 28, 2022
    Configuration menu
    Copy the full SHA
    9c42e56 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c28b820 View commit details
    Browse the repository at this point in the history
  4. adjust Wallaby parameters. (#508)

    * adjust Wallaby parameters.
    
    - minimum consensus power is 16GiB.
    - short precommit challenge delay (10 epochs).
    
    * fix: minimum consensus power for wallaby
    
    Co-authored-by: Aayush <[email protected]>
    raulk and arajasek authored Jul 28, 2022
    Configuration menu
    Copy the full SHA
    cf78922 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2022

  1. basic EVM smart contract actor (#517)

    Co-authored-by: Raúl Kripalani <[email protected]>
    vyzo and raulk authored Aug 18, 2022
    Configuration menu
    Copy the full SHA
    36ec85a View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2022

  1. Configuration menu
    Copy the full SHA
    0dc90b0 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2022

  1. Configuration menu
    Copy the full SHA
    3f8e6f1 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2022

  1. ci: change CI trigger to pull_request + push to master (#510)

    This change makes CI trigger whenever:
    - a pull request is opened/updated
    - a commit is pushed to `master` branch
    
    The main advantage of this setup is that it enables CI runs on PRs originating from forks.
    galargh authored and Stebalien committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    b1ca8a1 View commit details
    Browse the repository at this point in the history
  2. ci: run CI on next (#569)

    Stebalien committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    fc1dfb9 View commit details
    Browse the repository at this point in the history
  3. EVM: cleanup opcode definition and resolution (#572)

    cleanup opcode definition and resolution
    vyzo authored Aug 23, 2022
    Configuration menu
    Copy the full SHA
    2d2122f View commit details
    Browse the repository at this point in the history
  4. feat: enum-based opcodes (#573)

    - removes the explicit instruction array.
    - removes the undefined instructions.
    - removes the need for ordering instructions in a specific way.
    - ensures that we can't talk about invalid instructions.
    Stebalien authored Aug 23, 2022
    Configuration menu
    Copy the full SHA
    8533873 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2022

  1. bump rust-toolchain to 1.63 (#576)

    * bump rust-toolchain to 1.63
    
    [needed for const fn magic]
    
    * fix new clippy warnings,
    most changes is just adding `Eq` to derive, only others was avoiding reborrows and allowing a 'complex' type
    
    * change .err.expect to .expect_err, and dont bind to a unit value
    
    Co-authored-by: mriise <[email protected]>
    vyzo and mriise authored Aug 24, 2022
    Configuration menu
    Copy the full SHA
    b0c8671 View commit details
    Browse the repository at this point in the history
  2. wip jmptable based interpreter

    vyzo committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    c49f4e1 View commit details
    Browse the repository at this point in the history
  3. flesh out machine scaffolding

    vyzo committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    4b01f17 View commit details
    Browse the repository at this point in the history
  4. implement interpreter guts

    vyzo committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    5b3db72 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    645bd71 View commit details
    Browse the repository at this point in the history
  6. rustfmt

    vyzo committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    7ea12d0 View commit details
    Browse the repository at this point in the history
  7. Add comment about safety of the unsafe block.

    Co-authored-by: Melanie Riise <[email protected]>
    vyzo and mriise committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    a7536b3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5381035 View commit details
    Browse the repository at this point in the history
  9. fix clippy

    vyzo committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    e37886f View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2022

  1. Configuration menu
    Copy the full SHA
    65369ba View commit details
    Browse the repository at this point in the history
  2. fix: non-fil-actor-compile (#571)

    Fix compile when not compiling as a "fil actor" (e.g., for testing).
    Stebalien committed Aug 29, 2022
    Configuration menu
    Copy the full SHA
    66c9826 View commit details
    Browse the repository at this point in the history
  3. feat: use Type from builtin-actors when building the bundle (#583)

    This change upgrades to the v4 bundler that _does not_ depend on the FVM to map actor types to IDs. Instead, it relies on the Type enum defined in this repo.
    
    This means new actor types can be added here without having to make changes in multiple places.
    Stebalien committed Aug 29, 2022
    Configuration menu
    Copy the full SHA
    19c0d72 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2022

  1. feat: Avoid blake2b hashing in wasm (#577)

    Avoid blake2b hashing in wasm
    
    Co-authored-by: Jiaying Wang <[email protected]>
    2 people authored and Stebalien committed Aug 31, 2022
    Configuration menu
    Copy the full SHA
    032067e View commit details
    Browse the repository at this point in the history
  2. Change runtime resolve address to return an ActorID (#549)

    Co-authored-by: lyswifter <[email protected]>
    2 people authored and Stebalien committed Aug 31, 2022
    Configuration menu
    Copy the full SHA
    97ff14e View commit details
    Browse the repository at this point in the history
  3. Optimize test_vm get_actor (#585)

    * Optimize test_vm get_actor
    
    Improves extend_sector_with_deals by 40%
    
    Signed-off-by: Jakub Sztandera <[email protected]>
    
    * Keep the cache across invocations
    
    Gives another 32%
    
    Signed-off-by: Jakub Sztandera <[email protected]>
    
    Signed-off-by: Jakub Sztandera <[email protected]>
    Jakub Sztandera authored and Stebalien committed Aug 31, 2022
    Configuration menu
    Copy the full SHA
    79e399c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    422a48a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dcc6643 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2022

  1. EVM runtime: implement some contextual opcodes + EVM Address type (#586)

    * refactor: move opcode handlers to appropriate modules.
    
    * implement BASEFEE opcode handler.
    
    * implement SELFBALANCE opcode handler.
    
    * EVM runtime: add an initial Address type that performs ID address masking.
    
    * EVM runtime: convert EVM errors to ActorErrors.
    
    * EVM runtime: commented selfdestruct.
    
    * EVM runtime: implement DIFFICULTY, NUMBER, COINBASE opcodes.
    
    * EVM runtime: add conversion from actor ID to masked address.
    
    Make CALLER, ADDRESS, ORIGIN use masked ID addresses.
    
    * remove TODO.
    
    * add comment.
    
    * fix clippy.
    
    * adjust test for ID address flag.
    raulk authored Sep 1, 2022
    Configuration menu
    Copy the full SHA
    10fae60 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2022

  1. EVM Precompiles (#564)

    * add precompiles from old branc evm-precompiles
    
    * move precompiles file, add blake2 dep with blake2f
    
    * wip call fn, use precompile error type
    
    * use u256 instead of raw bytes (cleans up code)
    
    * remove Message struct as is no longer needed
    
    * attempt getting input & output memory regions
    
    * dont use custom error type, pass in just memory instead of full execution state for memory functions
    
    * write output back into smart contract remove old TODOs
    
    * add blake2f precompile
    
    * edit TODOs
    
    * rustfmt
    
    * add modxp precompile & remove gas limit/accouting for precompiles
    
    * add expairing, use custom error type, remove gas accounting, replace unsafe code
    
    * cleanup unused things and rename precompile error variant
    
    * use fork for blakef2, organize precompiles in file
    
    * move static call type to enum
    
    * add warnings and use different slicing method
    
    * rustfmt
    
    * fix errors from merge
    
    * use InvalidMemAccess again instead of OutOfGas
    
    * lock ref-fvm to specific hash to avoid Token struct changes
    
    * go back to normal EVM precompile addresssing, unlock ref-fvm version hash
    
    * add blake2 and ec ops precompile tests
    
    * fix precompile test errors issues
    
    * Update precompiles
    - use methods on runtime for syscalls instead of importing SDK
    - fix broken tests
    - fix some EC methods that would expect empty bytes instead of error
    
    * implement hash and recover pubkey in tests
    
    * import sepc consts
    
    * rustfmt & clippy
    
    * Update actors/evm/src/interpreter/precompiles.rs
    
    Co-authored-by: Steven Allen <[email protected]>
    
    Co-authored-by: Steven Allen <[email protected]>
    mriise and Stebalien authored Sep 2, 2022
    Configuration menu
    Copy the full SHA
    6310cdd View commit details
    Browse the repository at this point in the history
  2. chore: update sdk (#598)

    We renamed hash to hash_owned to allow for a hash_into method.
    Stebalien authored Sep 2, 2022
    Configuration menu
    Copy the full SHA
    970ed6a View commit details
    Browse the repository at this point in the history
  3. test runtime: use Rc<MemoryBlockstore>. (#599)

    With the real FvmRuntime, we expect that cloning the &Blockstore
    returned by Runtime#store() would simply clone the reference.
    
    This is because inside the FVM, blockstore calls proxy out to
    FVM syscalls; the proxy itself holds no state, and cloning it is
    unimportant.
    
    However, in the MockRuntime, we were using a physical MemoryBlockstore.
    Cloning it would return a new physical copy, thus breaking the expectation.
    
    This commit makes MockRuntime use an Rc<MemoryBlockstore>, so all clones
    will point to the same MemoryBlockstore, thus preserving the expectation.
    
    Co-authored-by: Raúl Kripalani <[email protected]>
    Stebalien and raulk committed Sep 2, 2022
    Configuration menu
    Copy the full SHA
    a38d600 View commit details
    Browse the repository at this point in the history
  4. EVM: implement SELFDESTRUCT opcode. (#593)

    This required a small refactor to allow us to mutably borrow the Runtime.
    raulk authored Sep 2, 2022
    Configuration menu
    Copy the full SHA
    739590e View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2022

  1. Configuration menu
    Copy the full SHA
    3b81985 View commit details
    Browse the repository at this point in the history
  2. Make test verify if selfdestruct actually works (#604)

    Maciej Witowski authored Sep 5, 2022
    Configuration menu
    Copy the full SHA
    4bddc7b View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2022

  1. basic contract assembler for testing EVM (#610)

    * add etk-asm dev dependency
    
    * cargo lock
    
    * basic contract assembler
    
    * magic calc contract
    
    * rustfmt
    
    * clippy
    
    * hide error details from magic calc contract constructor
    
    * clippy
    
    * add docs for asm::new_contract
    vyzo authored Sep 6, 2022
    Configuration menu
    Copy the full SHA
    9322e27 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2022

  1. Some housekeeping (#612)

    * add dispatch macros for contract assembler
    
    * avoid extraneous stack copy
    vyzo authored Sep 7, 2022
    Configuration menu
    Copy the full SHA
    c72420e View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2022

  1. EVM: Implement CALL (#614)

    * refactor evm contract invocation so that we can make cross contract calls
    
    Limits the scope of the transaction to just saving the state.
    
    * rustfmt
    
    * clean up precompile calls and make scaffolding for actual implementation
    
    - drops H160 -- wtf is that even useful
    - adds dispatcher for actual call implementations
    - removes inline directive from big things
    
    * clean up error handling surrounding call; don't panic left and right
    
    * fix error handling with status codes
    
    * implement CALL
    
    * propagate nested ActorErrors from bytecode execution
    
    * more nested actor error handling
    
    * rustfmt
    
    * pass value through CALL
    
    * rustfmt
    
    * correctly handle call variant arguments
    
    the value was missing from call/callcode.
    also kill the useless create call kinds.
    
    * rustfmt
    
    * update comment, move common check outside of march arm
    
    * clippy
    
    * rustfmt
    
    * fix typo
    
    * ok_or_else instead of match.
    
    * Precompile asm tests (#615)
    
    * organize test files, WIP precompile ASM test
    
    * fix precompile test asm, add tests for sha precompile
    
    * use sha2-256 instead of keccak in precompiles
    
    * un-reorg evm tests
    
    * un-rename simplecoin test
    
    * save return data
    
    * fix handling of output memory regions
    
    * address space is 32 bits
    
    * names, names, names
    
    * proxy call test
    
    * fix overflow
    
    Co-authored-by: Melanie Riise <[email protected]>
    vyzo and mriise authored Sep 8, 2022
    Configuration menu
    Copy the full SHA
    bbee410 View commit details
    Browse the repository at this point in the history
  2. EVM: remove H160/H256 abstractions and transactions (#619)

    * remove H160/H256 abstraction and transactions, use (safe) Address type for addresses.
    
    * rustfmt
    
    * store addresses as a 20-byte array internally
    
    * rustfmt
    
    * implement Debug for Address
    
    * clippy
    
    * improve error message in try_from conversion failure
    vyzo authored Sep 8, 2022
    Configuration menu
    Copy the full SHA
    82c36db View commit details
    Browse the repository at this point in the history
  3. fix: cleanup runtime dependencies. (#623)

    - Fixes the non-test build by making libsecp256k1 _optional_ unless we're testing.
    - Makes a lot of dependencies "test only".
    - Removes some unnecessary dependencies.
    Stebalien authored Sep 8, 2022
    Configuration menu
    Copy the full SHA
    320989b View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2022

  1. Configuration menu
    Copy the full SHA
    4507f15 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d1730d0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    cef1233 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b36ebd1 View commit details
    Browse the repository at this point in the history
  5. Add code coverage report (#120)

    Generate a code coverage report and add it as artifact as well as
    uploading it to CodeCov.
    
    Co-authored-by: raulk <[email protected]>
    Co-authored-by: Piotr Galar <[email protected]>
    Co-authored-by: Alex <[email protected]>
    4 people authored and Stebalien committed Sep 9, 2022
    Configuration menu
    Copy the full SHA
    013ec9e View commit details
    Browse the repository at this point in the history
  6. fix: check code both with all targets and without (#622)

    Otherwise, rust will "unify" the features between the test targets and the non-test targets, so we'll miss non-test dependency issues.
    Stebalien committed Sep 9, 2022
    Configuration menu
    Copy the full SHA
    ba1fd1f View commit details
    Browse the repository at this point in the history
  7. EVM: some small fixes (#621)

    * add note about gas
    
    * barf with jumbo output addresses; can't do more than 32 bits anyway in wasm.
    
    * add TODO comment about output memory limit
    vyzo authored Sep 9, 2022
    Configuration menu
    Copy the full SHA
    87e4084 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2022

  1. EVM runtime: implement GetBytecode and GetStorageAt getters. (#631)

    * EVM runtime: implement GetBytecode and GetStorageAt getters.
    
    GetBytecode returns the CID of the bytecode block. In the future,
    the FVM's reachability analysis should add this CID to the reachable set
    of the caller. GetBytecode is publicly callable.
    
    GetStorageAt returns the value stored in the supplied EVM storage key.
    This method is private and only intended for calls from instrumentation and
    client functionality, such as the eth_getStorageAt JSON-RPC API operation.
    In order to make it private, it validates that the caller is the zero address.
    It needs to be private to preserve EVM guarantees: no contract is able to
    arbitrarily access storage keys from another contract. The client must form
    a message from the 0x0 sender address for this method to work.
    
    * it's not scala!
    
    Co-authored-by: vyzo <[email protected]>
    raulk and vyzo authored Sep 10, 2022
    Configuration menu
    Copy the full SHA
    bf3f20b View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2022

  1. EVM: Implement CALLACTOR/METHODNUM and REVERT abort semantics (#633)

    * implement CALLACTOR/METHODNUM
    
    * signal EVM_CONTRACT_REVERTED error on reverts
    
    * handle REVERT in CALL/CALLACTOR result
    
    * update comments about REVERT semantics
    
    * simplify call error handling
    
    * fix tests
    
    * fix empty input data handling for calls
    
    * add mnemonic opcodes for CALLACTOR and METHODNUM to assembler
    
    such a hack, but no other way.
    
    * add methodnum and callactor tests
    
    * rustfmt
    
    * lift return
    
    * fix comment
    vyzo authored Sep 12, 2022
    Configuration menu
    Copy the full SHA
    f5be9a9 View commit details
    Browse the repository at this point in the history
  2. EVM runtime: implement EXT* opcodes. (#632)

    Co-authored-by: vyzo <[email protected]>
    raulk and vyzo authored Sep 12, 2022
    Configuration menu
    Copy the full SHA
    b077886 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. optimized tests & ci caching (#640)

    * chore: run tests with some optimizations enabled
    
    Specifically, optimize bigint, hashing, and the test_vm. Preferiably
    we'd just optimize everything, but that makes things slow.
    
    * ci: save test cache
    
    * ci: don't build root bundle in tests
    
    We test when building the bundle itself.
    
    * ci: rev key and save codecov cache
    
    Co-authored-by: ZenGround0 <[email protected]>
    Stebalien and ZenGround0 committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    aa64e5e View commit details
    Browse the repository at this point in the history
  2. build: avoid RUSTFLAGS (#642)

    This can cause issues with caching. Unfortunately, we can only specify them per-target, not per-profile.
    Stebalien committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    7b52f8d View commit details
    Browse the repository at this point in the history
  3. build: optimize bitfield operations in tests (#643)

    This isn't as big of an issue as hashing, but it still matters for tests.
    Stebalien committed Sep 13, 2022
    Configuration menu
    Copy the full SHA
    e09dd7b View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2022

  1. Introduce a check for unique Robust Address in the Init Actor

    Resolves #567
    Jakub Sztandera authored and Stebalien committed Sep 14, 2022
    Configuration menu
    Copy the full SHA
    7fc40f3 View commit details
    Browse the repository at this point in the history
  2. Next: fix broken tests (#648)

    * fix broken init test
    
    * fix broken rand import
    
    * only enable rand/std_rng when test_utils is specified
    vyzo authored Sep 14, 2022
    Configuration menu
    Copy the full SHA
    0927953 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a0309a8 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2022

  1. fix: remove input_data from EVM constructor (#661)

    EVM contracts don't take parameters on construction.
    Stebalien authored Sep 15, 2022
    Configuration menu
    Copy the full SHA
    f9a1713 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2022

  1. rename evm actor's Address to EthAddress (#665)

    rename evm actor's  type to
    mriise authored Sep 16, 2022
    Configuration menu
    Copy the full SHA
    5ef23f4 View commit details
    Browse the repository at this point in the history
  2. feat: use consts for addrs (#660)

    * feat: use consts for addrs
    
    And expose actor IDs so we don't need to call `.id().unwrap()` to
    retrieve them.
    
    Co-authored-by: mriise <[email protected]>
    Stebalien and mriise committed Sep 16, 2022
    Configuration menu
    Copy the full SHA
    07bed12 View commit details
    Browse the repository at this point in the history
  3. Replace actors cids to builtin.types in mockruntime (#629)

    Co-authored-by: lyswifter <[email protected]>
    2 people authored and Stebalien committed Sep 16, 2022
    Configuration menu
    Copy the full SHA
    3faab34 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2022

  1. EVM: Fix Precompile Failure Modes & Implement Remaining Precompile Te…

    …sts (#654)
    
    * bn pair tests and errors
    
    * add ec_recover test, fix broken implementation
    
    * add modexp test, add more test cases for ec_recover
    
    * only check lower bound for ec_recover
    
    * Fix broken failure modes in precompiles
    - ec_recover
    - modexp
    - ec_add
    - ec_mul
    
    Change error enum to include field error types + conversions
    - forked bn to derive Eq on bn Errors
    
    Add helper for reading padded bytes from input.
    
    * rustfmt & clippy
    
    * Update precompiles.rs
    
    * use cow instead of custom container
    
    * remove fork of bn
    
    * remove bn for dep
    
    * allocate ahead of time when reading sets of
    
    * lazy_static secp256k1 lower bound
    
    * left pad ecrecover
    
    * hex literal and cargo lock
    
    * add padding test
    
    * space
    
    * dont panic on modexp len
    
    * few remaining nits
    
    * rustfmt
    
    * better read logic of bigints for modexp
    
    * add notes to reading bigint lengths & refactor read group for more clarity
    
    * rustfmt
    mriise authored Sep 17, 2022
    Configuration menu
    Copy the full SHA
    0a4dfe1 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2022

  1. feat: add an embryo actor (#667)

    The embryo actor:
    
    - Has no constructor (the system is expected to simply "set" the embryo
      code CID, not construct it).
    - Immediately aborts when called with a non-zero method.
    
    We could, alternatively, use some well-known "id" address. But it's nice
    to make this actual valid wasm.
    Stebalien authored Sep 20, 2022
    Configuration menu
    Copy the full SHA
    be69f54 View commit details
    Browse the repository at this point in the history
  2. fix: make the empty array CID const and export it (#668)

    Otherwise, we'll perform a hash in WASM when we first dereference (max
    once per call) which is just wasteful.
    
    This also fixes the integration tests to use the "correct" empty object.
    Previously, they were using `()` which mapped to null, not `[]`.
    Stebalien committed Sep 20, 2022
    Configuration menu
    Copy the full SHA
    97d501f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d5e40c0 View commit details
    Browse the repository at this point in the history
  4. test: correctly compute the f2 address in the test vm (#686)

    Previously, we weren't taking the nonce into account which prevented us
    from testing multiple messages from the same account.
    Stebalien committed Sep 20, 2022
    Configuration menu
    Copy the full SHA
    047560d View commit details
    Browse the repository at this point in the history
  5. feat: basic f4 support (#684)

    - Adds a create4 method to the init actor.
    - Adds embryo actor creation to the test vm.
    Stebalien authored Sep 20, 2022
    Configuration menu
    Copy the full SHA
    023dd20 View commit details
    Browse the repository at this point in the history
  6. Traits and impls for adding context and exit codes to results. (#589)

    Co-authored-by: dignifiedquire <[email protected]>
    2 people authored and Stebalien committed Sep 20, 2022
    Configuration menu
    Copy the full SHA
    07dd602 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2022

  1. EVM-887: Storage footprint test contract (#689)

    * EVM-887: Makefile to generate Solidity compilation artifacts.
    
    * EVM-887: Use solc 0.8.15
    
    * EVM-887: Storage test contract
    
    * EVM-887: Fix contract name.
    
    * EVM-887: Just return the sum without writing it to the counter.
    aakoshh authored Sep 21, 2022
    Configuration menu
    Copy the full SHA
    99b7a4c View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2022

  1. Configuration menu
    Copy the full SHA
    4f70083 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2022

  1. EVM-888: Storage footprint baseline test (#697)

    * EVM-888: ABI bindings and a default instance of it.
    
    * EVM-888: TestEnv with deploy.
    
    * EVM-888: Test that a call can be invoked and the results parsed.
    
    * EVM-888: Move TestEnv out.
    
    * EVM-888: Static init for contract.
    
    * EVM-888: Capture storage stats.
    
    * EVM-888: Push at least 1, otherwise storage size is constant.
    
    * EVM-888: Export stats.
    
    * EVM-888: Add two series.
    
    * EVM-888: Fix clippy warnings.
    
    * EVM-888: Test mapping add.
    
    * EVM-888: Measure array read.
    
    * EVM-888: Change i to go from 0 instead of 1
    
    * EVM-888: Measure mapping read.
    
    * EVM-888: Assert sums.
    
    * EVM-888: Counter increments.
    
    * EVM-888: Counter after fill.
    
    * EVM-888: Just consume the call, lose the closure.
    
    * EVM-888: Overwrite
    
    * EVM-888: Rename back to inc
    
    * EVM-888: Use the existing TrackingBlockstore
    
    * EVM-888: Undo line breaks in toml
    
    * EVM-888: Use std::env!
    
    * EVM-888: Convert to EthAddress first.
    aakoshh authored Oct 1, 2022
    Configuration menu
    Copy the full SHA
    2070f4d View commit details
    Browse the repository at this point in the history
  2. EVM-889: Visualize measurements (#708)

    * EVM-889: Visualize measurements
    
    * EVM-889: Check in rendered charts.
    
    * EVM-889: Convenience target to run footprint measurements.
    
    * EVM-889: Separate script for plotting
    aakoshh authored Oct 1, 2022
    Configuration menu
    Copy the full SHA
    6d800c4 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2022

  1. EVM runtime: support GASPRICE, TIMESTAMP, CHAINID, GASLIMIT, GAS opco…

    …des (#713)
    
    Co-authored-by: Raúl Kripalani <[email protected]>
    vyzo and raulk authored Oct 3, 2022
    Configuration menu
    Copy the full SHA
    9c07d06 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2022

  1. chore: update fvm_sdk and fvm_shared (#748)

    This updates fvm_sdk and fvm_shared to the latest released version ahead of some f4 changes (so we can atomically back out of those changes).
    Stebalien authored Oct 11, 2022
    Configuration menu
    Copy the full SHA
    f93cbc7 View commit details
    Browse the repository at this point in the history
  2. Store/lookup predictable addresses (#743)

    feat: save predictable addresses in the actor tree
    Stebalien authored Oct 11, 2022
    Configuration menu
    Copy the full SHA
    184e590 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2022

  1. chore: update fvm_ipld_encoding (#750)

    * chore: update fvm encoding
    
    This switches to a bundled "strict_bytes" module instead of
    the "cs_serde_bytes" crate. This:
    
    - cs_serde_bytes was already a fork of serde_bytes.
    - We only needed a very small fraction of this crate.
    - We can now support fixed byte arrays.
    
    * refactor: import strict_bytes instead of serde_bytes
    Stebalien authored Oct 12, 2022
    Configuration menu
    Copy the full SHA
    4860e2f View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2022

  1. EVM: Implement the EAM (#695)

    Co-authored-by: Steven Allen <[email protected]>
    mriise and Stebalien committed Oct 14, 2022
    Configuration menu
    Copy the full SHA
    8c85c8e View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2022

  1. fix: register the EAM (#756)

    - Add a new type.
    - Add it to the bundle.
    - Add it to the test VM.
    Stebalien authored Oct 15, 2022
    Configuration menu
    Copy the full SHA
    55da3df View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Configuration menu
    Copy the full SHA
    49a91d5 View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2022

  1. fix: encode/decode EVM parameters as CBOR (#759)

    * fix: encode/decode EVM parameters as CBOR
    
    The previous code was passing parameters as raw bytes, but telling the
    system that these bytes were valid CBOR. Unfortunately:
    
    - This is incorrect and will break once we actually start enforcing this.
    - This makes it _very_ difficult to test the EVM because we have quite a
      bit of testing code that assumes CBOR.
    
    The long-term solution is to correctly handle IPLD (see
    #758). But the
    short-term solution is to just encode/decode parameters as CBOR.
    
    * fix: only use RawBytes for CBOR
    
    "RawBytes" is for storing serialized CBOR (per the docs). Any other uses
    are bugs.
    Stebalien authored Oct 19, 2022
    Configuration menu
    Copy the full SHA
    40aad04 View commit details
    Browse the repository at this point in the history
  2. EVM: save/restore state before/after send (#754)

    * feat: refactor the EVM to manage state in a consistent location
    
    - Deduplicate code between the constructor and call.
    - Add logic for flushing/reloading state.
    - Add a helper that flushes, sends, and reloads.
    
    This also fixes the whole reborrow mess. Through mostly trial and error,
    I found that a few opcodes were causing the problem. Fixing those
    opcodes made everything happy.
    
    * fix: save/restore EVM contract state before/after sending messages
    
    * fix: remove needless lifetimes
    
    Apparently, the real issue was that these lifetimes were over constrained.
    
    * chore: remove unused type
    
    * chore: add some docs
    
    * fix: use the correct nonce
    
    The EVM _used_ to start the nonce at zero, but contracts now start the
    nonce at one.
    Stebalien authored Oct 19, 2022
    Configuration menu
    Copy the full SHA
    17f314e View commit details
    Browse the repository at this point in the history
  3. EVM: add an evm recursive call test (#767)

    * fix: implement Cbor for Create2/Create params/return
    
    * test: add an EVM call test
    Stebalien authored Oct 19, 2022
    Configuration menu
    Copy the full SHA
    e4d503c View commit details
    Browse the repository at this point in the history
  4. chore: update storage measurement plots (#769)

    (for recent changes)
    Stebalien authored Oct 19, 2022
    Configuration menu
    Copy the full SHA
    21c1291 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2022

  1. EVM: allow evm/f4 addresses everywhere (#770)

    - call
    - callactor
    - balance
    - selfdestruct
    - origin
    - address
    - get_evm_bytecode
    
    Also remove some of the "from ID" functions to reduce the chances that
    we'll mess this up.
    Stebalien authored Oct 20, 2022
    Configuration menu
    Copy the full SHA
    cc090a1 View commit details
    Browse the repository at this point in the history
  2. EVM: implement call variants: STATICCALL and DELEGATECALL (#768)

    * implement STATICCALL
    
    Also, consistently rename platform argument to system.
    
    * implement DELEGATECALL
    
    * rustfmt
    
    * move readonly check in flush
    
    * shortcut reload in read only mode
    
    * dont store the delegate bytecode
    
    * input parameters for delegate call are raw bytes
    
    * fix caller validation check
    
    * dedup bytecode loading code
    
    * cliptarded
    
    * WIP: callvariant tests
    
    * callvariant tests
    
    * assert actor type
    
    * fix tests
    
    * fix test contract: uncomment accidentally commented dispatch code
    
    * fix contract bugz
    
    * STATICCALL tests
    
    * fix contract bugz
    
    * delegate call tests
    
    * rustfmt
    
    * fix: handle empty bytecode on delegatecall and refactor a bit
    
    * chore: rename delegate -> with_code
    
    * fix clippy
    
    Co-authored-by: Steven Allen <[email protected]>
    vyzo and Stebalien authored Oct 20, 2022
    Configuration menu
    Copy the full SHA
    19bfc09 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2022

  1. Configuration menu
    Copy the full SHA
    0c64a78 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b5ee962 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2022

  1. upgrade to [email protected].

    raulk committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    cac1981 View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. fix: allow calling more non-contract actors (#775)

    * fix: allow calling more non-contract actors
    
    - Allow calling accounts.
    - Allow calling embryos by ID.
    
    And oxidize it a bit.
    
    * fix: really fix contract calling rules
    
    1. Don't do any extra work for dynamic calls.
    2. Avoid creating new actors unless we're sending value (EVM rules).
    3. Correctly identify "non-existent" actors.
    4. Correctly handle "empty" returns.
    
    * test: check send/invoke logic
    Stebalien authored Oct 24, 2022
    Configuration menu
    Copy the full SHA
    138cc91 View commit details
    Browse the repository at this point in the history
  2. fix: truncate addresses in instructions (#777)

    This is what the EVM does. They're defined to take the low 20 bytes.
    Stebalien authored Oct 24, 2022
    Configuration menu
    Copy the full SHA
    66ecb66 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2022

  1. Configuration menu
    Copy the full SHA
    b787886 View commit details
    Browse the repository at this point in the history
  2. feat: allow anyone to call EAM::create (#779)

    This will allow lotus to call this from the fake embryo accounts. This
    isn't behind a feature gate because it should be secure regardless.
    Stebalien authored Oct 25, 2022
    Configuration menu
    Copy the full SHA
    deb8bdf View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f5c855b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    27df7c4 View commit details
    Browse the repository at this point in the history
  5. feat: improve a few more math ops (#781)

    - byte: use the built-in byte and don't touch u128s.
    - sar: simplify a bit
    - remove dead code
    Stebalien authored Oct 25, 2022
    Configuration menu
    Copy the full SHA
    b43d954 View commit details
    Browse the repository at this point in the history
  6. feat: do sha3 hashing with the runtime (#782)

    This should significantly speedup smart contracts.
    Stebalien authored Oct 25, 2022
    Configuration menu
    Copy the full SHA
    f0282ab View commit details
    Browse the repository at this point in the history
  7. fix: implement logging as a no-op in production (#783)

    For a better testnet experience.
    Stebalien authored Oct 25, 2022
    Configuration menu
    Copy the full SHA
    a7f261d View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. Configuration menu
    Copy the full SHA
    c965b74 View commit details
    Browse the repository at this point in the history
  2. ci: bump cache version

    Stebalien committed Oct 31, 2022
    Configuration menu
    Copy the full SHA
    a5bf14e View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Configuration menu
    Copy the full SHA
    5ebb625 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7418f62 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. M2: drop m2-native feature from wallaby build (#815)

    * drop m2-native from wallaby build
    
    * rustfmt
    vyzo authored Nov 8, 2022
    Configuration menu
    Copy the full SHA
    2acb19f View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. fix: really allow anyone to call EAM::create (#820)

    We use the ETH address derived from the user's ID address.
    Stebalien authored Nov 9, 2022
    Configuration menu
    Copy the full SHA
    379ef07 View commit details
    Browse the repository at this point in the history
  2. fix: explicitly reject "reserved" eth addresses in the EAM (#822)

    Users shouldn't _naturally_ try to create actors with these addresses,
    but it's not theoretically impossible to _make_ this happen.
    Stebalien authored Nov 9, 2022
    Configuration menu
    Copy the full SHA
    d67f60c View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2022

  1. fix u256 encoding (#828)

    Always encode to a big-endian byte array.
    
    fixes filecoin-project/ref-fvm#912
    Stebalien authored Nov 11, 2022
    Configuration menu
    Copy the full SHA
    a56108c View commit details
    Browse the repository at this point in the history
  2. EVM: simplify and fix evm storage (#831)

    * EVM: simplify and fix evm storage
    
    1. The EVM doesn't distinguish between "exists" and "doesn't exist".
    2. There was some interesting dead code.
    3. Only mark the state-tree dirty if something has changed.
    
    * nit: make vyzo happy
    Stebalien authored Nov 11, 2022
    Configuration menu
    Copy the full SHA
    137c447 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    38e800e View commit details
    Browse the repository at this point in the history
  4. EVM: reserve methods < 1024 for EVM internals (#823)

    We only delegate methods >= 1024 to the contract. This is more than
    sufficient to cover any methods exported by FRC0042.
    
    part of filecoin-project/ref-fvm#1056
    Stebalien authored Nov 11, 2022
    Configuration menu
    Copy the full SHA
    47a1d64 View commit details
    Browse the repository at this point in the history
  5. EVM: on unhandled methods, call handle_filecoin_method with solidity …

    …ABI (#834)
    
    * on unhandled methods, call filecoin_native_method with solidity ABI
    
    * address feedback
    
    * comment
    
    * fix compile
    
    otherwise, we conflict with ActorCode::invoke_method
    
    * fix tests
    
    * fix: rename method number
    Stebalien authored Nov 11, 2022
    Configuration menu
    Copy the full SHA
    46a59b5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    59e8796 View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2022

  1. FVM specific EVM precompiles (#792)

    * FVM specific EVM precompiles
    - changes randomness functions to take a raw i64 since this is userspace now
    - add precompiles: resolve_address, lookup_address, get_actor_code_cid, get_randomness(beacon/chain)
    
    * leave context as TODO
    
    * fixes after rebase
    
    * rustfmt
    
    * add new user randomness functions (that dont limit types to domain seperation tags)
    
    * add some precompile docs, use ID addresses instead of ETH style ID addresses, assert reserved bytes are zeroes
    
    * fmt & clippy
    
    * Update precompiles.rs
    
    * kill old expect randomness functions and route them through the new ones
    
    * rename user get_randomness_x functions to be more consistient
    
    * rustfmt
    mriise authored Nov 12, 2022
    Configuration menu
    Copy the full SHA
    eea22e0 View commit details
    Browse the repository at this point in the history
  2. EVM: use more EVM style parameters for FVM syscall precompiles (#837)

    * use more EVM style params for precompiles
    mriise authored Nov 12, 2022
    Configuration menu
    Copy the full SHA
    5e40e06 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2022

  1. Configuration menu
    Copy the full SHA
    0baa03d View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2022

  1. Configuration menu
    Copy the full SHA
    e8d71b2 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2022

  1. Configuration menu
    Copy the full SHA
    b1ba610 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2022

  1. fix: correctly handle out-of-bounds cases when copying memory (#847)

    - CALL: truncates the return value, but doesn't zero fill.
    - CALLDATA, EXTCODECOPY, CODECOPY: treat input as if it were followed by
      infinite zeros.
    - RETURNDATACOPY: explicitly forbids out-of-bounds reads.
    
    We might be able to change the behavior of EXTCODECOPY and CODECOPY to
    match RETURNDATACOPY, but we _can't_ change CALLDATA as solidity abuses
    this feature for zeroing memory. So we're just going to match what the
    EVM does because it's safer (and because we need to implement that
    behavior _anyways_ for CALLDATA).
    
    fixes filecoin-project/ref-fvm#1021
    fixes filecoin-project/ref-fvm#1024
    Stebalien authored Nov 16, 2022
    Configuration menu
    Copy the full SHA
    ee12a8c View commit details
    Browse the repository at this point in the history
  2. chore: bump cache version

    We ran out of space.
    Stebalien committed Nov 16, 2022
    Configuration menu
    Copy the full SHA
    d24598d View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2022

  1. fix: allow empty EVM code, init and runtime (#848)

    We can already handle _executing_ with empty bytecode, we just didn't
    allow construction.
    Stebalien authored Nov 17, 2022
    Configuration menu
    Copy the full SHA
    cd7cfce View commit details
    Browse the repository at this point in the history
  2. chore: update fvm sdk (#854)

    Includes refactored network/message context syscalls.
    Stebalien authored Nov 17, 2022
    Configuration menu
    Copy the full SHA
    bdeb3bc View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2022

  1. Configuration menu
    Copy the full SHA
    1b11df4 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2022

  1. EVM: Move CALLACTOR into a precompile (#861)

    * wip callactor precompile (very broken)
    
    * fill out logic a bit
    
    * rustfmt
    
    * pass in context through to precompiles
    
    * exit with error on static call to callactor, array chunks abstraction
    
    * forgot increment cursor...
    
    * actually use gas from call, assert unused bits in randomness params are zeroed
    
    * pass precompile context to all precompiles
    add a chunked parameter reader
    
    * improve parameter reader, check for readonly, new precompiles only read u32 for dynamicly sized bytes
    
    * update sdk
    
    * review changes, fix fn name in runtime
    
    * nit: don't comment out code
    mriise authored Nov 22, 2022
    Configuration menu
    Copy the full SHA
    31acd91 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2022

  1. EVM: Implement reverts correctly (#864)

    * add exit to runtime interface
    
    * propagate revert data in contract invocations
    
    * add data to ActorError
    
    * propagate data in actor errors from send
    
    * correctly handle reverts in calls
    
    * implement exit with panics in mock runtime
    
    * implement exit with panics in test vm
    
    * fix clippy
    
    * fix test vm: exit data should be in new context
    
    * use pop instead of ugly gets in ret
    
    * cosmetics
    
    * add naked revert test
    
    * rustfmt
    
    * only test naked revert in unit test
    
    nested call revert should go in integration test, really
    
    * fix callvariants contract to check reverts
    
    * really fix callvariants contract: iszero is what you want
    
    * test_vm: missing panic handler
    
    * callvariants is also testing mutation
    
    * deduplicate actor exit handler code
    
    * rustfmt
    
    * remove unnecessary replaces for exits.
    
    * fix runtime trampoline to propagate data from errors
    
    * perform contract/constructor invocation abortive returns with errors
    
    * don't synethesize exit data if it is not there
    
    * propagate error data in test_vm
    
    * rustfmt
    
    * simplify/dedup identical code
    vyzo authored Nov 23, 2022
    Configuration menu
    Copy the full SHA
    8e93725 View commit details
    Browse the repository at this point in the history
  2. clean up leftovers from CALLACTOR and METHODNUM refactor. (#867)

    * clean up leftovers from CALLACTOR and METHODNUM refactor.
    
    * fix callactor test
    
    * rusftm
    
    Co-authored-by: mriise <[email protected]>
    raulk and mriise authored Nov 23, 2022
    Configuration menu
    Copy the full SHA
    c1f32cd View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2022

  1. EVM: Unit tests for some math opcodes (#860)

    * add unit tests for some opcodes
    
    ADD MUL SUB DIV
    
    * fmt
    mriise authored Nov 24, 2022
    Configuration menu
    Copy the full SHA
    265948c View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2022

  1. fix call_actor precompile (#872)

    * fix call_actor precompile; modify error message
    
    * revert modifying error message
    
    * rustfmt
    rllola authored Nov 28, 2022
    Configuration menu
    Copy the full SHA
    3c90246 View commit details
    Browse the repository at this point in the history
  2. EVM: Refactor Interpreter dispatch (#646)

    * check stack limits at dispatch, make stack ops unchecked
    
    * use a growable vector for the stack
    
    * fix growth check
    
    * clippy wants default...
    
    * optimize ensure somewhat
    
    * remove implicit assumption about growth patterns
    
    * drop error from Bytecode::new signature, it can't really err.
    
    fix rebase artifact
    
    * refactor part I: primops
    
    * add arity/stack checks for primops
    
    * dup and swap
    
    * push
    
    * immediates
    
    * sugar
    
    * first stdfun
    
    * keccak256 as stdfun and prettier sugar
    
    * moar stdfuns
    
    * calldatacopy
    
    * emacs auto-indent friendly sugar
    
    * more functionoids
    
    * moar funcionoids
    
    * call opcodes
    
    also kill leftover callactor
    
    * primitive -> primop
    
    * codesize and codecopy
    
    * create and create2
    
    * control flow
    
    * mark stack ops as unsafe
    
    only macro mechanically checked invocations for these
    
    * fix tests
    
    * rustfmt
    
    * shut up clippy's frivolous complaints
    
    * nit: macro magic
    
    Co-authored-by: Steven Allen <[email protected]>
    vyzo and Stebalien authored Nov 28, 2022
    Configuration menu
    Copy the full SHA
    5a4b15b View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2022

  1. EVM: Further dispatch refactoring (#876)

    * defeat instruction zoo call convention complexity
    
    it's just one, the intrinsic, which passes a machine.
    
    * fix tests
    
    * rip ControlFlow enum
    
    * more macrology
    
    * cosmetics
    
    * shut up clippy
    vyzo authored Nov 29, 2022
    Configuration menu
    Copy the full SHA
    8a5a26b View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2022

  1. Update FVM (#877)

    * Update FVM
    
    * feat: correctly handle "read-only" errors.
    
    Co-authored-by: Steven Allen <[email protected]>
    arajasek and Stebalien authored Nov 30, 2022
    Configuration menu
    Copy the full SHA
    a9b27f4 View commit details
    Browse the repository at this point in the history
  2. fix: correctly compute addresses in CREATE (#878)

    * fix: correctly compute addresses in CREATE
    
    And add some basic tests.
    
    fixes #866
    
    * Apply suggestions from code review
    
    Co-authored-by: Melanie Riise <[email protected]>
    
    Co-authored-by: Melanie Riise <[email protected]>
    Stebalien and mriise authored Nov 30, 2022
    Configuration menu
    Copy the full SHA
    c26adc9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    57e15f3 View commit details
    Browse the repository at this point in the history
  4. Export stable methods for public access (#807)

    * Export Datacap Actor methods
    
    * Export Init Actor methods
    
    * Export Market Actor methods
    
    * Export Miner Actor methods
    
    * Export Multisig Actor methods
    
    * Export Verifreg Actor methods
    
    * Address review
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    2fcd91b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    94c17f2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    305cfa6 View commit details
    Browse the repository at this point in the history
  7. Power actor: Add exported getters for raw power (#810)

    * Power actor: Add exported getters for raw power
    
    * FRC-XXXX is FRC-0042
    
    * Power actor: network_raw_power: Return this_epoch_raw_byte_power
    
    * Power actor: miner_raw_power: Return whether above consensus min power
    
    * Power actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Miner actor: Add exported getters for info and monies (#811)
    
    * Miner actor: Add exported getters for info and monies
    
    * Tweak comment
    
    * Miner actor: Replace GetWorker and GetControls with IsControllingAddress
    
    * Miner actor: Add exported GetAvailableBalance
    
    * Miner actor: Add exported GetVestingFunds
    
    * Miner actor: Remove exported monies getters
    
    * Miner actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Address review
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    8c836b3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    abbf12c View commit details
    Browse the repository at this point in the history
  9. Call exported authenticate method from PSD (#829)

    Co-authored-by: zenground0 <[email protected]>
    2 people authored and arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    687ae94 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ac59697 View commit details
    Browse the repository at this point in the history
  11. Market actor: Minor improvements to two exported getters (#826)

    * Market actor: GetDealTermExported: Return (start_epoch, duration)
    
    * Market actor: Export getter for deal total price
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    30e167a View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4673ef2 View commit details
    Browse the repository at this point in the history
  13. Paych actor: Drop account req, use AuthenticateMessage to verify sigs (

    …#824)
    
    * Paych actor: Drop account req, use AuthenticateMessage to verify sigs
    
    * Address review
    
    * Address review
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    382ab4c View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    3e02530 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    7035d11 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    b790646 View commit details
    Browse the repository at this point in the history
  17. Miner: Export several more methods (#863)

    * Miner: Export ChangeWorkerAddress
    
    * Miner: Export ChangePeerID
    
    * Miner: Export WithdrawBalance
    
    * Miner: Export ChangeMultiaddrs
    
    * Miner: Export ConfirmUpdateWorkerKey
    
    * Miner: Export RepayDebt
    
    * Miner: Export ChangeOwnerAddress
    
    * Miner: Add exported getters for PeerID & multiaddrs
    
    * Miner: Refactor: Rename ConfirmUpdateWorkerKey to ConfirmChangeWorkerAddress
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    f496760 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    fc811bd View commit details
    Browse the repository at this point in the history
  19. Power actor: Export methods to CreateMiner and get miner counts (#868)

    * Power: Export CreateMiner
    
    * Power Actor: Export MinerCount and MinerConsensusCount
    
    * Update actors/power/src/lib.rs
    
    Co-authored-by: Alex <[email protected]>
    
    Co-authored-by: Alex <[email protected]>
    arajasek and anorth committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    59f0c4a View commit details
    Browse the repository at this point in the history
  20. Verifreg: Export AddVerifiedClient and GetClaims (#873)

    * Verifreg: Rename AddVerifierClientParams to AddVerifiedClientParams
    
    * Verifreg: Export AddVerifiedClient and GetClaims
    arajasek committed Nov 30, 2022
    Configuration menu
    Copy the full SHA
    fc7477c View commit details
    Browse the repository at this point in the history
  21. feat: avoid exposing the gas limit in the runtime (#880)

    We exposed this for the GASLIMIT opcode, but didn't actually need it.
    I'm removing it here to reduce the diff and API surface area.
    
    See filecoin-project/ref-fvm#1168 for context.
    Stebalien authored Nov 30, 2022
    Configuration menu
    Copy the full SHA
    ec7d3f2 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2022

  1. Configuration menu
    Copy the full SHA
    a30ee4e View commit details
    Browse the repository at this point in the history
  2. feat: correctly implement staticcall (#879)

    * feat: correctly implement staticcall
    
    * fix: correctly handle staticcall in callactor
    
    * fix: clippy
    Stebalien authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    4f7b89f View commit details
    Browse the repository at this point in the history
  3. EVM: thread gas limit in send (#885)

    * use gas limit for sends when supplied
    
    * implement send_with_gas in mock runtime and integration framework
    
    * fix read_only flag determination
    
    * fix test_vm handling of read only is send_with_gas
    
    * use U256::to_u64_saturating instead of panicky as_u64
    
    * remove unnecessary sticky bit check
    
    * rustfmt
    vyzo authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    a382dc9 View commit details
    Browse the repository at this point in the history
  4. EVM: fix EXTCODE_ ops (#870)

    * wip fixes
    
    * cleanup implementation
    
    * return 0 for non existient address in extcodesize
    
    * use enum instead of result result maddness
    
    * fmt & cleanup some logic
    
    * update tests for the remaining two ext opcodes
    
    * redo logic to make things a bit more clearn
    
    * fix bugs & keep bytecode logic seperate, verify expectations before asserting for better debugging help
    
    * add another test case for ext op
    
    * use closure for early return
    
    * nit: reduce indentation
    
    * fix: formatting
    
    * remove unnecessary closure
    
    * fix: make delegatecall behave more like the EVM
    
    - address todo
    - use the new get_cid_type
    
    * fix some review nits
    
    Co-authored-by: Steven Allen <[email protected]>
    mriise and Stebalien authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    49f927c View commit details
    Browse the repository at this point in the history
  5. fix: save state before callactor (#886)

    Unfortunately, this means we need to pass the "system" to the
    precompiles, which means we need an unsafe dance to pass a mutable
    pointer through. But it's not _too_ bad.
    Stebalien authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    0f83948 View commit details
    Browse the repository at this point in the history
  6. EVM: thread gas go delegatecall (#888)

    thread gas go delegatecall
    vyzo authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    dd76d3e View commit details
    Browse the repository at this point in the history
  7. EVM: further dispatch tweaks (#890)

    * use while insteas of loop
    
    * remove unnecessary bounde checking
    
    * fix typo
    
    * rustfmt
    vyzo authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    0509cde View commit details
    Browse the repository at this point in the history
  8. feat: further optimize instruction dispatch (#891)

    1. Lift the "is none" check into the loop. This is actually _slower_ for
    short programs, but faster over the long-run. I measured that by moving
    the check _above_ the step operation and determining that it was slower.
    2. Remove the unsafe and inline.
      1. Inlining is faster overall (at least in terms of gas usage).
      2. Inlining lets rust elide the bounds checks (no difference in gas
      usage).
    3. Don't bother checking instructions. Instead, we just dispatch and let
    run the "undefined instruction" function on undefined instructions. It
    gives the same result, but saves some time.
    Stebalien authored Dec 1, 2022
    Configuration menu
    Copy the full SHA
    77f6e8f View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2022

  1. fix: make some EVM math a bit more robust (#892)

    1. Avoid `as_usize` entirely.
    2. Add some more explicit casts and overflow checking.
    
    I still hate it, but I now hate it a bit less. I'd love to get rid of
    the memory region abstraction, or replace it with something a little
    less brittle.
    
    fixes filecoin-project/ref-fvm#1185
    Stebalien authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    68a2b1b View commit details
    Browse the repository at this point in the history
  2. EVM: rework jump instructions (#893)

    * jmp instructions uncondintionally return the next pc
    
    No need for the option and the branches that come from it
    
    * jmp instructions can skip the noop sled
    
    saves a noop cycle, as it is guaranteed to be there.
    vyzo authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    57d1054 View commit details
    Browse the repository at this point in the history
  3. fix: allow creating empty contracts (#895)

    This is legal in the EVM.
    Stebalien authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    6d7c99e View commit details
    Browse the repository at this point in the history
  4. refactor: rework opcodes definitions and control flow (#896)

    My goal here was simplify the logic around "exiting" so that I could
    reason about it. Specifically, so I could fix some issues with
    SELFDESTRUCT. We had multiple error and success paths and that made me
    nervous.
    
    In the process, I ended up changing a bunch of other things:
    
    1. Exit early by setting the PC.
    2. Go back to propagating the error through `step()` (makes things
    easier to read).
    3. Fix some rust unsafety things.
    4. Move _all_ of the instruction specific logic into the instruction
    definitions. This will let us eventually remove one of these tables.
       - This means that instructions manage their own PCs.
    5. Aggressively inline.
    Stebalien authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    07b3ddb View commit details
    Browse the repository at this point in the history
  5. fix: correctly encode revert data (#899)

    This will be _properly_ fixed in
    filecoin-project/ref-fvm#987, but we need to
    return proper CBOR till then.
    Stebalien authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    eea68aa View commit details
    Browse the repository at this point in the history
  6. fix: handle errors and non-existent addresses in selfdestruct (#897)

    In the EVM:
    
    1. Self destruct continues even if it sends funds into oblivion.
    2. Self destruct will auto-create a beneficiary.
    
    This lets us punt filecoin-project/ref-fvm#736
    to M2.2.
    Stebalien authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    0cc262a View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3c54a25 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    75dee66 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    6386014 View commit details
    Browse the repository at this point in the history
  10. EVM: value + magic gas limit 23k implies METHOD_SEND (#887)

    value + magic gas limit 23k implies METHOD_SEND
    vyzo authored Dec 2, 2022
    Configuration menu
    Copy the full SHA
    80bfa09 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2022

  1. fix: return data from callactor on revert as well (#905)

    * fix: return data from callactor on revert as well
    
    Also, avoid cloning unnecessarily.
    
    * test: callactor return data on revert
    Stebalien authored Dec 3, 2022
    Configuration menu
    Copy the full SHA
    d7c1f31 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1a1c109 View commit details
    Browse the repository at this point in the history
  3. EVM: optimize push ins for u64 sizes (#907)

    * optimize push for u64
    
    * somewhat nicer macro expansion
    vyzo authored Dec 3, 2022
    Configuration menu
    Copy the full SHA
    8b6ab83 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2022

  1. reserve gas for return on CALL (#908)

    * reserve gas for return on CALL
    
    better handling of edge cases
    
    handle 0 gas limit correctly, we still have to reserve
    
    simplify
    
    * don't be sexist
    
    * fix tests; we call gas_available now on every call with gas 0.
    
    * user gas is not sacred it turns out
    
    * use gas avail for min when user specifies gas
    
    * take user's thing if it already reserves.
    
    * use min
    
    * lift common code
    vyzo authored Dec 5, 2022
    Configuration menu
    Copy the full SHA
    8d920b7 View commit details
    Browse the repository at this point in the history
  2. Error early on insufficient balance for Create/Create2 (#906)

    * wip
    
    * exit early on insufficient balance
    
    * rustfmt
    mriise authored Dec 5, 2022
    Configuration menu
    Copy the full SHA
    020e1a5 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2022

  1. EVM: rewrite get_actor_code_cid to get_actor_type (#911)

    * rewrite get_actor_code_cid to get_actor_type
    
    * fix review comments & write tests
    
    * fix more review its
    
    * update tests and use a helper fuction
    mriise authored Dec 6, 2022
    Configuration menu
    Copy the full SHA
    43ebbff View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2022

  1. EVM: Split precompiles into smaller, more readable files (#916)

    split precompiles into smaller, more readable files
    mriise authored Dec 7, 2022
    Configuration menu
    Copy the full SHA
    0aa4a4c View commit details
    Browse the repository at this point in the history
  2. Merge master and integration/builtin-api into next (#918)

    * Remove the market actor state mutation pattern (#734)
    
    Fixes #656
    
    * Proof of concept exported API for Account actor (#797)
    
    * Export stable methods for public access (#807)
    
    * Export Datacap Actor methods
    
    * Export Init Actor methods
    
    * Export Market Actor methods
    
    * Export Miner Actor methods
    
    * Export Multisig Actor methods
    
    * Export Verifreg Actor methods
    
    * Address review
    
    * Restrict internal APIs of all actors (#809)
    
    * Exported API method for market actor escrow/locked balance (#812)
    
    * Power actor: Add exported getters for raw power (#810)
    
    * Power actor: Add exported getters for raw power
    
    * FRC-XXXX is FRC-0042
    
    * Power actor: network_raw_power: Return this_epoch_raw_byte_power
    
    * Power actor: miner_raw_power: Return whether above consensus min power
    
    * Power actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Miner actor: Add exported getters for info and monies (#811)
    
    * Miner actor: Add exported getters for info and monies
    
    * Tweak comment
    
    * Miner actor: Replace GetWorker and GetControls with IsControllingAddress
    
    * Miner actor: Add exported GetAvailableBalance
    
    * Miner actor: Add exported GetVestingFunds
    
    * Miner actor: Remove exported monies getters
    
    * Miner actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Address review
    
    * Built-in market API for deal proposal metadata (#818)
    
    * Call exported authenticate method from PSD (#829)
    
    
    Co-authored-by: zenground0 <[email protected]>
    
    * Drop CALLER_TYPES_SIGNABLE and signable caller validation (#821)
    
    * Market actor: Minor improvements to two exported getters (#826)
    
    * Market actor: GetDealTermExported: Return (start_epoch, duration)
    
    * Market actor: Export getter for deal total price
    
    * Exported API for market deal activation state (#819)
    
    * Paych actor: Drop account req, use AuthenticateMessage to verify sigs (#824)
    
    * Paych actor: Drop account req, use AuthenticateMessage to verify sigs
    
    * Address review
    
    * Address review
    
    * Account actor: Deprecate AuthenticateMessage (#856)
    
    * Market actor: Export PublishStorageDeals (#857)
    
    * Miner: Export several more methods (#863)
    
    * Miner: Export ChangeWorkerAddress
    
    * Miner: Export ChangePeerID
    
    * Miner: Export WithdrawBalance
    
    * Miner: Export ChangeMultiaddrs
    
    * Miner: Export ConfirmUpdateWorkerKey
    
    * Miner: Export RepayDebt
    
    * Miner: Export ChangeOwnerAddress
    
    * Miner: Add exported getters for PeerID & multiaddrs
    
    * Miner: Refactor: Rename ConfirmUpdateWorkerKey to ConfirmChangeWorkerAddress
    
    * Power actor: Export methods to CreateMiner and get miner counts (#868)
    
    * Power: Export CreateMiner
    
    * Power Actor: Export MinerCount and MinerConsensusCount
    
    * Update actors/power/src/lib.rs
    
    Co-authored-by: Alex <[email protected]>
    
    Co-authored-by: Alex <[email protected]>
    
    * Verifreg: Export AddVerifiedClient and GetClaims (#873)
    
    * Verifreg: Rename AddVerifierClientParams to AddVerifiedClientParams
    
    * Verifreg: Export AddVerifiedClient and GetClaims
    
    * Datacap actor: Modify exported methods (#909)
    
    * Datacap: Export Mint and Destroy
    
    * Datacap actor: Deprecate all internal methods
    
    * Datacap actor: Rename BalanceOf to Balance
    
    * Datacap actor: Add Granularity method
    
    * fix: comments on newly exported methods (#910)
    
    Co-authored-by: RK <[email protected]>
    Co-authored-by: Alex <[email protected]>
    Co-authored-by: ZenGround0 <[email protected]>
    Co-authored-by: zenground0 <[email protected]>
    5 people authored Dec 7, 2022
    Configuration menu
    Copy the full SHA
    3c417b8 View commit details
    Browse the repository at this point in the history
  3. EVM-859: Optimize storage footprint (#919)

    * EVM-899: Skip write when no change (#709)
    
    * EVM-899: Don't even call the HAMT store if there was no change.
    
    * EVM-899: Measurement updates with flush fix.
    
    * EVM-890: No hashing by HAMT (#730)
    
    * EVM-890: Use the identity hasher in the EVM
    
    * EVM-890: Update the measurements.
    
    * EVM-890: Fix newline in bash script.
    
    * EVM-890: Fix charts missing series.
    
    * EVM-890: Add key wrapper and use big endian order in hash.
    
    * EVM-890: Update measurements with big endian key order.
    
    * EVM-890: Remove leftover let binding.
    
    * EVM-890: Derive serde
    
    * EVM-890: Fix jq check.
    
    * EVM-891: HAMT link extension measurements (#739)
    
    * EVM-891: Use extensions.
    
    * EVM-891: Update measurements
    
    * EVM-891: Point at the PR branch.
    
    * EVM-891: Update measurements after single char fields
    
    * EVM-890: Fix jq check.
    
    * EVM-892: Keep root small (#740)
    
    * EVM-892: Keep the first 2 levels free of data.
    
    * EVM-892: Update patch branch
    
    * EVM-892: Reduce bit width to 5 (#741)
    
    * EVM-1085: Use Kamt (#855)
    
    * EVM-1085: Use Kamt
    
    * EVM-1085: Update measurements
    
    * EVM-1085: Use the kamt branch on CI.
    
    * EVM-1085: Remove use_extensions option.
    aakoshh authored Dec 7, 2022
    Configuration menu
    Copy the full SHA
    0fc3556 View commit details
    Browse the repository at this point in the history
  4. EVM: implement gas hocus pocus consensus logic (#920)

    * turn gasless value transfers and 2300s into sends
    
    * fix gas in callvariants
    
    * add test for send transformation when value and no gass
    
    * add test for send transformation when no value and gas is 2300
    
    * clippy
    vyzo authored Dec 7, 2022
    Configuration menu
    Copy the full SHA
    c37c68a View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2022

  1. EVM: Call with flags through runtime (#917)

    * wip
    
    * add sending with flags to runtime
    
    * fix a few different issues
    - expectations of send flags
    - call test
    - ensure readonly is being passed through
    
    * replicate sticky readonly behavior of the FVM in the test VM
    
    * add value as a parameter to call_actor precompile
    
    * Update actors/evm/src/interpreter/instructions/call.rs
    
    Co-authored-by: Steven Allen <[email protected]>
    
    * fix issues from review
    - static mode violations are handled by FVM now, remove internal logic around it
    - read_only in test vm is "context" which is/will probably be different than the _Context_ bits
    
    * restrict default impl of  to just tests
    
    * oops
    
    * fmt
    
    Co-authored-by: Steven Allen <[email protected]>
    mriise and Stebalien authored Dec 8, 2022
    Configuration menu
    Copy the full SHA
    a6cf2f3 View commit details
    Browse the repository at this point in the history
  2. chore: update sdk (#924)

    Stebalien authored Dec 8, 2022
    Configuration menu
    Copy the full SHA
    46415d2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b31f593 View commit details
    Browse the repository at this point in the history
  4. fix: correctly handle "0" in EVM call gas (#928)

    1. Update the FVM's SDK to the version that treats 0 as 0 instead of
    infinity.
    2. Correctly set the gas limit to infinity if we're demoting a call to
    METHOD_SEND.
    3. If the user passes 0 gas in the EVM, leave it at 0 (except when
    demoting to METHOD_SEND).
    Stebalien authored Dec 8, 2022
    Configuration menu
    Copy the full SHA
    0fe4a69 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b96e355 View commit details
    Browse the repository at this point in the history
  6. feat: refactor sends to use the unified function (#923)

    This removes the send_read_only variant and makes the simplified `send`
    variant just call `send_generalized.
    Stebalien authored Dec 8, 2022
    Configuration menu
    Copy the full SHA
    077d187 View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2022

  1. Configuration menu
    Copy the full SHA
    36810e9 View commit details
    Browse the repository at this point in the history
  2. Export stable methods for public access (#807)

    * Export Datacap Actor methods
    
    * Export Init Actor methods
    
    * Export Market Actor methods
    
    * Export Miner Actor methods
    
    * Export Multisig Actor methods
    
    * Export Verifreg Actor methods
    
    * Address review
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    0f3d72f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    370223b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    dec77b8 View commit details
    Browse the repository at this point in the history
  5. Power actor: Add exported getters for raw power (#810)

    * Power actor: Add exported getters for raw power
    
    * FRC-XXXX is FRC-0042
    
    * Power actor: network_raw_power: Return this_epoch_raw_byte_power
    
    * Power actor: miner_raw_power: Return whether above consensus min power
    
    * Power actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Miner actor: Add exported getters for info and monies (#811)
    
    * Miner actor: Add exported getters for info and monies
    
    * Tweak comment
    
    * Miner actor: Replace GetWorker and GetControls with IsControllingAddress
    
    * Miner actor: Add exported GetAvailableBalance
    
    * Miner actor: Add exported GetVestingFunds
    
    * Miner actor: Remove exported monies getters
    
    * Miner actor: types: serialize one-element structs transparently
    
    * Address review
    
    * Address review
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    8542732 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5c3ca43 View commit details
    Browse the repository at this point in the history
  7. Call exported authenticate method from PSD (#829)

    Co-authored-by: zenground0 <[email protected]>
    2 people authored and arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    68aaba2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    0e18683 View commit details
    Browse the repository at this point in the history
  9. Market actor: Minor improvements to two exported getters (#826)

    * Market actor: GetDealTermExported: Return (start_epoch, duration)
    
    * Market actor: Export getter for deal total price
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    fdd6303 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    b26fc74 View commit details
    Browse the repository at this point in the history
  11. Paych actor: Drop account req, use AuthenticateMessage to verify sigs (

    …#824)
    
    * Paych actor: Drop account req, use AuthenticateMessage to verify sigs
    
    * Address review
    
    * Address review
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    cd33132 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    d6048c0 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    904bd6a View commit details
    Browse the repository at this point in the history
  14. Miner: Export several more methods (#863)

    * Miner: Export ChangeWorkerAddress
    
    * Miner: Export ChangePeerID
    
    * Miner: Export WithdrawBalance
    
    * Miner: Export ChangeMultiaddrs
    
    * Miner: Export ConfirmUpdateWorkerKey
    
    * Miner: Export RepayDebt
    
    * Miner: Export ChangeOwnerAddress
    
    * Miner: Add exported getters for PeerID & multiaddrs
    
    * Miner: Refactor: Rename ConfirmUpdateWorkerKey to ConfirmChangeWorkerAddress
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    d5f8048 View commit details
    Browse the repository at this point in the history
  15. Power actor: Export methods to CreateMiner and get miner counts (#868)

    * Power: Export CreateMiner
    
    * Power Actor: Export MinerCount and MinerConsensusCount
    
    * Update actors/power/src/lib.rs
    
    Co-authored-by: Alex <[email protected]>
    
    Co-authored-by: Alex <[email protected]>
    arajasek and anorth committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    4a566de View commit details
    Browse the repository at this point in the history
  16. Verifreg: Export AddVerifiedClient and GetClaims (#873)

    * Verifreg: Rename AddVerifierClientParams to AddVerifiedClientParams
    
    * Verifreg: Export AddVerifiedClient and GetClaims
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    6e04569 View commit details
    Browse the repository at this point in the history
  17. Datacap actor: Modify exported methods (#909)

    * Datacap: Export Mint and Destroy
    
    * Datacap actor: Deprecate all internal methods
    
    * Datacap actor: Rename BalanceOf to Balance
    
    * Datacap actor: Add Granularity method
    arajasek committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    fe6320c View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    37cb754 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b35e0e5 View commit details
    Browse the repository at this point in the history
  20. Revert "add Hyperspace testnet parameters and build config."

    This reverts commit b35e0e5.
    raulk committed Dec 11, 2022
    Configuration menu
    Copy the full SHA
    4f52c6b View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2022

  1. Configuration menu
    Copy the full SHA
    9fee117 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a796fe8 View commit details
    Browse the repository at this point in the history
  3. fix: decode revert data (#935)

    Also, always don't abort/revert if we fail to decode the revert data.
    Instead, just return the data without decoding it.
    
    This shouldn't happen if we call an EVM contract, but may happen if we
    call another contract.
    Stebalien authored Dec 12, 2022
    Configuration menu
    Copy the full SHA
    e6458c6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9d02326 View commit details
    Browse the repository at this point in the history
  5. EVM: Dont revert on invalid call to exthash (#921)

    * dont revert on invalid call to exthash
    
    * EXT opcode fixes:
    - add GetBytecodeHash method
    - store bytecode hash, keccak256(bytecode) in state
    - extcodehash return empty hash for precompiles and keccak256([0xfe]) for native actors
    
    * update storage benchmark outputs
    
    * return empy hash for accounts, newtype for evm bytecode hash values
    
    * re-update benchmarks
    mriise authored Dec 12, 2022
    Configuration menu
    Copy the full SHA
    8d2d9d5 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2022

  1. Configuration menu
    Copy the full SHA
    1358db5 View commit details
    Browse the repository at this point in the history
  2. Add test case for extcodehash (#941)

    * add some tests and be exaustive with match arms
    
    * fix test comment
    mriise authored Dec 13, 2022
    Configuration menu
    Copy the full SHA
    f40fa42 View commit details
    Browse the repository at this point in the history
  3. MarketNotifyDeal (#944)

    Co-authored-by: zenground0 <[email protected]>
    ZenGround0 and ZenGround0 authored Dec 13, 2022
    Configuration menu
    Copy the full SHA
    4c1c251 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2022

  1. Configuration menu
    Copy the full SHA
    16a5875 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    90d0c0c View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2022

  1. Replace DIFFICULTY with PREVRANDAO (#942)

    * wip
    
    * cache result of randomness inside of interpeter
    add notes about randomness values in filecoin
    add tests for prevrandao
    change evm prevrandao domain tag to 10
    
    * review fixes
    
    * fmt
    mriise authored Dec 15, 2022
    Configuration menu
    Copy the full SHA
    eb3fc0d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f24470c View commit details
    Browse the repository at this point in the history
  3. fix: reject (f4) actor redeploy after selfdestruct (#952)

    * fix: reject (f4) actor redeploy after selfdestruct
    
    We could also reject this in the FVM, but then we'd have to tell the FVM
    that we're re-assigning an existing ID address.
    
    The downside of this method is that it's _slightly_ more expensive (we
    have to make multiple syscalls instead of one).
    
    The benefit is that it makes auditing and testing this code _much_
    simpler. Before, we were enforcing half the constraints in the FVM, and
    the other half in the init actor, which is why we had into this bug in
    the first place.
    
    fixes filecoin-project/ref-fvm#1175
    
    * fixes
    
    * test it
    
    * fix compile
    Stebalien authored Dec 15, 2022
    Configuration menu
    Copy the full SHA
    4d288f5 View commit details
    Browse the repository at this point in the history
  4. Fix caller check in EVM/EAM constructors (#949)

    * Fix caller check in EVM/EAM constructors
    anorth authored Dec 15, 2022
    Configuration menu
    Copy the full SHA
    6cba788 View commit details
    Browse the repository at this point in the history
  5. Update note on prevrandao (#959)

    Update context.rs
    mriise authored Dec 15, 2022
    Configuration menu
    Copy the full SHA
    aa9ab6e View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2022

  1. Configuration menu
    Copy the full SHA
    0841be4 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2022

  1. Configuration menu
    Copy the full SHA
    0a3b578 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e5e1318 View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2022

  1. Configuration menu
    Copy the full SHA
    19a625b View commit details
    Browse the repository at this point in the history
  2. EVM: Re-order address and data size params of call_actor precompile (#…

    …970)
    
    re-order address and data size params of call_actor precompile
    mriise authored Dec 19, 2022
    Configuration menu
    Copy the full SHA
    a501a94 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    69a790a View commit details
    Browse the repository at this point in the history
  4. bump ethers (#976)

    mriise authored Dec 19, 2022
    Configuration menu
    Copy the full SHA
    b08de0d View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2022

  1. EVM: Don't special case ID address range for actor type (#977)

    * dont special case 'system' id addresses, always check type
    
    * fix actor type precompile test
    
    * fix panic in actor type, add test for it
    mriise authored Dec 20, 2022
    Configuration menu
    Copy the full SHA
    24cbacf View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2022

  1. fix: remove EAM::CreateAccount (#979)

    This is just dead code at this point.
    
    fixes filecoin-project/ref-fvm#1292
    Stebalien authored Dec 21, 2022
    Configuration menu
    Copy the full SHA
    655b7c1 View commit details
    Browse the repository at this point in the history
  2. update embryo actor to placeholder (#978)

    update embroy actor to placeholder according to filecoin-project/FIPs#577
    jennijuju authored Dec 21, 2022
    Configuration menu
    Copy the full SHA
    441abe0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ad141a1 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2022

  1. Configuration menu
    Copy the full SHA
    393d7da View commit details
    Browse the repository at this point in the history
  2. fix: EVM: CALLs to EthAccount should be lowered to bare transfers. (#986

    )
    
    * fix: EVM: CALLs to EthAccount should be lowered to bare transfers.
    
    * catch another one.
    raulk authored Dec 22, 2022
    Configuration menu
    Copy the full SHA
    405bec3 View commit details
    Browse the repository at this point in the history
  3. EVM: Native precompile address fe prefix (#981)

    * move native precompiles to their own addresses with prefix 0xfe
    
    * fmt and remove some stale TODOs
    
    * fix review comments
    
    * comment style consisticy
    mriise authored Dec 22, 2022
    Configuration menu
    Copy the full SHA
    e1ef665 View commit details
    Browse the repository at this point in the history

Commits on Jan 3, 2023

  1. EVM: Pass original caller through to callee for Delegate Call (#994)

    * fix evm_delegate_call's caller bug
    
    * use Eth address for delegate call params instead of ID address
    
    * fmt, add test for delegatecall
    
    Co-authored-by: samuerio <[email protected]>
    mriise and samuerio authored Jan 3, 2023
    Configuration menu
    Copy the full SHA
    1fa3f34 View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2023

  1. EVM: Disable get-randomness precompile (#995)

    * disable get-randomness precompile
    
    * only remove precompile
    mriise authored Jan 4, 2023
    Configuration menu
    Copy the full SHA
    f2514a5 View commit details
    Browse the repository at this point in the history
  2. EVM: Flush state before calling send in Ext opcodes (#993)

    * Use system.send instead of system.rt.send to properly flush state before calling into another actor.
    This is needed since ext* opcodes can/will be called during initcode.
    Ext* calling self durin initcode must have _some_ state flushed in order to fetch it, system.send will flush empty bytecode hashes to state before send for us.
    
    * fmt & fix tests
    
    * add tests for ext size/hash in initcode
    
    * clippy
    
    * fix delegate_call test
    mriise authored Jan 4, 2023
    Configuration menu
    Copy the full SHA
    00d2e10 View commit details
    Browse the repository at this point in the history
  3. EAM: Check addresses for reserved range of native precompile (#997)

    update EAM to check for new reserved range for native precompiles addresses
    mriise authored Jan 4, 2023
    Configuration menu
    Copy the full SHA
    12e271a View commit details
    Browse the repository at this point in the history
  4. EVM: Check that precompile address index is within bounds (#996)

    * check that precompile address last byte/index is within range of precompile array to avoid panic
    
    * clippy
    mriise authored Jan 4, 2023
    Configuration menu
    Copy the full SHA
    3b31742 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c2182a9 View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2023

  1. EVM: fix the stack underflow check on swap (#1000)

    And add a bunch of tests.
    Stebalien authored Jan 6, 2023
    Configuration menu
    Copy the full SHA
    1d62c67 View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2023

  1. EVM: Fix precompiles to output nothing on error (#998)

    * move error handling logic into call instead of from trait, remove unused CallActorError
    
    * use err instead of flattening to empty vec right away
    
    * fmt
    
    * add more logging to precompile calls
    
    * add test for empty failure
    
    * fmt
    mriise authored Jan 7, 2023
    Configuration menu
    Copy the full SHA
    8473c52 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2023

  1. Configuration menu
    Copy the full SHA
    b6bf61c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    93d940b View commit details
    Browse the repository at this point in the history
  3. EVM: Allow Null Addresses to convert into f4 Addresses (#1003)

    * account for null and native precompile address in eth to f4 address conversions
    
    * fmt & err message fix
    
    * be explicit about rejecting null address in EAM
    
    * add eam test for null address
    mriise authored Jan 9, 2023
    1 Configuration menu
    Copy the full SHA
    56339c2 View commit details
    Browse the repository at this point in the history

Commits on Jan 10, 2023

  1. Configuration menu
    Copy the full SHA
    98815e4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    74f36e7 View commit details
    Browse the repository at this point in the history