Skip to content

Releases: cartesi/rollups-contracts

v2.1.0-alpha.3

27 Oct 14:40

Choose a tag to compare

v2.1.0-alpha.3 Pre-release
Pre-release

Patch Changes

  • 363ca77: Use API token when publishing to Soldeer

v2.1.0-alpha.2

27 Oct 10:52

Choose a tag to compare

v2.1.0-alpha.2 Pre-release
Pre-release

Patch Changes

  • 85190ad: Bump foundry from 1.4.2 to 1.4.3

v2.1.0-alpha.1

21 Oct 18:59

Choose a tag to compare

v2.1.0-alpha.1 Pre-release
Pre-release

Patch Changes

  • 1eaf7e1: Bump @usecannon/cli from 2.22.0 to 2.25.0
  • 4604760: Use the zero hash as salt for all CREATE2 deployments
  • 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/cli from 2.29.4 to 2.29.7
  • 949e2d1: Bump target EVM version from cancun to prague

v2.1.0-alpha.0

14 Oct 13:04

Choose a tag to compare

v2.1.0-alpha.0 Pre-release
Pre-release

Minor Changes

  • 335414a:
    • Add getNumberOfExecutedOutputs() view function to IApplication interface and implementation.
    • Add getNumberOfAcceptedClaims() view function to IConsensus interface and implementations.

v2.0.1

09 Jun 16:42

Choose a tag to compare

Patch Changes

  • 84cb34e: Add dotfiles to .soldeerignore

v2.0.1-alpha.0

09 Jun 12:02

Choose a tag to compare

v2.0.1-alpha.0 Pre-release
Pre-release

Patch Changes

  • 84cb34e: Add dotfiles to .soldeerignore

v2.0.0

30 May 15:42

Choose a tag to compare

Additions

Applications

  • Added a getDeploymentBlockNumber function to the IApplication interface, for improved event listening
  • Added a getDataAvailability function to the IApplication interface

Inputs

  • Added the application contract address as input metadata
  • Added the base layer chain ID as input metadata
  • Added the EIP-4399 PREVRANDAO value as input metadata
  • Added an InputTooLarge error to the IInputBox interface

Outputs

  • Added an Outputs interface with the signatures of all canonical output types (notices, CALL vouchers, and DELEGATECALL vouchers)
  • Added a value field to CALL vouchers, to encode the amount of Wei transferred through the message call
  • Added a new type of executable output: DELEGATECALL vouchers
  • Added an executeOutput function to the IApplication interface
  • Added a wasOutputExecuted function to the IApplication interface
  • Added a validateOutput function to the IApplication interface
  • Added a validateOutputHash function to the IApplication interface
  • Added an OutputExecuted event to the IApplication interface
  • Added an OutputNotExecutable error to the IApplication interface, for when trying to execute a notice, for example
  • Added an OutputNotReexecutable error to the IApplication interface, for when trying to re-execute a voucher, for example
  • Added an InsufficientFunds error to the IApplication interface, for when trying to execute a voucher with more value than the contract balance
  • Added an InvalidOutputHashesSiblingsArrayLength error to the IApplication interface, for when providing a siblings array with invalid length
  • Added an InvalidOutputsMerkleRoot error to the IApplication interface, when the outputs Merkle root derived from the validity proof is invalid
  • Added an IOutputsMerkleRootValidator interface, to substitute IConsensus in the IApplication interface
  • Added a SafeERC20Transfer contract to be called via DELEGATECALL vouchers to safely transfer ERC-20 tokens (by checking whether transferFrom returns true)
  • Added a LibAddress library for safely calling and delegating calls to foreign contracts
  • Added a LibError library for raising byte arrays as errors
  • Added a LibMerkle32 library for verifying Merkle proofs with 32-byte leaves

Portals

  • Added an EtherTransferFailed error to the IEtherPortal interface
  • Added an ERC20TransferFailed error to the IERC20Portal interface

Consensus

  • Added a submitClaim(address,uint256,bytes32) function to the IConsensus interface
  • Added a getEpochLength function to the IConsensus interface
  • Added a ClaimSubmitted event to the IConsensus interface
  • Added a ClaimAccepted event to the IConsensus interface
  • Added a NotEpochFinalBlock event to the IConsensus interface, for when trying to submit a claim with a last processed block that is not at the end of an epoch
  • Added a NotPastBlock event to the IConsensus interface, for when trying to submit a claim with a last processed block that is not in the past
  • Added a NotFirstClaim event to the IConsensus interface, for when trying to submit two claims for the same epoch
  • Added an IQuorum interface (which inherits from the IConsensus interface)
  • Added an IQuorumFactory interface for instantiating contracts that implement the IQuorum interface
  • Added a Quorum contract (which implements the IQuorum interface)
  • Added a QuorumFactory contract (which implements the IQuorumFactory by instantiating Quorum contracts)

