Releases: worldcoin/hubble-commander
v0.5.0
What's Changed TL;DR
- Added support for deposits and withdrawals (mass migrations in general).
- Data returned by the API was revamped so that it's more informative and consistent throughout the methods.
- Added more API methods and removed a single unused one.
- Added commander metrics.
API Changes v0.5.0-rc2
-> v0.5.0
High-level changes
- Added and deprecated some API errors. Referer to the API error table in
api/Readme.md
for more detailed information. - Added multiple proof API methods. Refer to
docs/json_rpc.md
file for an up-to-date list of all methods. - Introduced
admin
namespace and new commander management API methods. - Introduced changes to API method results (see below).
API results changes
List of changes to data types (dto
package) returned by API methods
Batch
(used byhubble_getBatches
,hubble_getBatchByHash
andhubble_getBatchByID
methods)- New field:
Status
- string (status):"SUBMITTED"
"MINED"
(renamed from"IN_BATCH"
)"FINALIZED"
- Other:
SubmissionBlock
field was renamed toMinedBlock
and it's now optional.SubmissionTime
field renamed toMinedTime
.Commitments
field was completely revamped. See below.
- New field:
BatchCommitment
(used byhubble_getBatchByHash
andhubble_getBatchByID
methods)- Batch commitments (
Commitments
field inBatch
) were split into three different models:TxCommitment
(forTRANSFER
andCREATE2TRANSFER
batches)ID
-{BatchID: string (uint256), IndexInBatch: uint8}
objectPostStateRoot
- string (hash)LeafHash
- optional string (hash)TokenID
- string (uint256)FeeReceiverStateID
- uint32CombinedSignature
- string (signature)
MMCommitment
(forMASS_MIGRATION
batches)ID
-{BatchID: string (uint256), IndexInBatch: uint8}
objectPostStateRoot
- string (hash)LeafHash
- optional string (hash)CombinedSignature
- string (signature)WithdrawRoot
- string (hash)MassMigrationMeta
- object:SpokeID
- uint32TokenID
- string (uint256)Amount
- string (uint256)FeeReceiverStateID
- uint32
DepositCommitment
(forDEPOSIT
batches)ID
-{BatchID: string, IndexInBatch: uint8}
objectPostStateRoot
- string (hash)LeafHash
- optional string (hash)SubtreeID
- string (uint256)SubtreeRoot
- string (hash)
- Batch commitments (
Commitment
(used byhubble_getCommitment
method)- Added new
SUBMITTED
status. Currently, available statuses for commitments:"SUBMITTED"
"MINED"
(renamed from"IN_BATCH"
)"FINALIZED"
- New models for different commitment types:
TxCommitment
(forTRANSFER
andCREATE2TRANSFER
commitments)ID
-{BatchID: string (uint256), IndexInBatch: uint8}
objectType
- string (batch type)PostStateRoot
- string (hash)LeafHash
- optional string (hash)TokenID
- string (uint256)FeeReceiverStateID
- uint32CombinedSignature
- string (signature)Status
- string (status)MinedTime
- timestampTransactions
- list of transactions as objects
MMCommitment
(forMASS_MIGRATION
commitments)ID
-{BatchID: string (uint256), IndexInBatch: uint8}
objectType
- string (batch type)PostStateRoot
- string (hash)LeafHash
- optional string (hash)FeeReceiverStateID
- uint32CombinedSignature
- string (signature)Status
- string (status)MinedTime
- timestampWithdrawRoot
- string (hash)MassMigrationMeta
- object:SpokeID
- uint32TokenID
- string (uint256)Amount
- string (uint256)FeeReceiverStateID
- uint32
Transactions
- list of transactions as objects
DepositCommitment
(forDEPOSIT
commitments)ID
-{BatchID: string (uint256), IndexInBatch: uint8}
objectType
- string (batch type)PostStateRoot
- string (hash)LeafHash
- optional string (hash)Status
- string (status)MinedTime
- timestampSubtreeID
- string (uint256)SubtreeRoot
- string (hash)Deposits
- list ofDeposit
objects:ID
-{SubtreeID: string (uint256), DepositIndex: string (uint256)}
objectToPubKeyID
- uint32TokenID
- string (uint256)L2Amount
- string (uint256)
- Added new
Transaction
(used byhubble_getTransaction
method)- Renamed field:
BatchTime
->MinedTime
- Renamed field:
NetworkInfo
(used byhubble_getNetworkInfo
method)- Added new fields:
SpokeRegistry
- string (address)WithdrawManager
- string (address)
- Added new fields:
Other API changes
-
Removed
hubble_getTransactions
method. -
Added new API methods for generating proofs (see
docs/json_rpc.md
for detailed information about these methods):hubble_getUserStateProof
hubble_getPublicKeyProofByPubKeyID
hubble_getCommitmentProof
hubble_getMassMigrationCommitmentProof
hubble_getWithdrawProof
-
All API methods now support every type of batch, commitment or transaction, i.e.:
GENESIS
TRANSFER
CREATE2TRANSFER
MASS_MIGRATION
DEPOSIT
-
IN_BATCH
status was replaced withMINED
status. -
Added new
SUBMITTED
status. Seedocs/tx_statuses.png
for more details. -
hubble_sendTransactions
now acceptsMASS_MIGRATION
transactions. -
hubble_getNetworkInfo
- New output - refer to the changes made to the
NetworkInfo
data model.-
Before:
{ "ChainID": "1337", "AccountRegistry": "0x602fdcb022744cf8ae7f8b980771a541c2ecd0ce", "AccountRegistryDeploymentBlock": 72402, "TokenRegistry": "0xba984fa2c930aa3207199a89898f80f6b42579a3", "DepositManager": "0xe70c33cde3aa0b85bb4019add35b3c48c6c124f7", "Rollup": "0x07bd5a1d097e85b5025553c13d6d11ab33a7be97", "BlockNumber": 74070, "TransactionCount": 1, "AccountCount": 6, "LatestBatch": "1", "LatestFinalisedBatch": "0", "SignatureDomain": "0xcd282510ec3859813f6cc595cda9c54f5e5a8be99973c412ef1f1152a1381e59" }
-
After:
{ "ChainID": "1337", "AccountRegistry": "0x897d20d6b0c880899f8a8567c3eb47cfc338b86d", "AccountRegistryDeploymentBlock": 74218, "TokenRegistry": "0xda6761888ac7341d69430f19419be9a473bdd730", "SpokeRegistry": "0x68bfc28bd91054be2e8748edd970d96a4c7d6818", // NEW "DepositManager": "0x2afe057ac45163cd55085643b39f5fe056971bf4", "WithdrawManager": "0x60aff494251e5f86c6da382f84e785f14e8d4b9f", // NEW "Rollup": "0xc7305afbac19b486246254c181328d777ec14800", "BlockNumber": 74241, "TransactionCount": 0, "AccountCount": 6, "LatestBatch": "0", "LatestFinalisedBatch": "0", "SignatureDomain": "0xe25b2357c9a05e85a42c6dd3d53c35e9f989e3cc3df08841fb211b50d5174db0" }
-
- New output - refer to the changes made to the
-
hubble_getBatches
- Can now return
SUBMITTED
batches. - New output - refer to the changes made to the
Batch
andBatchCommitment
data models. For more detailed information
seedocs/json_rpc.md
.-
Before:
[ { "ID": "0", "Hash": "0xc0f5d8567b5407c5e8731c22a7394548be05412ec2e1a11ded083a1f6615dd57", "Type": "GENESIS", "TransactionHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "SubmissionBlock": 72424, "SubmissionTime": null, "FinalisationBlock": 72424 }, { "ID": "1", "Hash": "0x81ea5b0aeb055e9eaf89d447c045e35890178da9d22391b3baedef87cd21ae48", "Type": "TRANSFER", "TransactionHash": "0x23184ac315c1ef917cb9fb4759a329396e012c375beaa61d9fc6d45dc2a87028", "SubmissionBlock": 72518, "SubmissionTime": 1643721284, "FinalisationBlock": 112838 } ]
-
After:
[ { "ID": "0", "Hash": "0x97222c9001ff4b2e8c328d15c02fc508259f2f9bec5af8b286a932813fe920d6", "Type": "GENESIS", "TransactionHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "SubmissionBlock": 74229, "SubmissionTime": null, "Status": "FINALISED", // NEW "FinalisationBlock": 74229 }, {
-
...
- Can now return
v0.5.0-rc2
What's Changed
hubble_getVersion
API method returns an up-to-date version that corresponds to the release versionhubble_getBatchByID
andhubble_getBatchByHash
can return genesis batch detailsSubmissionBlock
of the genesis batch returned byhubble_getBatches
was fixed
Commits
- Add readme's and docs by @recmo in #332
- Remove unused CommitmentLoopInterval from config by @b-tarczynski in #392
- Update version returned by the API by @msieczko in #394
- Update auto deploy to work with the new config on AWS Crypto machine by @msieczko in #395
- Support GenesisBatch in API endpoints by @b-tarczynski in #391
New Contributors
Full Changelog: v0.5.0-rc1...v0.5.0-rc2
v0.5.0-rc1
What's Changed TL;DR
- We migrated all remaining Postgres tables to Badger
- We made improvements to the API that include breaking changes
- We applied all fixes from
0.4.0
branch (v0.4.0-rc1...v0.4.0)
API Changes v0.4.0
-> v0.5.0-rc1
-
New standardized API errors (refer to the table below)
-
Data models changes:
Commitment
ID
type changed fromuint32
to{BatchID: string, IndexInBatch: uint8}
objectIncludedInBatch
field was removed
NetworkInfo
- Renamed fields:
chainID
->ChainID
accountRegistry
->AccountRegistry
deploymentBlock
->AccountRegistryDeploymentBlock
rollup
->Rollup
blockNumber
->BlockNumber
transactionCount
->TransactionCount
accountCount
->AccountCount
latestBatch
->LatestBatch
latestFinalisedBatch
->LatestFinalisedBatch
signatureDomain
->SignatureDomain
- New fields:
TokenRegistry
string (address)DepositManager
string (address)
- Renamed fields:
Transfer
/Create2Transfer
:IncludedInCommitment [int32]
was replaced withCommitmentID [object]
CommitmentID
type is the{BatchID: string, IndexInBatch: uint8}
object- refer to the API change made to
hubble_getTransactions
endpoint for an example
-
API changes:
hubble_getPublicKeyByID
endpoint renamed tohubble_getPublicKeyByPubKeyID
hubble_getNetworkInfo
- New output - refer to the changes made to the
NetworkInfo
data model- Before:
{ "chainId": "1337", "accountRegistry": "0x10bd6732fe3908b8a816f6a1b271e0864de78ca1", "deploymentBlock": 74, "rollup": "0xf2a409ccf78e6e32e02d5e3a3ac274ca6880d9ac", "blockNumber": 2146, "transactionCount": 2, "accountCount": 6, "latestBatch": "2", "latestFinalisedBatch": "0", "signatureDomain": "0x47b39cc40c04341a600ee0941a8231bf3a04725da5c65ac93286ef9147d23bbc" }
- After:
{ "ChainID": "1337", "AccountRegistry": "0x10bd6732fe3908b8a816f6a1b271e0864de78ca1", "AccountRegistryDeploymentBlock": 74, "TokenRegistry": "0x07389715ae1f0a891fba82e65099f6a3fa7da593", "DepositManager": "0xa3accd1cfabc8b09aea4d0e25f21f25c526c9be8", "Rollup": "0xf2a409ccf78e6e32e02d5e3a3ac274ca6880d9ac", "BlockNumber": 2146, "TransactionCount": 2, "AccountCount": 6, "LatestBatch": "2", "LatestFinalisedBatch": "0", "SignatureDomain": "0x47b39cc40c04341a600ee0941a8231bf3a04725da5c65ac93286ef9147d23bbc" }
- Before:
- New output - refer to the changes made to the
hubble_getTransactions
- New output - refer to the changes made to the
Transaction
/Create2Transfer
data models- Before:
[ { "Hash": "0x03b15bc97adb5e86fffbffd8b049629b80eb696499fe3aa62813fcbed87f4023", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "1", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "IncludedInCommitment": 2, // removed "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0x87e7380690ae69c1d06796828f12113eadc436942a3dd3aa9182eb1c9b164f90", "BatchTime": 1633693199, "Status": "IN_BATCH" }, { "Hash": "0x9b442316136f46247a399169aff5b9931060331f4b66971766a81b77765cfb36", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "0", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "IncludedInCommitment": 1, // removed "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0xeb590ba0ce14d821caebc56514fe867521da78b46b7b78ce4810a353e619f315", "BatchTime": 1633692591, "Status": "IN_BATCH" }, ]
- After:
[ { "Hash": "0x03b15bc97adb5e86fffbffd8b049629b80eb696499fe3aa62813fcbed87f4023", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "1", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "CommitmentID": { // new "BatchID": "2", "IndexInBatch": 0 }, "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0x87e7380690ae69c1d06796828f12113eadc436942a3dd3aa9182eb1c9b164f90", "BatchTime": 1633693199, "Status": "IN_BATCH" }, { "Hash": "0x9b442316136f46247a399169aff5b9931060331f4b66971766a81b77765cfb36", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "0", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "CommitmentID": { // new "BatchID": "1", "IndexInBatch": 0 }, "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0xeb590ba0ce14d821caebc56514fe867521da78b46b7b78ce4810a353e619f315", "BatchTime": 1633692591, "Status": "IN_BATCH" } ]
- Before:
- New output - refer to the changes made to the
hubble_getTransaction
- New output - refer to the changes made to the
Transaction
/Create2Transfer
data models- Before:
{ "Hash": "0x9b442316136f46247a399169aff5b9931060331f4b66971766a81b77765cfb36", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "0", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "IncludedInCommitment": 1, // removed "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0xeb590ba0ce14d821caebc56514fe867521da78b46b7b78ce4810a353e619f315", "BatchTime": 1633692591, "Status": "IN_BATCH" }
- After:
{ "Hash": "0x9b442316136f46247a399169aff5b9931060331f4b66971766a81b77765cfb36", "TxType": "TRANSFER", "FromStateID": 1, "Amount": "50", "Fee": "1", "Nonce": "0", "Signature": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "ReceiveTime": null, "CommitmentID": { // new "BatchID": "1", "IndexInBatch": 0 }, "ErrorMessage": null, "ToStateID": 2, "BatchHash": "0xeb590ba0ce14d821caebc56514fe867521da78b46b7b78ce4810a353e619f315", "BatchTime": 1633692591, "Status": "IN_BATCH" }
- Before:
- New output - refer to the changes made to the
hubble_getCommitment
- The parameter for
hubble_getCommitment
endpoint was changed:[uint32]
->[{"BatchID": string, "IndexInBatch": uint8}]
- Example:
[1]
->[{"BatchID": "1", "IndexInBatch": 0}]
- Example:
- New output - refer to the changes made to the
Commitment
data model- Before:
{ "ID": 1, // changed "Type": "TRANSFER", "FeeReceiver": 0, "CombinedSignature": "0x1152450e7da64c68023921d3a37ea750df4158bb17203317bf7af9ac7d8c6a3216d982a417c204593c82dc1f64851cad49361a4a4175636e0c062497c7ef2f9c", "PostStateRoot": "0x81cf78ec55d3393ff2e9c0e081dc6ced3cd4a7e9e42f3c6e441b035035a6839a", "IncludedInBatch": "1", // removed "Status": "IN_BATCH", "BatchTime": 1633692591, "Transactions": [ { "...
- Before:
- The parameter for
Norway release
This release includes stability changes that were made for the purpose of the field test in Norway.
What's Changed
- Handle timeout errors gracefully by @duckception in #345
- Enable E2E Test CI on pushes to 0.4.0 branch by @msieczko in #348
- Setup automatic deployment to AWS Staging machine by @msieczko in #353
- Use WaitToBeMined instead of event watchers in RegisterAccount by @duckception in #351
- Censor sensitive config information by @duckception in #352
- Fix logging of batch JSON RPC requests by @msieczko in #354
- Add a Postman environment with AWS Staging address by @msieczko in #355
- Update the URL of AWS Staging machine to fix auto-deployment by @msieczko in #357
- Delete commander logs that bloat the output by @duckception in #358
- Store public keys in genesis.yaml by @duckception in #356
- Create a queue of account registrations by @b-tarczynski in #350
- Add onlyProposer modifier on registerBatch SC methods by @duckception in #346
- Make BlocksToFinalise deployment param configurable by @msieczko in #362
- Set gas limit for batch account registration transactions by @msieczko in #360
- Create a docker-compose deployment setup using production Geth by @msieczko in #359
- Use static IP for mining-geth by @b-tarczynski in #361
- Add commander backup scripts by @duckception in #372
- Make isBatchAlreadyDisputed function compare batch hashes by @msieczko in #371
- Add DataDog agent to staging deployment config by @msieczko in #381
- Update backup script to upload backups to S3 by @duckception in #383
- The new deployment with chain-spec.yaml file by @gvidon in #316
- Stop deploying commander on new release by @msieczko in #388
Full Changelog: v0.4.0-rc1...v0.4.0
Norway pre-release
What's Changed
- Add depth parameter to StoredMerkleTree by @duckception in #286
- Handle dispute on the first commitment after genesis batch by @b-tarczynski in #287
- Allow for syncing commitments without transactions by @b-tarczynski in #288
- Add sync benchmark by @marik-d in #278
- Add rollback handling logic to sync_loop diagram by @msieczko in #291
- Dispute commitments with invalid fee receiver token ID by @b-tarczynski in #292
- Divide Storage methods across new structs by @duckception in #289
- Ignore NewBatch events corresponding to already rolled back batches by @b-tarczynski in #295
- Handle syncing commitments with from/to state IDs that does not exist by @b-tarczynski in #297
- Make test config use static values by @b-tarczynski in #298
- Handle disputes submitted by other commanders by @b-tarczynski in #290
- Handle syncing commitments with nonexistent fee receiver by @msieczko in #294
- Test syncing transfer with nonexistent receiver by @b-tarczynski in #300
- Migrate ChainState to Badger by @duckception in #299
- Upgrade Geth to v1.10.7 (London) and re-enable generate CI by @msieczko in #301
- Add script for generating chain-spec.yaml file by @duckception in #293
- Fix Dockerfile and E2E test after CLI changes by @msieczko in #302
- Add script for loading chain-spec file by @duckception in #296
- Use in-memory db for deploying smart contracts by @duckception in #303
- Make E2E test work after chain-spec loading changes by @msieczko in #306
- Specify gas limit for dispute transactions by @duckception in #305
Full Changelog: v0.3.0...v0.4.0-rc1
v0.3.0
What's Changed
- Prettify hubble endpoints by @gvidon in #237
- Rework executor methods for syncing commitments by @duckception in #230
- Calculate commitment leaf hash instead of body hash for inclusion proof by @b-tarczynski in #240
- Add block timestamp to batch model by @b-tarczynski in #238
- Add Postman environments with cluster machines URLs by @msieczko in #242
- Adjust Merkle tree for fraud proof needs by @msieczko in #243
- Remove redundant RevertToForDispute by @msieczko in #239
- Submit dispute transaction and wait for it to be mined by @b-tarczynski in #244
- Trigger disputeTransition on DisputableTransferError by @b-tarczynski in #246
- Improve WaitForRollbackToFinish by @msieczko in #245
- Add submission timestamp to Transaction DTO by @b-tarczynski in #248
- Make syncRemoteBatch handle batch race conditions and disputes by @msieczko in #249
- Remove possible infinite loop in syncRemoteBatch by @duckception in #252
- Fix tests/implementation of create2Transfer disputes by @b-tarczynski in #251
- Add E2E dispute transition test by @b-tarczynski in #254
- Use cloned storage in commander tests by @b-tarczynski in #253
- Check state root after syncing commitment by @b-tarczynski in #255
- Add E2E dispute transition create2Transfer test by @b-tarczynski in #256
- Refactor e2e_test.go by @duckception in #257
- Split config.TxsPerCommitment into min and max txs per commitment by @duckception in #250
- Store accounts in badger by @duckception in #258
- Store account tree nodes in Badger by @duckception in #260
- Add E2E test for batch with invalid post state root by @b-tarczynski in #261
- Extract StoredMerkleTree by @marik-d in #259
- Filter and handle BatchPubkeyRegistered events by @b-tarczynski in #262
- Add DisputeSignature smart contracts wrappers by @b-tarczynski in #263
- Refactor StateNodes by @duckception in #264
- Test that batches created by rollup loop doesn't trigger rollback by @b-tarczynski in #265
- Add AccountTree by @duckception in #266
- Measure dispute transition gas usage by @b-tarczynski in #270
- Fix E2E tests for master workflow by @b-tarczynski in #272
- Deploy and replace cost estimator address by @b-tarczynski in #271
- Add method for inserting accounts batch into the account tree by @b-tarczynski in #268
- Map missing env vars in Docker E2E test config by @msieczko in #273
- Make StateTree and AccountTree fields of Storage by @duckception in #269
- Remove redundant MerklePath badger encoder by @msieczko in #274
- Use SetSingle to add accounts in tests and remove redundant additions by @msieczko in #275
- Fetch correct domain from SC by @b-tarczynski in #276
- Move account tree methods from StorageBase to AccountTree by @duckception in #277
- Move state tree related methods from StorageBase to StateTree by @msieczko in #279
- Gather arguments for signature dispute by @b-tarczynski in #267
- Set appropriate log levels and use json formatter for cluster deployment by @msieczko in #280
- Make sure DBs get closed before process ends by @msieczko in #282
- Trigger signature disputes on invalid signature by @b-tarczynski in #281
- Extract Database struct from StorageBase by @duckception in #283
- Add E2E tests for signature disputes by @b-tarczynski in #284
- Measure gas usage by signature disputes by @b-tarczynski in #285
Full Changelog: v0.2.2...v0.3.0
v0.2.2
What's Changed
- Store receive times of txs and include them in returned DTOs by @msieczko in #231
- Modify cluster deployment pipeline by @gvidon in #233
- Log more debug information by @msieczko in #235
- Set debug log level in cluster deployment config by @msieczko in #236
- Rename and fix bootstrap node url env var by @msieczko in #234
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Fix release script
v0.2.0
What's Changed
- Added sync_loop.png by @marik-d
- Add a Postman environment for the 2nd Apps AWS machine by @msieczko in #205
- Move middleware package to api/ by @msieczko in #207
- Parse account public key from calldata by @marik-d in #208
- Upgrade contracts by @marik-d in #209
- Use a separate DB transaction for each synced batch by @msieczko in #210
- Add signature validation to batch sync by @b-tarczynski in #206
- Move transactionExecutor and associated methods to its own package by @b-tarczynski in #211
- Reject transfers with zero amount in sendTransaction endpoint by @b-tarczynski in #213
- Verify commitment root of batch #0 after fetching remote chain state by @b-tarczynski in #212
- Remove version service from linter config by @duckception in #214
- Merkle tree by @marik-d in #215
- Make rollup loop fetch a limited number of pending transactions by @duckception in #201
- Stop applying transfers when syncing on first failed transfer by @b-tarczynski in #216
- removed domain for key handling by @philsippl in #219
- Add CI step that deploys hubble-commander to Kubernetes cluster by @gvidon in #217
- Refactor methods for creating commitments by @msieczko in #220
- Add DisputeTransition smart contracts wrappers by @b-tarczynski in #221
- Calculate commitment inclusion proof of previous commitment by @duckception in #222
- Establish fee receiver on the level of create commitment methods by @msieczko in #225
- Calculate commitment inclusion proof of target commitment by @b-tarczynski in #223
- Rename tokenIndex -> tokenID everywhere by @msieczko in #226
- Implement missing validations and create custom error type by @duckception in #218
- Add RevertToForDispute method by @b-tarczynski in #224
- Return witness from StateTree.Set by @marik-d in #228
- Double instances setup with bootstrap node URL by @gvidon in #227
- Refactor sync methods to use generic transaction types by @marik-d in #229
- Logging with logrus by @marik-d in #232
Full Changelog: v0.1.0-rc3...v0.2.0
v0.1.0-rc3
Tag images with "stable"