Releases: iron-fish/ironfish
v0.1.62
What's Changed
- Fix faucet displaying incorrect error by @NullSoldier in #2988
- Faucet checks addresses are valid before paying out by @mat-if in #3009
- Fix segmentation fault crashes by @mat-if in #3017
- Fix: minor typo by @omahs in #2990
- removes extra ' character in error message by @hughy in #2994
- chore: rename merklehash to hash by @jowparks in #3015
New Contributors
Full Changelog: v0.1.61...v0.1.62
v0.1.61
What's Changed
We generated a new genesis block with a lower difficulty for Phase 3.
Full Changelog: v0.1.60...v0.1.61
v0.1.60
Welcome to Phase 3. 👁🏃♀️🐠
What's Changed
- Display asset deltas when calling wallet:transaction by @EvanJRichard in #2933
- Change NotEnoughFundsError to use CurrencyUtils.renderIron by @EvanJRichard in #2945
- Wallet accounts by @lwisne in #2947
- Mint burn by @lwisne in #2950
- feat(cli): add asset selector to burn command by @mat-if in #2955
- feat(cli): Add asset selector to the mint command by @mat-if in #2957
- Remove topic overrides by @NullSoldier in #2954
- fix(cli): Avoid prompt in mint if metadata or name provided by @rohanjadvani in #2951
- Allow default fee in burn by @NullSoldier in #2959
- Allow default fee in mint by @NullSoldier in #2958
- Remove unneeded toString() in explain balance by @NullSoldier in #2961
- changes RPC serialization of asset name to use hex by @hughy in #2949
- feat(cli): Improve usability when selecting asset by @rohanjadvani in #2963
- feat(cli): add a confirm flag/step to mint by @mat-if in #2972
- Fix_#2966-corrected-account-command-to-wallet by @justmml in #2967
- changes NotEnoughFundsError messages by @hughy in #2974
- feat(cli): add confirm flag/step to burn by @mat-if in #2973
- accounts -> wallet by @lwisne in #2971
- Version bump CLI 0.1.60, SDK 0.0.37 by @NullSoldier in #2976
- Add phase3 genesis block by @NullSoldier in #2977
- STAGING -> MASTER by @NullSoldier in #2975
New Contributors
Full Changelog: v0.1.59...v0.1.60
v0.1.59
What's Changed
- feat(ironfish): Remove
AsyncGenerator
return type fromiterateBlockTransactions
by @rohanjadvani in #2902 - fix(ironfish): Keep consistent iteration in block connect events by @rohanjadvani in #2904
- fixes transactionValue to use signed bigints in balance deltas by @hughy in #2906
- chore: removing sender from proposed transaction, no longer needed by @jowparks in #2908
- replaces 'x' with blank space in transactions cli by @hughy in #2911
- feat(cli): Pool miner will now load the default public address by @mat-if in #2914
- fix(cli): Add table flags to
wallet:balances
by @mat-if in #2913 - adds 'confirmations' option to wallet:transactions by @hughy in #2915
- fix(cli): Make
fee
denomination in mint/burn consistent with send by @rohanjadvani in #2916 - fix(cli): Make account optional for mint and burn by @rohanjadvani in #2918
- fixes webApi URL for /deposits/address by @hughy in #2922
- adds asset name, id to notes in wallet:transaction output by @hughy in #2923
- simplifies getTransactions logic with limit by @hughy in #2920
- feat(cli): Add asset selector for
wallet:send
by @mat-if in #2912 - fix(cli):
wallet:send
examples use long-form arguments for clarity by @mat-if in #2919 - Wallet create transaction cleanup by @ygao76 in #2926
- Post transaction cleanup by @ygao76 in #2927
- Make metadata an optional field in minting, else default to empty string by @EvanJRichard in #2921
- chore(cli): Add more examples for mint / burn CLI by @rohanjadvani in #2931
- fix(cli): Update amount denominations in mint/burn to be IRON by @rohanjadvani in #2917
- adds timestamp to wallet:transaction by @hughy in #2934
- Show timezones for all CLI timestamps by @NullSoldier in #2940
- Remove transaction prefix from obviously tx things by @NullSoldier in #2937
- adds mints count and burns count to wallet:transaction by @hughy in #2935
- feat(cli): Add interactive mode to mint command by @rohanjadvani in #2936
- feat(cli): Add interactive mode to burn by @rohanjadvani in #2939
- adds IRON amount to wallet:transactions output by @hughy in #2907
- replaces creator and isMinersFee with transaction type by @hughy in #2943
- fixes comparison for transaction type by @hughy in #2944
- Version bump 0.1.59 CLI, 0.1.21 RUST, 0.0.35 SDK by @NullSoldier in #2942
- STAGING -> MASTER by @NullSoldier in #2941
Full Changelog: v0.1.58...v0.1.59
v0.1.58
What's Changed
- Add instructions to upgrading Node version by @danield9tqh in #2866
- feat(ironfish): Add getBalances method to wallet and account by @rohanjadvani in #2867
- changes headHashes to store both hash and sequence by @hughy in #2836
- Fix test fails by @hairtail in #2868
- refactor(ironfish): Remove destructure in
wallet.getBalances
by @rohanjadvani in #2870 - Add RPC for posting a raw transaction. by @EvanJRichard in #2838
- reads head sequence at account level in balance methods by @hughy in #2874
- chore: pin a couple nodejs transitive dependencies for security fixes by @mat-if in #2871
- filters by sequence in getUnspentNotes at account level by @hughy in #2876
- feat(ironfish): Add
wallet/getBalances
RPC route by @rohanjadvani in #2875 - fix: bug transactions in multi asset syncer and by @jowparks in #2879
- fix(ci): Add more rust-related file triggers for the Rust CI by @mat-if in #2873
- chore(rust): upgrade rust transitive dependency for security fixes by @mat-if in #2872
- feat(ironfish): Add simple validation for mints and burns by @mat-if in #2864
- chore: cleanup web api by @jowparks in #2882
- moves isExpiredSequence off of Verifier by @hughy in #2883
- Bump database migration versions by @NullSoldier in #2880
- Remove create transaction in worker pool by @ygao76 in #2878
- chore: add multi asset address by @jowparks in #2884
- Fix references to account DB by @NullSoldier in #2881
- Remove actions-rs from Github Actions by @dguenther in #2846
- feat(ironfish,cli): Change account import to only use spending key by @mat-if in #2888
- chore: update send command consistent by @jowparks in #2889
- feat(cli,ironfish): Add
wallet:balances
command by @rohanjadvani in #2885 - Add RPC validation to confirmations by @NullSoldier in #2892
- Reduce destructuring balance model by @NullSoldier in #2893
- renames minimumBlockConfirmations to confirmations by @hughy in #2895
- feat(ironfish): Duplicate assets store into the walletdb by @rohanjadvani in #2894
- refactor(ironfish):
assets
->asset
for the blockchain db by @rohanjadvani in #2896 - cleans up account head usage in wallet by @hughy in #2887
- chore: update Discord invite link by @mat-if in #2899
- chore(rust): Upgrade rust version to 1.66.1 by @mat-if in #2898
- Bump CLI 0.1.58, SDK 0.0.35, Rust 0.1.21 by @NullSoldier in #2901
- STAGING -> MASTER by @NullSoldier in #2900
Full Changelog: v0.1.57...v0.1.58
v0.1.57
v0.1.56
What's Changed
- Rename expirationSequence -> expiration in JS by @NullSoldier in #2782
- feat(ci): Fetch cargo-tarpaulin binary from github instead of using github action by @mat-if in #2784
- fix(napi): Update changes to autogenerated files by @mat-if in #2787
- Rename expirationSequence -> expiration in RS by @NullSoldier in #2785
- feat(cli,ironfish): Update balance CLI command to include
assetIdentifier
by @rohanjadvani in #2762 - feat(ironfish): Add RPC route for minting asset by @rohanjadvani in #2786
- feat(ironfish): Pass
assetIdentifier
intransaction/sendTransaction
by @rohanjadvani in #2760 - Fix submittedSequence in connectTransaction by @mirayadav in #2791
- feat(cli): Introduce
assets:mint
CLI command by @rohanjadvani in #2788 - removes unused wallet code for syncing transactions by @hughy in #2783
- Add DatabaseIteratorOptions by @mirayadav in #2798
- Add support for iterating database entries by key order by @mirayadav in #2799
- feat(cli): Show asset identifier for amount being paid instead of $IRON by @rohanjadvani in #2800
- removes balance repair from accounts:repair by @hughy in #2802
- Display Mints and Burns for accounts:transactions by @ygao76 in #2803
- Extend status column to 12 by @NullSoldier in #2805
- Transaction Ordering By Timestamp by @mirayadav in #2790
- Change RPC note.amount to be value by @NullSoldier in #2806
- Replace hex-array library with native (de)serialization by @danield9tqh in #2794
- Replace all fixed sized BigInt serialization and deserialization with bufio by @danield9tqh in #2781
- Remove buildRawTransaction() in blockchain.test by @NullSoldier in #2801
- Update to Nodejs 18 by @dguenther in #2768
- Remove useRawTxFixture() fixture by @NullSoldier in #2804
- Don't save latest until transaction commit by @danield9tqh in #2809
- Display asset identifier for accounts:notes cli by @ygao76 in #2793
- Add chain:asset command by @NullSoldier in #2815
- Add useMintBlockFixture for tests by @NullSoldier in #2810
- feat(ironfish): Update mint arguments to be consistent with pay by @rohanjadvani in #2817
- adds chain state fields to balances datastore by @hughy in #2792
- Fix note encoding not using CurrencyUtils by @NullSoldier in #2821
- Delete fees RPC namespace by @NullSoldier in #2822
- feat(ironfish): Add burn method to wallet by @rohanjadvani in #2816
- Merge transaction namespace into wallet RPC namespace by @NullSoldier in #2823
- Upgrading oclif/core to 1.23.1 by @NullSoldier in #2824
- adds balance delta mapping to transactionValue by @hughy in #2819
- Kill CLI aliases. by @EvanJRichard in #2825
- Move transaction routes into wallet folder by @NullSoldier in #2829
- Rename Wallet.pay() -> Wallet.send() by @NullSoldier in #2830
- feat(ironfish): Add RPC route for
wallet/burnAsset
by @rohanjadvani in #2833 - feat(cli): Add
wallet:burn
CLI command by @rohanjadvani in #2834 - refactor(ironfish): Move mint asset under wallet namespace by @rohanjadvani in #2831
- feat(rust): use
checked_add
forValueBalance
by @mat-if in #2840 - refactor(cli,ironfish,rust,rust-nodejs): asset identifier -> asset id by @rohanjadvani in #2837
- Update napi-rs by @dguenther in #2842
- Rename assetIdentifier -> assetId by @NullSoldier in #2843
- feat: update get transaction stream (1/2) by @jowparks in #2835
- Move fixtures into distinct folders by @NullSoldier in #2844
- Rename accounts commands to wallet by @NullSoldier in #2845
- feat: wire up multi asset syncer to API (2/2) by @jowparks in #2795
- fixes submittedSequence to be non-nullable by @hughy in #2841
- delegates headHashes datastore to account by @hughy in #2832
- displays balance head hash and sequence in CLI by @hughy in #2839
- fix: bug in multi asset syncer by @jowparks in #2848
- adds account filtering logic to connect/disconnect by @hughy in #2820
New Contributors
- @EvanJRichard made their first contribution in #2825
Full Changelog: v0.1.55...v0.1.56
v0.1.55
What's Changed
Please note this release is not backward-compatible with previous releases.
- You will not be able to connect to the Phase 2 testnet network with this version or access your Phase 2 chain or accounts using this version.
- If you've earned Phase 2 testnet points, we recommend running
ironfish accounts:export
on an older version to back up your account keys.
Network definitions
Previously, network parameters like the genesis block and bootstrap nodes were built into the code, but in this release @mirayadav added support for network definitions, which allow the CLI to support multiple networks.
We'll eventually use this feature to run mainnet and testnet using the same CLI. You can pass --customNetwork
to the start command if you'd like to create your own network, or pass --networkId
with the ID of one of the networks in this file: https://github.com/iron-fish/ironfish/blob/38d2528903d3def6be0eaa4eaf400deb541b404c/ironfish/src/defaultNetworkDefinitions.ts
Related PRs
- Add support for custom network definitions by @mirayadav in #2639
- Tweak network definitions by @danield9tqh in #2690
- Move maxSyncedAgeBlocks to config from consensus by @mirayadav in #2691
- Enforce separate data directories per network by @mirayadav in #2698
- Add network ID and genesis block hash to Identify Message by @mirayadav in #2718
Add sender to transactions
Transactions now display the public address from which they were sent. Transactions still allow multiple recipients, but for now, we're limiting transactions to a single sender to support this feature.
Related PRs
- feat: add sender address to notes and validate in circuit by @jowparks in #2673
- Add sender address to Note in rust by @ygao76 in #2680
- feat: add sender to transaction ts by @jowparks in #2682
- feat: add sender() to Note and ProposedTransaction by @jowparks in #2686
- Move randomized public key to transaction by @ygao76 in #2755
- Clean up for sender address by @ygao76 in #2761
- feat: add sender to cli outputs by @jowparks in #2763
- feat: change sender output text by @jowparks in #2764
Adding transaction commitment to block header
Block headers now contain a merkle root of all transactions in the block, allowing block recipients to verify that they've received the matching transactions for the block.
Related PRs
- Add transaction commitment to block header by @danield9tqh in #2653
Reducing network and storage usage
We removed some unnecessary fields from the database and block header to save disk space and network usage.
Related PRs
- network-reset: Remove note tree size from block header by @dguenther in #2642
- Reduce hashed header sequence from u64 to u32 by @dguenther in https://github.com/iron-fish/ironfish/pull/
- Remove nullifier commitment from block header by @danield9tqh in #2675
- Delete minedBlockIndexer by @dguenther in #2696
- Remove element field from merkle tree leaves by @dguenther in #2706
- Replace nullifier merkle tree with nullifier set by @danield9tqh in #2722
- Remove nullifier size from block header by @danield9tqh in #2735
- Add transaction to NullifierSet connect and disconnect by @danield9tqh in #2748
Continuing work on multi-asset support
Multi-asset support is not yet usable in the CLI, but the underlying fields and circuits are nearly complete.
Related PRs
- feat(ironfish,rust,rust-nodejs): Add Napi bindings for mint descriptions by @rohanjadvani in #2652
- feat(ironfish): Read burn descriptions from transaction in deserialization by @rohanjadvani in #2659
- feat(rust-nodejs): Add
note.asset_identifier()
by @rohanjadvani in #2661 - feat(rust-nodejs): Add
transaction.mint
andtransaction.burn
by @rohanjadvani in #2662 - feat(ironfish,rust-nodejs): Update create transaction handler to include mints and burns by @rohanjadvani in #2665
- refactor(ironfish): Read and store Note asset identifier for quicker acces by @mat-if in #2666
- feat(ironfish): Add assets store to blockchain by @rohanjadvani in #2677
- feat(ironfish,rust-nodejs): Update blockchain assets store when processing blocks by @rohanjadvani in #2703
- feat(ironfish): Update
balances
store inwalletdb
to include asset by @rohanjadvani in #2729 - feat(ironfish): Add asset awareness when checking amounts needed for spends by @rohanjadvani in #2730
- feat(ironfish): Use
assetIdentifier
when saving unconfirmed balance by @rohanjadvani in #2738 - feat(rust): Assets should have a valid non-empty name by @mat-if in #2739
- feat(ironfish): Update getBalance to take an asset identifier by @rohanjadvani in #2742
- Check mints and burns in miner fee transactions by @dguenther in #2766
Change in data directory structure
We've changed the folder structure of our data directory to make it clearer which folders contain databases and which folders contain configuration.
Related PRs
- chore: database paths to one folder by @jowparks in #2635
- Remove ability to customize database names by @NullSoldier in #2683
Community PRs
Thanks to our community members for their contributions to this release!
- Add from sequence for accounts:rescan by @hairtail in #2453
- Update account rpc endpoint by @wd021 in #2509
Full Changelog: v0.1.54...v0.1.55
v0.1.54
v0.1.53
What's Changed
‼️ V3 Consensus Upgrade ‼️
This will stop new iron from being generated, and allow deposits to the end of the testnet Phase 2. You MUST upgrade immediately as this adds a hard fork at block 279900.
ironfish accounts:repair
You can use this new command to repair your wallet and help fix some corruption. We recommend running this on your wallet to repair some issues with note to nullifier
errors happening. We also put in some wallet fixes thanks to @hughy to hopefully prevent this, and other issues from happening again.
Full Changelog: v0.1.52...v0.1.53