Skip to content

Releases: dusk-network/piecrust

Release 0.17.1

19 Mar 13:08
Compare
Choose a tag to compare

piecrust 0.17.1 - 2024-03-19

Fixed

  • Fix Session::migrate to replace the contract ID in the new contract's
    metadata to the old contract's ID [#347]

Release 0.17.0

08 Mar 11:43
a681491
Compare
Choose a tag to compare

Added

  • Add ContractDataBuilder::owner to allow for setting the owner of a contract
    on deploy time [#336]

Changed

  • Change migrate to take the owner of the contract being replaced if it is
    not set by the caller [#336]
  • Make owner field optional in ContractData and ContractDataBuilder [#336]
  • Change ContractData and ContractDataBuilder to take a Vec<u8> as owner
    instead of [u8; N] [#336]
  • Use empty constructor arguments by default [#316]
  • Upgrade dusk-wasmtime to version 18

Release 0.16.0

14 Feb 15:49
7f0b326
Compare
Choose a tag to compare

piecrust 0.16.0 - 2024-02-14

Changed

  • Change call and feeder_call functions to support bytecheck-based integrity check of arguments [#324]

Added

  • Add Session::migrate to allow for swapping contract code [#313]

Changed

  • Upgrade dusk-wasmtime to version 17

Fixed

  • Fix overflow in gas limit calculation in inter-contract call

uplink 0.11.0 - 2024-02-14

Added

  • Add wrap_call_unchecked function for calls with no argument checking [#324]

Changed

  • Change wrap_call function to support bytecheck-based integrity check of arguments [#324]

Release 0.15.0

24 Jan 10:48
eadc8b4
Compare
Choose a tag to compare

piecrust 0.15.0 - 2024-01-24

Changed

  • Change owner import to accept the contract ID as argument and return
    non-zero upon success

uplink 0.10.0 - 2024-01-24

Added

  • Add self_owner function returning the owner of the calling contract

Changed

  • Change owner function to take a ContractId as argument and return an Option<[u8; N]>
  • Change owner extern to take a *const u8 argument signifying the contract ID

Release 0.14.0

13 Dec 14:41
7b40eb9
Compare
Choose a tag to compare

piecrust 0.14.0 - 2023-12-13

Added

  • Use ContractError::to_parts to write error messages to the argument buffer [#301]

Changed

  • Change documentation to change terminology from points to gas
  • Rename CallReceipt::points_limit and CallReceipt::points_spent to
    CallReceipt::gas_limit and CallReceipt::gas_spent respectively
  • Rename Error::OutOfPoints to Error::OutOfGas
  • Rename Error::ContractPanic to Error::Panic to be more clear that the entire
    execution panicked [#301]
  • Upgrade dusk-wasmtime to version 15
  • De-instantiate modules after call [#296]
  • Change Session::memory_len to return Result<Option<usize>>, and not
    require a contract to be instantiated [#296]

Removed

  • Remove once_cell dependency

Fixed

  • Fix improper use of mach_ports
  • Fix inconsistent state root after erroring call [#296]

uplink 0.9.0 - 2023-12-13

Added

  • Add ContractError::to_parts and ContractError::from_parts functions [#301]
  • Add fn_name and fn_arg as an argument to call_raw and call_raw_with_limit [#301]

Changed

  • Change variable names and documentation to match the gas terminology as
    opposed to points
  • Rename ContractError::Other to ContractError::Unknown [#301]
  • Change Display for ContractError to display messages [#301]
  • Change ContractError variants to be CamelCase [#301]

Removed

  • Remove ContractError::from_code function [#301]
  • Remove raw_call as an argument of call_raw and call_raw_with_limit [#301]
  • Remove RawCall and RawResult [#301]

Release `0.13.0`

22 Nov 10:49
a4a5432
Compare
Choose a tag to compare

0.13.0 - 2023-11-22

Added

  • Add Session::memory_pages allowing for inclusion proofs of pages [#273]

Changed

  • Change state tree to distinguish between 32 and 64 bit smart contracts [#273]

Release `0.12.0`

01 Nov 10:53
78caaca
Compare
Choose a tag to compare

0.12.0 - 2023-11-01

Added

  • Support memory64 smart contracts [#281]
  • Add some Error variants:
    • InvalidFunction
    • InvalidMemory
  • Add once_cell dependency

Changed

  • Upgrade dusk-merkle to version 0.5
  • Change contract tree to be arity 4 and height 17 [#159]
  • Maximum contract size is now 4TiB [#159]
  • Change Error::RuntimeError variant to contain dusk_wasmtime::Error,
    and changed From implementation
  • Switch runtime from wasmer to wasmtime

Removed

  • Remove parking_lot dependency
  • Remove colored dependency
  • Remove 4 page - 256KiB - minimum memory requirement for contracts
  • Remove Clone derivation for Error
  • Remove some Error variants, along with From implementations:
    • CompileError
    • DeserializeError
    • ExportError
    • InstantiationError
    • InvalidFunctionSignature
    • MemorySetupError
    • ParsingError
    • SerializeError
    • Trap

Fixed

  • Fix loading of compiled contracts from state transported from different
    platforms [#287]

Release `0.11.0`

11 Oct 10:09
6e63948
Compare
Choose a tag to compare

piecrust 0.11.0 - 2023-10-11

Added

  • Add spent field to CallTreeElem [#206]
  • Add call_tree to CallReceipt [#206]
  • Expose CallTree and CallTreeElem in the public API [#206]
  • Add CallTreeIter to improve iteration over call tree [#206]
  • Add panic import implementation [#271]
  • Add Error::ContractPanic variant [#271]

Changed

  • Adapt to use LocateFile - crumbles's lazy page loading mechanism
  • Adapt to crumbles needing n_pages and page_size
  • Change return of owner and self_id to ()
  • Rename StackElement to CallTreeElem [#206]
  • Allow for multiple initializations on a new memory [#271]
  • Downcast Error::RuntimeError on each call boundary [#271]

Removed

  • Remove CallStack in favor of CallTree [#206]

uplink 0.8.0 - 2023-10-11

Added

  • Add call to panic in panic handler [#271]
  • Add panic extern [#271]

Changed

  • Change return of owner and self_id to ()

Removed

  • Remove call to hdebug on panic [#271]

crumbles 0.3.0 - 2023-10-11

Added

  • Add LocateFile trait for getting file paths for mapping
  • Allow for choosing the size of the mapping

Changed

  • Mapping behavior is now lazy, mapping pages to their regions on demand
  • Change Mmap::with_files to take LocateFile instead of IntoIterator<Item = io::Result<(usize, File)>>
  • Change Mmap::new and Mmap::with_files to take n_pages and page_size

Release `0.10.0`

21 Sep 11:13
5beb258
Compare
Choose a tag to compare

piecrust 0.10.0 - 2023-09-13

Added

  • Add Session::memory_len to get the length of a memory in session [#268]

Changed

  • Change minimum number of pages to be 4
  • Change reporting of memory to the host to be the total range of the memory
    mapping available

Removed

  • Fake guard pages are now removed

Fixed

  • Revert memory size on errors [#268]
  • Fix reporting of memory size to wasmer [#268]

uplink 0.7.1 - 2023-09-13

Added

  • Expose arg_buf::with_arg_buf to allow for custom argument buffer handling [#268]

crumbles 0.2.0 - 2023-09-13

Changed

  • Change AsRef<[u8]> and AsMut<[u8]> implementations for Mmap to always
    return the entire mapping
  • Change segfault handler to no longer handle "Out of Bounds", since rust
    already handles this correctly - with a panic

Removed

  • Remove Mmap::set_len
  • Remove len field from MmapInner

Release `0.9.0`

30 Aug 10:08
363a4ba
Compare
Choose a tag to compare

piecrust 0.9.0 - 2023-08-30

Changed

  • Change commit write behavior to write dirty pages instead of diffs [#253]
  • Change memory backend to use crumbles instead of libc directly [#253]

Removed

  • Remove Session::squash_commit since it's irrelevant with the new commit behavior [#253]
  • Remove libc dependency [#253]
  • Remove flate2 dependency [#253]
  • Remove qbsdiff dependency [#253]

crumbles 0.1.0 - 2023-08-30

Added

  • Initial release