All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
NetworkState::store
#319 - Add
NetworkState::builder
#319 - Add
Default
implementation forNetworkState
#319 - Add
NetworkStateBuilder
#319 - Introduce lang items as in
dusk-abi
#374 - Add
HostCosts
config structure #205 - Add
NetworkState::with_config
for instantiating a VM with the given configuration #304 - Add
NetworkState::config
for getting instance configuration #304 - Add
Config
andOpCosts
structs #304 - Enable reading the state root #265
- Add
staged
state in addition to the existinghead
andorigin
#302 - Add
unstage
method to remove changes fromstaged
#302 - Add
push
method to push the committed changes toorigin
#302 - Add
exhaust
method toGasMeter
#308 - Add a private
update
method toGasMeter
#308 - Add
Instance
field toStackFrame
#308 - Add
CallContext::top_mut()
#308 - Add new
CallContext::gas_meter
method inops
module
- Make
put
host call charge gas per byte #323 - Change
NetworkState::persist
to require no arguments #319 - Change
NetworkState::new
to require no arguments #319 - Change
NetworkState::transact
to return both a receipt and the resulting state #357 - Change
NetworkState::transact
andNetworkState::query
to take immutable receivers #357 - Change host functions to charge their cost according to config #205
- Change
Config
to includehost_costs
#205 - Change persistence to include configuration hash #304
- Refactor configuration to be a static
Config
per instance #304 - Place both
Contract::state
andContract::code
behindmicrokelvin::Link
#333 - Change
commit
method to commit the changes fromstaged
tohead
#302 - Change
register_host_module
to be an associated function - Replace
GasMeter::set_left(0)
withGasMeter::exhaust()
#308 - Change
CallContext::gas_meter()
to update the gas meter before return it #308
- Remove
NetworkState::restore_from_disk
andNetworkState::restore
#319 - Remove
NetworkState::persist_to_disk
#319 - Remove
NetworkState::with_config
#319 - Remove
NetworkStateId
#319 - Remove state management from
NetworkState
#357 - Remove
NetworkState::with_schedule
#304 - Remove
ModuleConfig
andNetworkState::get_module_config
#304 - Remove
Schedule
as configuration structure #304 - Remove
set_left
method fromGasMeter
#308 - Remove legacy
gas
host function - Remove
CallContext::gas_meter_mut()
#308 - Remove
Gas
host function implementation fromops
module
- Add
NetworkStateId
structure to handle both origin/headPersistedId
- Add utility methods to
NetworkStateId
to save / load from file - Add
persist
module understate
- Update rust toolchain
- Change
NetworkState::persist
to store both origin/head - Change
NetworkState::persist()
to accept the same type ofPersistence::persist()
- Change
NetworkState::restore
to restore both origin/head - Update integration tests
- Change the rust toolchain
- Remove host modules from Rusk-VM's instances
- Fix minor nits on tests
- Add capability of reading the state root #265
- Add log tracing for easier debugging #83
- Add support for transaction rollbacks #263
- Add cache for
wasmer
modules #251 - Add
wasmer
instrumentation #247 - Add CHANGELOG #236
- Add persistence test to stack contract #201
- Add
deploy_with_id
method to NetworkState #210
- Wrap
NetworkState::modules
inHostModules
struct #270 - Port from
wasmi
towasmer
#245 - Update dependencies
- Remove
block_height
fromNetworkState
#269 - Remove Rust toolchain overrides from CI #229
- Remove
set_block_height
from NetworkState #203
- Fix running tests with
wasmer
#248
0.6.1 - 2021-07-08
- Add method to mutate NetworkState bloch_height #197
- Make
persistence
its own feature (was default feature) #195
0.6.0 - 2021-07-06
- Add tests
caller
,callee-1
andcallee-2
fordusk-abi::caller
#185 - Add
gas_consumed
host function #174 - Add
gas_left
host function - Add instrumentation of Wasm byte-code at deploy time #115, #116, see also #174
- Add rust toolchain
- Add benchmark for stack contract #184
- Add Persistence API for rusk-vm NetworkState #191
- Add tests for persistence
- Update dependencies
- Update README
- Change
restore
signature to take self ownership
- Fix overflow in
fibonacci
contract
0.5.1 - 2021-03-12
- Add TxVec test case to check transaction of several KiBs
- Update
dusk-abi
fromv0.6
tov0.7
- Change the tests contracts approach to be simpler
- Change
transact
to store the contract's state before and after
0.5.0 - 2021-03-01
- Add a scoped state for contract's execution #163
- Change
get_contract_state
toget_contract_cast_state
- Add proper error handling where it was still missing
- Update
dusk-abi
tov0.6
0.4.0 - 2021-02-22
- Add
get_contract_state
toNetworkState
- Add support for Module trait
- Rename
hash
contract tobloch_height
- Update dependencies
- Remove Poseidon Hash from Rusk VM
- Remove
verify_proof
as host function from rusk-vm - Remove
dusk-abi
directory (it's been added as standalone crate)
0.3.1 - 2021-02-17
- Add ProofVerification ABICall
- Update dependencies to latest versions
- Update tests to new rusk-profile API
- Fix execute_circuit const-generic Capacity
- Fix rusk tags
- Fix rusk-profile key obtainment failure
0.3.0 - 2021-02-11
- Add phoenix's ops and add opcode host function (see also dusk-network/rusk#8, dusk-network/rusk#28, dusk-network/dusk-abi#2)
- Add
storage_factorial
example for multiple contract calls - Add copyright headers
- Add proper license header
- Add Poseidon Sponge Hash function as host function #131 [see also #123]
- Add
block_height
as host function #128
- Allow contracts to be called by each other
- Refactor the complete library to support contracts written with canonical data-structures
- Replace Travis with Github Actions #84
- Bumb
nstack
tov0.7
andmicrokelvin
tov0.6
0.2.0 - 2020-04-20
- Use https git imports
- Update README
- Remove serde dependencies
- Fix Makefile test
0.1.2 - 2020-04-20
- Add marco for Serialize/Deserialize implementation
- Add Makefile and travis integration
- Add rustup target
- Add test for Serialize/Deserialize
- Add benchmark for factorial
- Add phoenix-abi
- Add phoenix_store host function
- Add transfer contract with Approve a TransferFrom functionality
- Add documentation to public interface
- Add LICENSE
- Change test.sh to make it working on a multiple system / shell
- Move contracts to 'tests' directory
- Refactor ABI call
- Refactor NetworkState
- Refactor MeteredContract
- Change contract deploy model
- Improve WASM generated size #34 #35
- Update imports to be git-based instead of path-based
- Move contract call enums out of contract files
- Update host functions to work with phoenix v2
- Make Provisioners internals private:
- Add method to get raw bytes
- Add method from_bytes
- Get Provisioners addresses from 'to_bytes'
- Bump Kelvin imports
- Fix Resolver issues
- Remove obsolete transfer function
0.1.1 - 2020-02-12
- Add README
- Add 'test_contracts' directory
- Add tool to print out wat from wasm source
- Add basic transaction framework
- Add contract deployment
- Add contract storage
- Add implementation for contract calls
- Add fermion integration
- Add contract signature verification
- Add support for storing arbitrary (de)serializable values in contract state
- Add contract-return implementation
- Add error handling in host_fns
- Add OSX specific linker options
- Add gas-metering
- Add schedule and stack-height
- Add Kelvin integration
- Add NetworkState
0.1.0 - 2019-08-02
- Initial