Others

  • Added a getDeploymentBlockNumber function to the IInputBox interface, for improved event listening
  • Added an IOwnable interface with functions from OpenZeppelin's Ownable abstract contract
  • Added a Cannonfile to describe the deployment of all singletons (InputBox, portals, factories, and SafeERC20Transfer)
  • Added a workflow to publish the contracts source code to Soldeer, a package manager for Solidity dependencies

Changes

Applications

  • Renamed CartesiDApp as Application
  • Renamed ICartesiDApp as IApplication
  • Renamed CartesiDAppFactory as ApplicationFactory
  • Renamed ICartesiDAppFactory as IApplicationFactory

Inputs

  • Changed the semantics of the input parameter of the InputAdded event to encode both payload and metadata
  • Changed the semantics of the getInputHash function of the IInputBox interface 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 OutputValidityProof struct to contain just the output index and the output hashes siblings array
  • Changed the executeOutput function (former executeVoucher) 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 transferFrom returns true), removing the need for the success field
  • Renamed InputRelay as Portal
  • Renamed IInputRelay as IPortal

Consensus

  • Changed the IConsensus interface to inherit from the IOutputsMerkleRootValidator and ERC-165 interface

Others

  • Changed the Node.js package manager used in the repository from yarn to pnpm
  • Changed the tool to deploy the smart contracts from hardhat-deploy to Cannon
  • Changed the package manager used to manage Solidity dependencies from Node.js to Soldeer

Removals

Inputs

  • Removed the sender parameter from the InputAdded event (the sender address is now encoded in the input)
  • Removed the InputSizeExceedsLimit error in favor of the InputTooLarge error

Outputs

  • Removed the executeVoucher function in favor of the more generic executeOutput function
  • Removed the validateNotice function in favor of the more generic validateOutput and validateOutputHash functions
  • Removed the Boolean return value from the executeOutput (former executeVoucher) and validateOutput (former validateNotice) functions
  • Removed the VoucherExecuted event in favor of the more generic OutputExecuted event
  • Removed the voucherId parameter from the OutputExecuted event (former VoucherExecuted) in favor of the more genreric outputIndex parameter
  • Removed the wasVoucherExecuted event in favor of the more generic wasOutputExecuted function
  • Removed the withdrawEther function from Application in favor of vouchers with the value field set to the desired amount of Wei to be withdrawn
  • Removed the OnlyApplication error from Application as it was only used by the withdrawEther function
  • Removed the EtherTransferFailed error from Application as it was only used by the withdrawEther function

Portals and Relays

  • Removed the success field from the ERC-20 deposit input because all ERC-20 deposit inputs are now successful
  • Removed the DAppAddressRelay contract in favor of the application contract address field added as input metadata
  • Removed the IDAppAddressRelay interface

Consensus

  • Removed the join function from the IConsensus interface
  • Removed the getClaim function from the IConsensus interface in favor of the isOutputsMerkleRootValid function from the IOutputsMerkleRootValidator interface
  • Removed the ApplicationJoined event from the IConsensus interface
  • Removed the submitClaim(bytes) function from the IConsensus interface in favor of the submitClaim(address,uint256,bytes32) function
  • Removed authorityOwner parameter from AuthorityCreated event
  • Removed the AuthorityWithdrawalFailed error from the Authority contract
  • Removed the NewHistory event from the Authority contract
  • Removed the getHistory function from the Authority contract
  • Removed the migrateHistoryToConsensus function from the Authority contract
  • Removed the setHistory function from the Authority contract
  • Removed the withdrawERC20Tokens function from the Authority contract

History

  • Removed the History contract
  • Removed the IHistory interface
  • Removed the HistoryFactory contract
  • Removed the IHistoryFactory interface
  • Removed the AuthorityHistoryPairFactory contract
  • Removed the IAuthorityHistoryPairFactory interface
  • Removed the getAuthorityHistoryPairFactory function from the ISelfHostedApplicationFactory interface

Dependency bumps

v2.0.0-rc.18

10 May 19:01

Choose a tag to compare

v2.0.0-rc.18 Pre-release
Pre-release

Major Changes

  • 263543d: Avoid conflicting claims in Quorum

Minor Changes

  • 6e893a7: Make Authority and Quorum validate last processed block number

Patch Changes

  • 101bc7a: Bump solc from 0.8.23 to 0.8.29

v2.0.0-rc.17

25 Mar 19:32

Choose a tag to compare

v2.0.0-rc.17 Pre-release
Pre-release

Major Changes

  • bc0558f: Rename events:

    • ClaimAcceptance -> ClaimAccepted

    • ClaimSubmission -> ClaimSubmitted

    • NewOutputsMerkleRootValidator -> OutputsMerkleRootValidatorChanged

Minor Changes

  • 5e19b4b: Add getDeploymentBlockNumber function to IApplication interface

Patch Changes

  • 8fe54d7: Fix workflow that publishes Rust bindings

v2.0.0-rc.16

19 Mar 13:00

Choose a tag to compare

v2.0.0-rc.16 Pre-release
Pre-release

Minor Changes