Releases: starkware-libs/starkex-contracts
StarkEx v4.5.1
Fix rollup escape code.
StarkEx v4.5
Volition
Support both on-chain and off-chain data availability.
ERC1155
ERC-1155 tokens are fully supported, for both L1 and L2 vaults.
StarkEx v4.0.1
Minor changes
- Support for deprecated ABIs for on-chain registration to avoid transitional transaction failures. These ABIs no longer perform actual registration. They will be removed in StarkEx v4.5.
- Slight change to the way the hash message for on-chain registration is calculated.
StarkEx v4.0
Removed the need to register users
Registration is now only required for deposit cancellation and escape flows.
Withdrawals may be performed directly to Ethereum addresses (as authorized by the asset owner).
StarkEx v3.0
Features Additions and Changes
L1 Trading
StarkEx V3 allows external contracts or users without STARK Keys to trade in StarkExchange as L1 users. L1 users may deposit funds into L1 vaults, submit L1 Limit Orders and withdraw funds from L1 vaults.
L1 Vaults
The balance of any L1 vault is explicitly available to query as part of the global state, no parsing or dependency on data availability under validium. Funds may be withdrawn from an unlocked L1 vault at any time, no STARK proof needs be awaited.
L1 Limit Order
Enable an L1 address to swap tokens with any StarkExchange user (including L2 users).
Flash Loans
Allow the operator to have a momentarily negative balance of tokens in L1 vaults as long as the value at the end of the batch is positive.
Forced Actions ABI
A new interface is available for querying ForcedActions.
Register & Deposit ABI
Users can now register and deposit in a single transaction
StarkPerpetual v1.0
The first release of the StarkEx scalability engine for perpetual trading.
StarkEx v2.0
StarkEx v2.0 is the first major update to StarkEx. Below are the main added features, both functional and non-functional.
Please note that the contract functions are not backward compatible and every interaction needs to be updated with the new version ABI.
Functional Features
Conditional Transfer
- Off-chain transfers conditioned on a predefined on-chain event- Allows arbitrary on-chain logic to be defined as the condition, thus allowing complicated interactions between L2 and L1.
- Specifically, this primitive is used to facilitate Fast Withdrawals.
Deposit
- L1 users can deposit to any L2 user.- In v1.0 users could only deposit to their own account.
Withdrawal
- Users can withdraw to any recipient Ethereum address.- In v1.0 users could withdraw their funds from the contract only to the Ethereum address registered with that vault’s owner stark key.
Register
- Multiple StarkEx keys - Users can register many StarkEx keys to one Ethereum address.
- In v1.0 the contract allowed only 1:1 mapping between Ethereum addresses and StarkEx keys.
- Simplified Registration - Registration can be done by any sender.
- In v1.0 the registered Ethereum address had to be the sender.
- There is no need to own Ether in order to register.
- Enhanced signature security - Added a prefix to the
userAdmin
signature.- This protects the
userAdmin
signer from an unexpected interpretation of their signature. - The
userAdmin
signature now has the following structure:
bytes32 signedData = keccak256(abi.encodePacked("UserRegistration:", ethKey, starkKey))
.
- This protects the
- Multiple StarkEx keys - Users can register many StarkEx keys to one Ethereum address.
- ERC721 support - StarkEx now supports trading ERC721 tokens.
- Off-chain minting support - The StarkEx v2.0 contract supports off-chain minting of tokens of compatible ERC20MINTABLE / ERC721MINTABLE types.
Non-Functional Features
- Cairo - StarkEx v2.0 is fully implemented on top of Cairo - our Turing-complete framework for STARKs.
- Optimised statement design, supporting more efficient transaction packing in batches - enabling more transactions in each batch.
StarkEx v1.0
Release updates