Releases: dusk-network/piecrust
Releases · dusk-network/piecrust
Release 0.17.1
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
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 inContractData
andContractDataBuilder
[#336] - Change
ContractData
andContractDataBuilder
to take aVec<u8>
as owner
instead of[u8; N]
[#336] - Use empty constructor arguments by default [#316]
- Upgrade
dusk-wasmtime
to version18
Release 0.16.0
piecrust 0.16.0 - 2024-02-14
Changed
- Change
call
andfeeder_call
functions to supportbytecheck
-based integrity check of arguments [#324]
Added
- Add
Session::migrate
to allow for swapping contract code [#313]
Changed
- Upgrade
dusk-wasmtime
to version17
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 supportbytecheck
-based integrity check of arguments [#324]
Release 0.15.0
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 aContractId
as argument and return anOption<[u8; N]>
- Change
owner
extern to take a*const u8
argument signifying the contract ID
Release 0.14.0
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
togas
- Rename
CallReceipt::points_limit
andCallReceipt::points_spent
to
CallReceipt::gas_limit
andCallReceipt::gas_spent
respectively - Rename
Error::OutOfPoints
toError::OutOfGas
- Rename
Error::ContractPanic
toError::Panic
to be more clear that the entire
execution panicked [#301] - Upgrade
dusk-wasmtime
to version15
- De-instantiate modules after call [#296]
- Change
Session::memory_len
to returnResult<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
andContractError::from_parts
functions [#301] - Add
fn_name
andfn_arg
as an argument tocall_raw
andcall_raw_with_limit
[#301]
Changed
- Change variable names and documentation to match the
gas
terminology as
opposed topoints
- Rename
ContractError::Other
toContractError::Unknown
[#301] - Change
Display
forContractError
to display messages [#301] - Change
ContractError
variants to be CamelCase [#301]
Removed
Release `0.13.0`
Release `0.12.0`
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 version0.5
- Change contract tree to be arity 4 and height 17 [#159]
- Maximum contract size is now 4TiB [#159]
- Change
Error::RuntimeError
variant to containdusk_wasmtime::Error
,
and changedFrom
implementation - Switch runtime from
wasmer
towasmtime
Removed
- Remove
parking_lot
dependency - Remove
colored
dependency - Remove 4 page - 256KiB - minimum memory requirement for contracts
- Remove
Clone
derivation forError
- Remove some
Error
variants, along withFrom
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`
piecrust 0.11.0 - 2023-10-11
Added
- Add
spent
field toCallTreeElem
[#206] - Add
call_tree
toCallReceipt
[#206] - Expose
CallTree
andCallTreeElem
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
needingn_pages
andpage_size
- Change return of
owner
andself_id
to()
- Rename
StackElement
toCallTreeElem
[#206] - Allow for multiple initializations on a new memory [#271]
- Downcast
Error::RuntimeError
on each call boundary [#271]
Removed
- Remove
CallStack
in favor ofCallTree
[#206]
uplink 0.8.0 - 2023-10-11
Added
Changed
- Change return of
owner
andself_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 takeLocateFile
instead ofIntoIterator<Item = io::Result<(usize, File)>>
- Change
Mmap::new
andMmap::with_files
to taken_pages
andpage_size
Release `0.10.0`
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
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]>
andAsMut<[u8]>
implementations forMmap
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 fromMmapInner
Release `0.9.0`
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 oflibc
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