Releases: cartesi/rollups-contracts
Releases · cartesi/rollups-contracts
v2.1.0-alpha.3
Patch Changes
- 363ca77: Use API token when publishing to Soldeer
v2.1.0-alpha.2
Patch Changes
- 85190ad: Bump foundry from 1.4.2 to 1.4.3
v2.1.0-alpha.1
Patch Changes
- 1eaf7e1: Bump
@usecannon/clifrom 2.22.0 to 2.25.0 - 4604760: Use the zero hash as salt for all
CREATE2deployments - fab54a1: Bump foundry from 1.1.0 to 1.4.2
- b36152b: Bump solc from 0.8.29 to 0.8.30
- 1eaf7e1: Bump
@changesets/clifrom 2.29.4 to 2.29.7 - 949e2d1: Bump target EVM version from cancun to prague
v2.1.0-alpha.0
Minor Changes
- 335414a:
- Add
getNumberOfExecutedOutputs()view function to IApplication interface and implementation. - Add
getNumberOfAcceptedClaims()view function to IConsensus interface and implementations.
- Add
v2.0.1
v2.0.1-alpha.0
Patch Changes
- 84cb34e: Add dotfiles to
.soldeerignore
v2.0.0
Additions
Applications
- Added a
getDeploymentBlockNumberfunction to theIApplicationinterface, for improved event listening - Added a
getDataAvailabilityfunction to theIApplicationinterface
Inputs
- Added the application contract address as input metadata
- Added the base layer chain ID as input metadata
- Added the EIP-4399
PREVRANDAOvalue as input metadata - Added an
InputTooLargeerror to theIInputBoxinterface
Outputs
- Added an
Outputsinterface with the signatures of all canonical output types (notices,CALLvouchers, andDELEGATECALLvouchers) - Added a
valuefield toCALLvouchers, to encode the amount of Wei transferred through the message call - Added a new type of executable output:
DELEGATECALLvouchers - Added an
executeOutputfunction to theIApplicationinterface - Added a
wasOutputExecutedfunction to theIApplicationinterface - Added a
validateOutputfunction to theIApplicationinterface - Added a
validateOutputHashfunction to theIApplicationinterface - Added an
OutputExecutedevent to theIApplicationinterface - Added an
OutputNotExecutableerror to theIApplicationinterface, for when trying to execute a notice, for example - Added an
OutputNotReexecutableerror to theIApplicationinterface, for when trying to re-execute a voucher, for example - Added an
InsufficientFundserror to theIApplicationinterface, for when trying to execute a voucher with more value than the contract balance - Added an
InvalidOutputHashesSiblingsArrayLengtherror to theIApplicationinterface, for when providing a siblings array with invalid length - Added an
InvalidOutputsMerkleRooterror to theIApplicationinterface, when the outputs Merkle root derived from the validity proof is invalid - Added an
IOutputsMerkleRootValidatorinterface, to substituteIConsensusin theIApplicationinterface - Added a
SafeERC20Transfercontract to be called viaDELEGATECALLvouchers to safely transfer ERC-20 tokens (by checking whethertransferFromreturnstrue) - Added a
LibAddresslibrary for safely calling and delegating calls to foreign contracts - Added a
LibErrorlibrary for raising byte arrays as errors - Added a
LibMerkle32library for verifying Merkle proofs with 32-byte leaves
Portals
- Added an
EtherTransferFailederror to theIEtherPortalinterface - Added an
ERC20TransferFailederror to theIERC20Portalinterface
Consensus
- Added a
submitClaim(address,uint256,bytes32)function to theIConsensusinterface - Added a
getEpochLengthfunction to theIConsensusinterface - Added a
ClaimSubmittedevent to theIConsensusinterface - Added a
ClaimAcceptedevent to theIConsensusinterface - Added a
NotEpochFinalBlockevent to theIConsensusinterface, for when trying to submit a claim with a last processed block that is not at the end of an epoch - Added a
NotPastBlockevent to theIConsensusinterface, for when trying to submit a claim with a last processed block that is not in the past - Added a
NotFirstClaimevent to theIConsensusinterface, for when trying to submit two claims for the same epoch - Added an
IQuoruminterface (which inherits from theIConsensusinterface) - Added an
IQuorumFactoryinterface for instantiating contracts that implement theIQuoruminterface - Added a
Quorumcontract (which implements theIQuoruminterface) - Added a
QuorumFactorycontract (which implements theIQuorumFactoryby instantiatingQuorumcontracts)
Others
- Added a
getDeploymentBlockNumberfunction to theIInputBoxinterface, for improved event listening - Added an
IOwnableinterface with functions from OpenZeppelin'sOwnableabstract contract - Added a Cannonfile to describe the deployment of all singletons (
InputBox, portals, factories, andSafeERC20Transfer) - Added a workflow to publish the contracts source code to Soldeer, a package manager for Solidity dependencies
Changes
Applications
- Renamed
CartesiDAppasApplication - Renamed
ICartesiDAppasIApplication - Renamed
CartesiDAppFactoryasApplicationFactory - Renamed
ICartesiDAppFactoryasIApplicationFactory
Inputs
- Changed the semantics of the
inputparameter of theInputAddedevent to encode both payload and metadata - Changed the semantics of the
getInputHashfunction of theIInputBoxinterface to be the hash of the input blob (which encodes both payload and metadata) - Changed the input size limit from 2097088 bytes (~2 MB) to 64 KB to ensure inputs can be merkelized later during Dave PRT disputes
Outputs
- Changed the
OutputValidityProofstruct to contain just the output index and the output hashes siblings array - Changed the
executeOutputfunction (formerexecuteVoucher) to propagate errors raised by executable outputs (which includes vouchers)
Portals and Relays
- Changed the ERC-20 portal to only add deposit inputs if the transfers are successful (that is, when
transferFromreturnstrue), removing the need for thesuccessfield - Renamed
InputRelayasPortal - Renamed
IInputRelayasIPortal
Consensus
- Changed the
IConsensusinterface to inherit from theIOutputsMerkleRootValidatorand ERC-165 interface
Others
- Changed the Node.js package manager used in the repository from
yarntopnpm - Changed the tool to deploy the smart contracts from
hardhat-deployto Cannon - Changed the package manager used to manage Solidity dependencies from Node.js to Soldeer
Removals
Inputs
- Removed the
senderparameter from theInputAddedevent (the sender address is now encoded in the input) - Removed the
InputSizeExceedsLimiterror in favor of theInputTooLargeerror
Outputs
- Removed the
executeVoucherfunction in favor of the more genericexecuteOutputfunction - Removed the
validateNoticefunction in favor of the more genericvalidateOutputandvalidateOutputHashfunctions - Removed the Boolean return value from the
executeOutput(formerexecuteVoucher) andvalidateOutput(formervalidateNotice) functions - Removed the
VoucherExecutedevent in favor of the more genericOutputExecutedevent - Removed the
voucherIdparameter from theOutputExecutedevent (formerVoucherExecuted) in favor of the more genrericoutputIndexparameter - Removed the
wasVoucherExecutedevent in favor of the more genericwasOutputExecutedfunction - Removed the
withdrawEtherfunction fromApplicationin favor of vouchers with thevaluefield set to the desired amount of Wei to be withdrawn - Removed the
OnlyApplicationerror fromApplicationas it was only used by thewithdrawEtherfunction - Removed the
EtherTransferFailederror fromApplicationas it was only used by thewithdrawEtherfunction
Portals and Relays
- Removed the
successfield from the ERC-20 deposit input because all ERC-20 deposit inputs are now successful - Removed the
DAppAddressRelaycontract in favor of the application contract address field added as input metadata - Removed the
IDAppAddressRelayinterface
Consensus
- Removed the
joinfunction from theIConsensusinterface - Removed the
getClaimfunction from theIConsensusinterface in favor of theisOutputsMerkleRootValidfunction from theIOutputsMerkleRootValidatorinterface - Removed the
ApplicationJoinedevent from theIConsensusinterface - Removed the
submitClaim(bytes)function from theIConsensusinterface in favor of thesubmitClaim(address,uint256,bytes32)function - Removed
authorityOwnerparameter fromAuthorityCreatedevent - Removed the
AuthorityWithdrawalFailederror from theAuthoritycontract - Removed the
NewHistoryevent from theAuthoritycontract - Removed the
getHistoryfunction from theAuthoritycontract - Removed the
migrateHistoryToConsensusfunction from theAuthoritycontract - Removed the
setHistoryfunction from theAuthoritycontract - Removed the
withdrawERC20Tokensfunction from theAuthoritycontract
History
- Removed the
Historycontract - Removed the
IHistoryinterface - Removed the
HistoryFactorycontract - Removed the
IHistoryFactoryinterface - Removed the
AuthorityHistoryPairFactorycontract - Removed the
IAuthorityHistoryPairFactoryinterface - Removed the
getAuthorityHistoryPairFactoryfunction from theISelfHostedApplicationFactoryinterface
Dependency bumps
- Bumped Solidity from 0.8.19 to 0.8.29
- Bumped OpenZeppelin contracts from 4.9.2 to 5.2.0
- Bumped Foundry from nightly builds to 1.1.0
- Bumped Node.js from 18 to 22
- Bumped Alloy from 0.3.1 to 0.12.4
v2.0.0-rc.18
v2.0.0-rc.17
Major Changes
-
bc0558f: Rename events:
-
ClaimAcceptance->ClaimAccepted -
ClaimSubmission->ClaimSubmitted -
NewOutputsMerkleRootValidator->OutputsMerkleRootValidatorChanged
-
Minor Changes
- 5e19b4b: Add
getDeploymentBlockNumberfunction toIApplicationinterface
Patch Changes
- 8fe54d7: Fix workflow that publishes Rust bindings
v2.0.0-rc.16
Minor Changes
- 597dc74: Add Cannonfile