Releases: thehubbleproject/hubble-contracts
Hunt down more bugs
What’s Changed
We fixed more bugs and also lay grounds for the TypeScript client.
🐛 BugFix
- Fix submit deposits depth bug (#524) @ChihChengLiang
- Add the rest of the immutables (#497) @ChihChengLiang
📝 Changes in the contracts
- Fix submit deposits depth bug (#524) @ChihChengLiang
- add missing immutables (#523) @ChihChengLiang
- move Proof of Burn to test (#499) @ChihChengLiang
- improve key registry event gas efficiency (#489) @ChihChengLiang
- Register token in different decimals (#478) @ChihChengLiang
- Add immutable to Rollup.sol/BatchManager.sol to reduce SLOAD (#491) @ChihChengLiang
🚀 Changes in the client
- add deposit pool (#518) @ChihChengLiang
- Add burn auction service (#515) @ChihChengLiang
- Features abstraction (#512) @ChihChengLiang
- basic structure of node and services (#509) @ChihChengLiang
- add transfer state transition (#506) @ChihChengLiang
- implement batch handler and calldata factories (#507) @ChihChengLiang
- add naive tx-pool (#503) @ChihChengLiang
- add deterministic public key (#502) @ChihChengLiang
- organize deployAndWriteGenesis (#501) @ChihChengLiang
- Storage engine (#504) @ChihChengLiang
Chore
- npm upgrade (#516) @ChihChengLiang
- revamp tx ts (#510) @ChihChengLiang
- extend timeout (#508) @ChihChengLiang
- auto label changes and change release format (#505) @ChihChengLiang
Before we move fast and break things
I'll be the only dev for about a month. New pull requests after this release are getting no reviews.
What’s Changed
- fix depositManager and WithdrawManager (#487) @ChihChengLiang
✨ New Feature
- Fix typo (#485) @ChihChengLiang
- caching storage value (#486) @ChihChengLiang
- Separate Float and FixedNumber (#473) @ChihChengLiang
- deposit in burn auction (#466) @ChihChengLiang
- Add deposit subtreeID (#474) @ChihChengLiang
- remove amount greater than 0 requirement (#471) @ChihChengLiang
- Add account root to log (#469) @ChihChengLiang
Enter Solidity 0.6 and keyless deployment
What’s Changed
- Inherit error properly (#461) @ChihChengLiang
- Enable keyless deployment (#460) @ChihChengLiang
- add release drafter (#451) @ChihChengLiang
✨ New Feature
- set account tree first default hash to be 0x290... (#452) @ChihChengLiang
- Migrate to Solidity 0.6 (#449) @ChihChengLiang
- BN pairing precompile cost estimator (#409) @kilic
🐛 BugFix
- Avoid damaging inputs in merklise function (#454) @ChihChengLiang
- Fix BLS: gas computation and minor issues (#453) @ChihChengLiang
- Make batch update function non destructive (#450) @kilic
⚡ Performance
Before the Solidity 0.6.x contract upgrade
Contract interfaces
This affects the coordinator API
#433 Revamp Rollback events
Contract Internal
Affects contract security and gas efficiency
#406 Use mapping for deposit baby tree
#405 Remove ParamManager and NameRegistry
#418 Fix BLS pairing gas calculation
#392 Fix double sender check in signature fraud proof
#429 Fix looping storage variable in batch rollback
Deployment Scripts
Affects dev experience and some coordinator interface
#395 Add deposit script
#396 Add Hubble REPL
#420 Add auxiliary fields to genesis.json
#434 Add version field in genesis.json
#435 Fix public network deployment
#447 Add parameters file and output path in deployment script
Testing
Affects coverage and testing efficiency
#386 Add an elaborate integration test
#393 Split the tests to fast, slow, and integration categories.
Documents, nitpics, cosmetics
No machine logic affected
#391 Add documents in the README and contracts
#422 Add License
#428 Remove some dead code
#431 Organize 32 level tree depth variables
Inside The Fridge
Contract: Core
Major change
- #385 Burn Auction: Add the donate-to-public-good feature. Add withdraw pattern and better balance tracking.
- #388 Fix AccountTree batch registration behavior.
Behavior or style change
- #361 create2transfer: Remove sender public key from the signing message. Also, #365 is a related JS fix
- #362 tokenID: Unify the variable name.
- #363 pubkeyID: Unify the variable name.
Minor change
- #369 AccountTree: Documentation on the purpose of left tree and right tree
- #373 (Minor) ExampleToken: Rename and move to test/
- #383 (Minor) Fix style in Transition.sol
Contract: Frontend
- #375 Fix the Mass Migration and Create2Transfer: Remove the receiver argument.
JavaScript (deployment script and test utils)
- #358 Output genesis config deploy script
- #366 State tree: Raise clear exceptions.
- #372 Revamp mcl and add BLS signer abstraction
- #379 State tree: Work every method with the core
getState
orupdateStat
API. Remove StateSolStruct. Handle the tokenID validation correctly - #368 Improve the way we handle genesis root
- #384 Separate the signing function from State class.
- #387 Improve mass migration commitment API
- #389 Tree and AccountTree: raise explicit exceptions and fix JS integer issue.
Contract Code Freeze ❄️
Major changes
- #337 Add Burn Auction. Thank you, Hermez!
- #336 #343 Immutable Parameters. We assume they will never change once the contracts are deployed.
- #339 Revamp Rollback and properly test it.
- #345 Removed Logger. Logs now emitted from multiple contracts instead of from a monolithic logger contract.
- #346 Make batches a mapping.
Minor changes
Fix invalid subgroup checks for Pubkeys
BLS
- #328 Fix invalid subgroup checks for Pubkeys
Notable Improvement on contracts
- #314 #321 replaced governance contract with parameters contract
- #309 Abstract bitmap library for Vault and WithdrawManager
- #283 #294 Refactor state transitions
- #288 Make Merkle tree manipulation a library
Features
Create2Transfer
- #231 Add create2transfer
MassMigration
Batch
- #276 Reduce the size of storage metadata to put on the chain
Notable bug fix
- #304 Fix encode decimal
- #278 Fix check on the first commitment of the batch
- #271 Fix on deposits
- #268 Fix stake manager
Test utils
- #298 Cleanup state tree
See the rest here
BLS audit
We have BLS signature contracts working stably without change. We freeze this version for the auditor to review.