• Sasha Gryaznov's avatar
    contracts: switch to wasmi gas metering (#14084) · fda86dd5
    Sasha Gryaznov authored
    * upgrade to wasmi 0.29
    
    * prepare cleanup
    
    * sync ref_time w engine from the stack frame
    
    * proc_macro: sync gas in host funcs
    
    save: compiles, only gas pushing left to macro
    
    WIP proc macro
    
    proc macro: done
    
    * clean benchmarks & schedule: w_base = w_i64const
    
    * scale gas values btw engine and gas meter
    
    * (re)instrumentation & code_cache removed
    
    * remove gas() host fn, continue clean-up
    
    save
    
    * address review comments
    
    * move from CodeStorage&PrefabWasmModule to PristineCode&WasmBlob
    
    * refactor: no reftime_limit&schedule passes, no CodeStorage
    
    * bugs fixing
    
    * fix tests: expected deposit amount
    
    * fix prepare::tests
    
    * update tests and fix bugs
    
    tests::run_out_of_gas_engine, need 2 more
    
    save: 2 bugs with gas syncs: 1 of 2 tests done
    
    gas_syncs_no_overcharge bug fixed, test passes!
    
    cleaned out debug prints
    
    second bug is not a bug
    
    disabled_chain_extension test fix (err msg)
    
    tests run_out_of_fuel_host, chain_extension pass
    
    all tests pass
    
    * update docs
    
    * bump wasmi 0.30.0
    
    * benchmarks updated, tests pass
    
    * refactoring
    
    * s/OwnerInfo/CodeInfo/g;
    
    * migration: draft, compiles
    
    * migration: draft, runs
    
    * migration: draft, runs (fixing)
    
    * deposits repaid non pro rata
    
    * deposits repaid pro rata
    
    * better try-runtime output
    
    * even better try-runtime output
    
    * benchmark migration
    
    * fix merge leftover
    
    * add forgotten fixtures, fix docs
    
    * address review comments
    
    * ci fixes
    
    * cleanup
    
    * benchmarks::prepare to return DispatchError
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
    
    * store memory limits to CodeInfo
    
    * ci: roll back weights
    
    * ".git/.scripts/commands/bench-vm/bench-vm.sh" pallet dev pallet_contracts
    
    * drive-by: update Readme and pallet rustdoc
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
    
    * use wasmi 0.29
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
    
    * use wasmi 0.30 again
    
    * query memory limits from wasmi
    
    * better migration types
    
    * ci: pull weights from master
    
    * refactoring
    
    * ".git/.scripts/commands/bench-vm/bench-vm.sh" pallet dev pallet_contracts
    
    * addressing review comments
    
    * refactor
    
    * address review comments
    
    * optimize migration
    
    * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
    
    * another review round comments addressed
    
    * ci fix one
    
    * clippy fix
    
    * ci fix two
    
    ---------
    
    Co-authored-by: command-bot <>
    fda86dd5