Releases: iron-fish/ironfish
v1.6.0
Notable changes
Verified assets will be displayed in green with a checkmark on the output of commands like wallet:balances
or wallet:assets
. The information about whether an asset is verified or not can also be retrieved through the RPC interface.
Breaking changes
- #4061 changes the way that the SDK's RpcClient calls
broadcastTransaction
fromclient.broadcastTransaction
toclient.chain.broadcastTransaction
What's Changed
- feat(ifl-1237): encodeAccount/decodeAccount generalized functions by @jowparks in #4028
- updates wallet exportAccount RPC to use encoders by @hughy in #4031
- feat(ifl-1234): account import rpc updates by @jowparks in #4030
- feat(ifl-1263): support account rename decoding by @jowparks in #4035
- Use
performance.now()
instead ofDate.now()
for performance measurements by @andreacorbellini in #4034 - chore: Upgrade napi to latest version by @mat-if in #4006
- Verified assets: implement persistent caching by @andreacorbellini in #4020
- updates export CLI for RPC changes by @hughy in #4033
- feat(ifl-1236): cli string account import by @jowparks in #4032
- Verified assets: use the persisted cache when the node is not running by @andreacorbellini in #4027
- fix: import failure by @jowparks in #4039
- converts import-export-test to rpc unit tests by @hughy in #4037
- Verified assets: place the cache in the
temp
directory by @andreacorbellini in #4040 - Verified assets: add support for
file:///
URIs as the source of verified assets by @andreacorbellini in #4038 - fix: roll up errors from decodeAccount function by @jowparks in #4048
- fix: decode error bubbling by @jowparks in #4056
- Remove temporary variable rescan by @NullSoldier in #4057
- Verified assets: use the new
/verified/assets
API endpoint by @andreacorbellini in #4045 - chore: update libuv-monitor 0.0.5 for node-app compatibility changes by @mat-if in #4059
- moves broadcastTransaction into RpcClient chain namespace by @hughy in #4061
- Add encoder name to DecoderFailed by @NullSoldier in #4058
- feat(ironfish): Remove
submitNewTransactionCreated
telemetry by @rohanjadvani in #4063 - Only pass in wallet to RPC helper function getAccount by @danield9tqh in #4062
- adds transactions to mempool in broadcastTransaction rpc by @hughy in #4060
- feat(ironfish): Query account instead of chain when burning asset by @rohanjadvani in #4066
- feat(ironfish): Query account in
getAssetBalanceDeltas
by @rohanjadvani in #4068 - feat(ironfish): Query asset from account in
getAccountNotesStream
by @rohanjadvani in #4067 - adds standalone wallet config options by @hughy in #4064
- refactor(ironfish): Encapsulate block header DB operations by @rohanjadvani in #4043
- Verified assets: use a retry strategy when refreshing by @andreacorbellini in #4041
- Allow Router and Server to be created without a node object by @danield9tqh in #4070
- expires wallet transactions on block connect by @hughy in #4069
- Separate global routes from Router by @danield9tqh in #4071
- refactor(ironfish): Encapsulate meta store in
BlockchainDB
by @rohanjadvani in #4044 - refactor(ironfish): Encapsulate transactions store in
BlockchainDB
by @rohanjadvani in #4046 - refactor(ironfish): Encapsulate sequence to hashes db operations by @rohanjadvani in #4047
- Bump node version to 1.6.0 by @andreacorbellini in #4072
- Merge staging into master (1.6.0 release) by @andreacorbellini in #4074
Full Changelog: v1.5.0...v1.6.0
v1.5.0
Notable Changes
This release includes our transition to blstrs
library, which gives a large performance increase in both transaction creation and transaction verification.
What's Changed
- updates poolMiner log message on new work by @hughy in #3974
- fixes usage of oclif table sort flag by @hughy in #3975
- Fix error message when chain head changes by @danield9tqh in #3972
- Perf test reporter and CI integration by @ygao76 in #3930
- feat(ci): Check for missing test fixtures by @mat-if in #3976
- Add back print result by @ygao76 in #3979
- Remove expect check in perf tests by @ygao76 in #3977
- Record CPU information during GitHub CI runs by @andreacorbellini in #3980
- verifies block template after streaming by @hughy in #3967
- Standardize util exports for S3 utils by @NullSoldier in #3981
- Add browse CLI command by @NullSoldier in #3940
- handles errors sending jobs to worker threads by @hughy in #3984
- Change Wallet.send() to accept an object by @NullSoldier in #3982
- adds context to telemetry TypeErrors by @hughy in #3986
- Add annotation to test report by @ygao76 in #3985
- Blstrs by @mat-if in #3970
- adds event/onReorganizeChain RPC by @hughy in #3989
- Move perf test to separate workflow by @ygao76 in #3988
- Create tx verification perf test by @ygao76 in #3995
- adds chain reorgs to stats command by @hughy in #3990
- Initial implementation of the AssetsVerifier system by @andreacorbellini in #3993
- Make RPC getBalance body optional by @NullSoldier in #3992
- Run perf test on mac mini by @ygao76 in #3997
- feat(ci): add ability to run the perf tests on demand by @mat-if in #3998
- adds encoder directory to wallet/account by @hughy in #4001
- Improve logging in the assets verifier system by @andreacorbellini in #3999
- Remove influx set up step in Github workflow by @ygao76 in #4004
- Add feeRate to RPC Wallet/sendTransaction by @NullSoldier in #3983
- Return asset verification information from the RPC interface by @andreacorbellini in #3996
- Add a configuration value for enabling/disabling the asset verification system by @andreacorbellini in #4000
- Add a configuration value for customizing the asset verification URL by @andreacorbellini in #4002
- Make STUN servers configurable by @danield9tqh in #3994
- Remove creating influx config in GH Workflow by @ygao76 in #4008
- Consistently handle template creation errors in mining manager by @danield9tqh in #3991
- Use env vars for Influx Auth credentials by @ygao76 in #4013
- feat(ifl-1233): account name optional by @jowparks in #4012
- chore: remove import export cli tests by @jowparks in #4017
- feat(ifl-1233): refactor language utils by @jowparks in #4014
- Remove rust cache step in perf test workflow by @ygao76 in #4015
- feat(cli): Log out warning if CLI update is available by @rohanjadvani in #4016
- Revert "Fix error message when chain head changes" by @danield9tqh in #4022
- feat: encoder options for AccountEncoder type by @jowparks in #4023
- feat(ci): Add a lint check for PRs against master by @mat-if in #4024
- adds separate RpcAccountImport type by @hughy in #4025
- feat(ifl-1233): create existing encoders by @jowparks in #4011
- Highlight verified assets in the output of cli commands by @andreacorbellini in #4009
- implements bech32 account encoder by @hughy in #4005
- feat: Add monitoring for libuv queue size by @mat-if in #3987
- fix(ci): Base branch check should update to green if base changes by @mat-if in #4029
- Set SDK node compatability to >=16 by @NullSoldier in #4003
- Version bump 1.5.0 by @mat-if in #4026
- STAGING -> MASTER by @mat-if in #4021
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Notable changes
- Fixed a bug where calling
wallet:transaction
orwallet:transactions
on a transaction with more than 255 output notes would only display at most the first 255 results. #3950
What's Changed
- Add chain database size to telemetry by @ygao76 in #3928
- fix: typescript perf tests run in band, longer timeout by @mat-if in #3929
- fixes error message from IronFlag by @hughy in #3935
- updates sync service to submit transaction gossip to api by @hughy in #3926
- Allow empty strings in the
--memo
argument ofwallet:send
by @andreacorbellini in #3938 - Fix the installation instructions link in the README by @andreacorbellini in #3939
- Add the 'expiration' field to transactions returned by followChainStream by @andreacorbellini in #3943
- Prepare rust crates' metadata for publishing by @andreacorbellini in #3945
- Rename the
ironfish_rust
crate to justironfish
by @andreacorbellini in #3946 - Update
crypto_box
andcrossbeam-channel
by @andreacorbellini in #3947 - Fix wallet:transaction decrypting at most 255 notes by @dguenther in #3950
- Move chain db size out of telemetry class and into stats cmd by @ygao76 in #3954
- Remove the sapling params from the published Rust crate, and download them from GitHub at build time by @andreacorbellini in #3951
- Add Iron Fish Tank: a Docker Compose application to simulate Iron Fish clusters by @andreacorbellini in #3948
- Prevent accidental publishing of crates that are not meant to be publ… by @andreacorbellini in #3957
- Reorder stats cmd by @ygao76 in #3958
- Update dependencies to fix vulnerabilities found by
yarn audit
by @andreacorbellini in #3956 - test: Add an improved benchmark util for typescript by @mat-if in #3959
- feat: Take 'reverse' parameter as option in loadTransactionsByTime by @dgca in #3953
- refactor(ironfish-rust): Introduce download-params feature-flag by @mat-if in #3961
- Start mining on empty blocks until template is ready by @danield9tqh in #3942
- adds test fixtures for mining manager tests by @hughy in #3962
- Add functionality to rename accounts in a wallet by @andreacorbellini in #3955
- removes extra block verification on submitted blocks by @hughy in #3963
- Log chain db size in stats by @ygao76 in #3964
- fix: Fix mining manager not sending out empty block templates by @mat-if in #3965
- removes loops from getNewBlockTransactions by @hughy in #3927
- adds missing fixture for rename rpc by @hughy in #3968
- bumps versions for v1.4.0 by @hughy in #3971
- STAGING -> MASTER by @mat-if in #3966
New Contributors
- @andreacorbellini made their first contribution in #3938
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
- fix(ironfish): add additional transaction validation by @mat-if in #3901
- Update brew workflow to macos-12 by @dguenther in #3907
- fix(simulator): miscellaneous cleanup fixes and improvements by @holahula in #3897
- adds pagination support to walletDb loadTransactions iterator by @hughy in #3890
- fix: additional block verification for duplicate transactions by @mat-if in #3908
- test: transaction verification benchmarks by @mat-if in #3910
- test: add perf test for createNewBlockTemplate by @mat-if in #3912
- fix(simulator): turn http adapter on by default by @holahula in #3913
- perf: improve rust hex (de-)serialization by @mat-if in #3915
- adds support for creating witnesses at past sizes by @hughy in #3896
- Fix bad account balance for custom fee by @whohideonbug in #3916
- creates spend witnesses using confirmation range by @hughy in #3918
- Add confirmations and account to mint,burn,send fee selector by @dguenther in #3919
- feat(ifl-934): agent to telemetry tags by @jowparks in #3921
- adds confirmations to chain/getNoteWitness by @hughy in #3920
- perf: refactor messages to reduce a duplicate serialization by @mat-if in #3924
- checks if submitted block is heavier when chain changed by @hughy in #3923
- adds rpc to follow transaction gossip stream by @hughy in #3925
- fixes flaky onTransactionGossipReceived test by @hughy in #3933
- regenerates fixtures and fixes outdated wallet tests by @hughy in #3931
New Contributors
- @whohideonbug made their first contribution in #3916
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Breaking changes:
Asset
constructor now usespublic_address
rather thanspending_key
. This will only affect SDK users who were manually constructingAsset
s. #3863
Other changes:
- Update cli text for transaction:watch by @wd021 in #3853
- Documentation url by @ChandlerFerry in #3855
- Add support for
PostTransaction
inworkers:status
by @holahula in #3865 - Add test/updates for calculating raw transaction size by @jowparks in #3854
- Size method note primitives by @jowparks in #3868
- Update ironfish repo readme by @ygao76 in #3866
- Fix mempool/getTransactions limit parameter by @holahula in #3878
- Validate string input fields in RPC by @jowparks in #3870
- Return nullifier in rpc notes responses by @ygao76 in #3880
- removes unnecessary note decryption in wallet transaction RPCs by @hughy in #3872
- makes notes from wallet RPCs uniform by @hughy in #3883
- Add getMaxTransactionBytes method to the verifier by @jowparks in #3869
- Fix Windows chain:download by closing DB before deleting by @dguenther in #3888
- Add incoming peer whitelist by IP by @danield9tqh in #3886
- Create peer/add RPC endpoint and CLI command by @danield9tqh in #3885
- Check network version on chaindownload by @ygao76 in #3871
- Add peer identity to status command by @danield9tqh in #3894
- adds support for
RpcHttpAdapter
inrpc/getStatus
route by @holahula in #3889 - Update metrics flush interval to one hour by @jowparks in #3882
- Check for transactions with duplicate nullifiers earlier by @mat-if in #3898
- implements wallet/getNotes endpoint with pagination by @hughy in #3861
- adds filtering to wallet/getNotes endpoint by @hughy in #3867
New Contributors
- @ChandlerFerry made their first contribution in #3855. Thanks!
All changes
For the full list of changes, check out the commits: v1.1.0...v1.2.0
v1.1.0
Breaking changes
chain/getTransaction
now returns an error if the transaction is not found instead of returning an empty transaction object #3841. Some errors from this were also changed from ValidationError to NotFoundError. Both minor changesdefaultNetworkName()
now returns 'Devnet' instead of 'Dev' for network 2. Also, the devnet network definition is now exported asDEVNET
instead ofDEV
.
What's Changed
- Separate telemetry by endpoint by @danield9tqh in #3816
- feat(ironfish): add note hash to
wallet/getAccountNotesStream
RPC by @holahula in #3831 - Rpc spend by @ygao76 in #3832
- feat(ironfish): Add missing note hashes from RPC responses by @rohanjadvani in #3836
- fix(simulator): gracefully shutdown simulator on unexpected exit by @holahula in #3773
- Add spends to chain/getTransaction by @ygao76 in #3838
- feat(ironfish): add spends to
wallet/getTransaction
by @holahula in #3835 - adds custom transaction funding by note hash by @hughy in #3830
- Refactor chain/getTransaction by @danield9tqh in #3841
- feat(ironfish): Return note indices in getNotes by @rohanjadvani in #3812
- feat(ironfish): add spends to
wallet/getTransactions
by @holahula in #3834 - Deserialize fee as BigI64 by @dguenther in #3847
- Rename RPC route files to match endpoints by @dguenther in #3837
- Rename DEV -> DEVNET by @NullSoldier in #3820
- resets the testnet with a new genesis block by @hughy in #3848
- Use yup schema for spends by @ygao76 in #3849
- refactor(ironfish): Properly mark
notesEncrypted
as deprecated by @rohanjadvani in #3850 - Add RPC for validating address by @danield9tqh in #3842
- bumps versions for v1.1.0 by @hughy in #3852
- STAGING -> MASTER by @hughy in #3851
Full Changelog: v1.0.1...v1.1.0
v1.0.1
What's Changed
- feat(cli): Add network name to status. uses id as fallback by @mat-if in #3810
- feat(ironfish): Send block header work to API in sync by @rohanjadvani in #3809
- feat(cli): add memo to interactive mode and display it in confirmation by @mat-if in #3815
- Version 1.0.1 by @mat-if in #3818
- STAGING -> MASTER by @mat-if in #3817
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
v1.0.0 is our mainnet release! This is an otherwise light release that fixes a few bugs and adds the mainnet genesis block and bootstrap nodes.
- displays transactions sent to own address in wallet:transactions by @hughy in #3799
- clears walletdb datastores during reset by @hughy in #3797
- Separate mainnet + testnet telemetry by @danield9tqh in #3786
- Export NoteHasher in merkle tree from by @danield9tqh in #3804
- pushes version to testnet api by @hughy in #3795
- Add mainnet genesis block by @dguenther in #3808
Full Changelog: v0.1.76...v1.0.0
v0.1.76
What's Changed
This release updates the ZK circuits to fix the bug delaying mainnet launch. The release also includes generated parameters from the second trusted setup, the final proving parameters that will be used for mainnet.
This also means that this release is a network reset. The genesis block for both testnet and devnet have changed so anyone running on the network will need to reset their node with ironfish reset
. All chain and wallet databases will be cleared but private keys will be kept by the wallet.
- Network reset for circuit changes by @danield9tqh in #3775
- Bump min network version to 22 by @dguenther in #3778
- updates simulator sdk dependency in version-bump by @hughy in #3777
- Seal trusted setup with beacon value by @danield9tqh in #3780
- Regenerate fixtures with trusted setup contributions by @danield9tqh in #3781
- Bump to version 0.1.76 by @danield9tqh in #3784
- STAGING -> MASTER by @danield9tqh in #3785
Full Changelog: v0.1.75...v0.1.76
v0.1.75
What's Changed
- conditionally formats cli transactions output by @hughy in #3708
- Updated GH Actions to not use NodeJS 12 by @danield9tqh in #3715
- feat: accept transactions response update by @jowparks in #3723
- Simulator by @holahula in #3702
- Fix message buffer to be per client by @danield9tqh in #3725
- refactor: expose last rebroadcast time in wallet/getTransaction by @holahula in #3728
- Switch R2 to use prod endpoint by @danield9tqh in #3729
- adds decrypted notes to getAccountTransactions by @hughy in #3731
- Revert "optionally organizes wallet:transactions output by note" by @hughy in #3734
- Clarify db version error when db is newer by @NullSoldier in #3736
- Autotest account imports by @EvanJRichard in #3707
- moves wallet rpc util functions from types to utils by @hughy in #3733
- Wallet block birthdays by @hughy in #3719
- Make wallet:import handle wallets from version 71 by @NullSoldier in #3739
- feature(simulator): add support for running arbitrary ironfish cli commands by @holahula in #3741
- Add region to service command by @danield9tqh in #3743
- Add private queue for trusted setup by @danield9tqh in #3730
- Change importexport tests to use test datadir by @NullSoldier in #3738
- Move importexport tests to ironfish-cli by @NullSoldier in #3737
- bumps account schema version for block birthday changes by @hughy in #3740
- refactor(ironfish): do not quit transaction:watch if the transaction is not found by @holahula in #3726
- Add beacon value for trusted setup V2 by @danield9tqh in #3724
- Update download url trusted setup by @danield9tqh in #3748
- Delete importexport test datadir before starting by @NullSoldier in #3752
- Allow specifying account name on import using flag by @NullSoldier in #3754
- Remove duplicate mnemonics by @NullSoldier in #3750
- restores submittedSequence to wallet transaction RPCs by @hughy in #3749
- removes unneeded account import/export test cases by @hughy in #3758
- Fix trusted setup error when verifying by @danield9tqh in #3760
- optionally organizes wallet:transactions output by note by @hughy in #3735
- Make logs for importexport tests simpler by @NullSoldier in #3756
- Return error codes for RPC errors by @NullSoldier in #3755
- Rename _blob to _bech32 to match encoding by @NullSoldier in #3751
- fix: libc reference failing in android by @jowparks in #3718
- addresses zero division errors in Target calculation by @hughy in #3717
- Allow opening the repl without opening the DB by @NullSoldier in #3753
- adds missing fields to wallet transaction RPCs by @hughy in #3768
- Remove undefined from Target constructor by @dguenther in #3765
- feature(ironfish): Add RPC route for
chain:broadcast
by @holahula in #3742 - feat(simulator): Support accessing the genesis block in the simulator by @holahula in #3757
- adds hash to response of wallet/postTransaction by @hughy in #3764
- Use schema result when routing requests by @NullSoldier in #3710
- Namespace all routes inside of RPCClient by @NullSoldier in #3769
- Add index & noteIndex in chain/getTransaction by @hairtail in #3709
- fixes lint errors from rpc client namespaces by @hughy in #3772
- bumps package versions for v0.1.75 by @hughy in #3771
- STAGING -> MASTER by @hughy in #3770
Full Changelog: v0.1.74...v0.1.75