- 321e29a: Support deployment to
arbitrum_sepolia
andoptimism_sepolia
networks. - 618121e: Bumped
@cartesi/util
from 6.0.0 to 6.1.0.
AuthorityFactory
: Allows anyone to deployAuthority
contracts. Supports deterministic deployment.HistoryFactory
: Allows anyone to deployHistory
contracts. Supports deterministic deployment.AuthorityHistoryPairFactory
: Allows anyone to deployAuthority
andHistory
contract pairs (such thatHistory
is owned byAuthority
, andAuthority
stores/retrieves claims fromHistory
). Supports deterministic deployment.Authority
: Removed deployment files and script.History
: Removed deployment files and script.
- Added
InvalidClaimIndex
error inHistory
contract - Made portals and relays inherit
InputRelay
- Renamed
inboxInputIndex
toinputIndex
in contracts - Deployed contracts deterministically with
CREATE2
factory - Renamed fields in
OutputValidityProof
structure - Updated
@cartesi/util
to 6.0.0 - Removed base portal and relay contracts and interfaces
- Removed
ConsensusCreated
event fromAuthority
contract - Removed
IInputBox
parameter fromAuthority
constructor - Fixed input size limit in
InputBox
contract
- Added input relay interface and base contract
- Deployed ERC-1155 portals
- Added
RPC_URL
environment variable during deployment - Started using custom errors in contracts
- Improved proof generation system for on-chain tests
- Simplified the on-chain architecture (not backwards-compatible)
CartesiDApp
does not implement EIP-2535 anymore- Made each Portal a contract of their own, and shared amongst all the DApps
- Made inputs added by Portals more compact by using the packed ABI encoding instead of the standard one
- Made ERC-20 deposits more generic by allowing base layer transfers to fail, and adding a boolean field signaling whether it was successful or not
- Made ERC-721 deposits more generic by adding an arbitrary data field to be interpreted by the off-chain machine in the execution layer
- Moved the input boxes of every DApp into a single, permissionless contract
- Input boxes are now append-only—they are not cleared every new epoch (old Input Facet)
- Modularized the consensus layer (a DApp can now seamlessly change its consensus model)
- Modularized the claim storage layer (a consensus can now seamlessly change how it stores claims)
- Voucher bitmask position is now determined by the input index (in the input box) and output index
- Validators need now to specify the range of inputs of each claim they submit on-chain
- Removed Setup Input
- Removed Quorum consensus model implementation (up to 8 validators)
- Removed Bank contract
- Removed DApp configuration parameters related to the off-chain machine specs (now defined as constants)
- Removed
epochIndex
field fromOutputValidityProof
struct - Removed headers from inputs added by trusted permissionless contracts like portals and relayers
- Added Authority consensus model implementation (single validator)
- Added Simple claim storage implementation (one claim per DApp)
- Added Library that defines several constants related to the canonical off-chain machine
- DApp Address Relay contract (allows the off-chain machine to know the DApp's address)
- Added script for updating proofs used in unit tests
- Adopted Foundry for contract testing (Hardhat is still being used for deployment)
- Documentation updates
- Deploy to Arbitrum Goerli and Optimism Goerli
- Add
validateNotice
function to OutputFacet
- Moved logic from
erc721Deposit
function toonERC721Received
- Renamed
ERC721Deposited
event toERC721Received
and addedoperator
field - Validators who lost a dispute are removed from the validator set, and cannot redeem fees from previous claims
- Changed the visibility of
Bank
's state variables to private - Changed the visibility of
LibClaimsMask
's functions to internal - Removed
erc721Deposit
function (callsafeTransferFrom
from the ERC-721 contract instead) - Removed
erc20Withdrawal
function call (vouchers now calltransfer
from the ERC-20 contract directly instead) - Gas optimizations
- Add factory contract to deploy rollups diamond
- Mermaid diagram of the on-chain rollups on README
- Bumped solc version to 0.8.13
- Updated architecture to Diamonds design pattern
- Added
FeeManagerFacet
andBank
contracts - Template Hash
- Setup Input
- NFT Portal
- Removed Specific ERC-20 Portal
First release.