Skip to content

Releases: iron-fish/ironfish

v1.18.0

29 Jan 00:24
a12ebdd
Compare
Choose a tag to compare

Breaking Changes

  • #4603 - Removes networkDefinitionPath from config
  • #4610 - Removes networkId from config
  • #4613 - Changes network definitions from strings to typed objects

What's Changed

Full Changelog: v1.17.0...v1.18.0

v1.17.0

23 Jan 03:22
ed05969
Compare
Choose a tag to compare

Breaking Changes

  • #4566 - fixes the naming of allowedBlockFutureSeconds in chain/getConsensusParameters endpoint
  • #4567 - Changes signature of Consensus.isActive method in the SDK
  • #4540 - When using the SDK, calling sdk.node() will save the node's network identity automatically to internal.json. Previously you would have to save it in a separate call, otherwise the network identity would not be persisted.
  • #4573 - Many RPC types in the SDK have changed names and now use the Rpc prefix to indicate they are types for the RPC layer.
  • #4578 - SDK type change renamed ERROR_CODES to RPC_ERROR_CODES

What's Changed

  • Added FishHash verification to the node
  • Added HTTP RPC Adapter to SDK

Full Changelog: v1.16.0...v1.17.0

v1.16.0

16 Jan 22:32
ad4cbcb
Compare
Choose a tag to compare

Breaking Changes

  • #4510 - Remove the config values explorerBlocksUrl and explorerTransactionsUrl from SDK config. They were previously used by the pool. Also changes some of the constructors for MiningPool and WebhookNotifier. Should not affect anyone not using the reference pool.
  • #4533 - Changes constructor for BlockHeader class to take a mandatory hash which will be reflected in the SDK. Moves hashing function to Strategy class
  • #4475 - Changes constructor of Config class to now take a mandatory object of extended keys. You must pass this even if you are not extending the config. You can simply pass {}.

What's Changed

  • Added signed Iron Fish portable executables to each release now #4490
  • Added new wallet:notes:combine command #4498
  • See 32 more changes: v1.15.0...v1.16.0

v1.15.0

19 Dec 18:01
e3492d3
Compare
Choose a tag to compare

New CLI Command: ironfish wallet:notes:combine

Problem: Users transactions are stuck because those transactions contain too many notes. The transaction is not posted in time and usually expires.

Fix: This release introduces a new CLI command to combine a large number of notes into a single note. This command benchmarks the performance of your machine and suggests amount of notes to combine.

image

Once combined, the ironfish wallet:send command with the --note flag can be used to select the combined note. ironfish wallet:notes --filter="Spent=x" is useful to find the combined note.

What's Changed

  • fixes import on accounts that do not include viewKey by @hughy in #4488
  • rendering negative time in timeutils.renderSpan by @patnir in #4489
  • feat: signable binary by @jowparks in #4479
  • Rahul/ifl 1848 combine notes command by @patnir in #4470
  • Bump perf test and regenerate fixture node versions to 20 by @dguenther in #4493

Full Changelog: v1.14.0...v1.15.0

v1.14.0

14 Dec 23:59
64c70d2
Compare
Choose a tag to compare

Breaking Changes

  • peer/addPeer RPC now waits for the peer connection to either succeed or fail before returning a result.
  • PartialHeaderSerde and BlockHeader.serializePartial have been removed and are no longer exported from the SDK.
  • wallet/getAccountsStatus RPC no longer accepts an account parameter (it did nothing). Use wallet/getAccountStatus to fetch account status for a single account.
  • wallet/getAccountsStatus RPC now returns:
{
  name: string
  id: string
  head: {
    hash: string
    sequence: number
    inChain: boolean | null
  } | null
  viewOnly: boolean
}

Other Changes

  • Sending a transaction in the CLI now shows a summary of the transaction, including spends and outputs, before sending it. @patnir in #4469
  • We now display a clearer error when passing --path and an invalid argument to the wallet:import command. @dguenther in #4483
  • The wallet/getAccountsStatus RPC now returns whether an account is view-only. @dguenther in #4481
  • Added a wallet/getAccountStatus RPC to return results for a single account. @dguenther in #4482
  • The peer/addPeer RPC now waits for the node to connect to the given peer before returning. @danield9tqh in #4448
  • Fixed a time-related case where snapshot downloads could unexpectedly time out. @dguenther in #4480

v1.13.0

29 Nov 23:24
8fa601f
Compare
Choose a tag to compare

What's Changed

  • Updated the SDK to now run on Node 20 LTS #4434
  • Added sorting for peers command #4442
  • Whitelisted nodes are now not disconnected #4444
  • Adding ability to select notes in the transaction send command by @patnir in #4465

Full Changelog: v1.12.0...v1.13.0

Note Selection in ironfish wallet:send

You can now pass note hashes to ironfish wallet:send command to force the wallet to use these notes in the transaction.

Example

ironfish wallet:send \
    --note 72e91d6672d79f9006f128a16cf52bbb585037fee2aea8385b56919c3ac9570b \
    --note 4a5feb193d425fa73abfb108027a643eb027e46684c50e2bef5d66ea48ec3d2d \
    --note f8b91f81caf4489c83734c2b29ad4587c9ba0c1080854a3f6da19f6fad49265e

NOTE: If you specify notes, and it's not enough for the send amount, the wallet will add extra notes to fund the transaction.

v1.12.0

07 Nov 00:57
3b61ff3
Compare
Choose a tag to compare

Notable Changes


Removing support for NodeJS v16; adding support for NodeJS v20 and beyond. The node now requires a minimum version of NodeJS v18 instead of only NodeJS v18, so we can more easily support new NodeJS versions as they are released.

Block syncing speed should be improved. The node will regularly measure the connection of some peers to try to find a faster peer to sync from. The first time this occurs is 2 minutes after the node starts syncing, then 4, 8, 16.. up to a maximum of once per 60 minutes.

Nodes should be able to find peers faster and more consistently.

  • The default targetPeer value is now 45. This means that nodes will attempt to connect to new nodes until it has reached 45 peers. After 45, it will allow incoming connections up to the maxPeer value, which has a default of 50. This will allow other nodes to find peers faster since nodes will no longer be trying to actively reach the maximum.
  • Nodes track peers that it successfully connects to via websocket connection and saves these peers to disk. The next time the node starts, it will attempt connections to these peers first, leading to faster initial startup connections.
  • Nodes now only count peers that are fully connected when checking if it should open new connections or allow incoming connections, instead of peers that were in connected or connecting states.

    Added a keepOpenPeerSlot config option (default false). When set to true, a node will disconnect from a peer if it is at maxPeers, so that the node will always allow an incoming connection instead of reaching the maximum number of peers and rejecting incoming connections.

Breaking Changes

Moved PriorityQueue out of mempool #4380

Changed the return type of Note.memo() to Buffer. Use BufferUtils.toHuman(note.memo()) to produce the same human-readable value #4384

Removed support for NodeJS v16. Supported versions of NodeJS are now v18 or higher. #4395

Full Changelog: v1.11.0...v1.12.0

v1.11.0

19 Oct 19:58
246e55d
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Removed simulateLatency config option: #4333
  • Changed outputPath to output directory in chain:download command #4345

Full Changelog: v1.10.0...v1.11.0

v1.10.0

02 Oct 23:11
a584239
Compare
Choose a tag to compare

Breaking Changes

  • fee field on /chain/getTransaction is now a Number (was a String) PR for reference
  • The graffiti field as part of the RpcBlockHeader object will now be sent back as a hex string instead of a utf-8 string.

Notable Changes

  • /wallet/create has been deprecated for /wallet/createAccount
  • /wallet/remove has been deprecated for /wallet/removeAccount
  • /wallet/rename has been deprecated for /wallet/renameAccount
  • /wallet/use has been deprecated for /wallet/useAccount
  • New RPC Response Structure. Our important domain concepts like Transaction, WalletNote, Asset, etc. have been normalized.

What's Changed

  • Add mint asset creator field to transaction api calls by @mat-if in #4254
  • Explicitly set the asset creator field of mints in RawTransaction by @andreacorbellini in #4264
  • fixes wallet.updateHead test to be independent of fixture generation by @hughy in #4265
  • When an unknown asset is seen in a wallet transaction, backfill its information from the chain db before processing the transaction by @andreacorbellini in #4244
  • Add more information to getBlockResponse by @hairtail in #4217
  • feat(cli,ironfish): Return native asset when streaming wallet assets by @rohanjadvani in #4267
  • asset-security -> staging by @mat-if in #4250
  • Update the blockchain db whenever a mint with transferOwnershipTo is seen by @andreacorbellini in #4253
  • Update the wallet db whenever a mint with tranferOwnershipTo is seen by @andreacorbellini in #4266
  • Track originating peer for block gossip by @danield9tqh in #4270
  • Make activation flag nullable by @ygao76 in #4277
  • Add (de)serialization for Asset by @andreacorbellini in #4275
  • Add transferOwnershipTo support to CLI/RPC by @mat-if in #4278
  • Rahul/ifl 1624 useaccount endpoint by @patnir in #4280
  • Rahul/ifl 1625 renameaccount endpoint by @patnir in #4279
  • Rahul/ifl 1587 createaccount endpoint by @patnir in #4268
  • adding remove account endpoint by @patnir in #4281
  • Rahul/ifl 1603 make asset response consistent across all endpoints by @patnir in #4272
  • sequential-block-time -> staging by @ygao76 in #4276
  • Patched Fix Inefficient Regular Expression Complexity Regular Express… by @wica-sufatmawati in #4271
  • Rahul/ifl 1580 normalize encrypted note by @patnir in #4285
  • New fixture for multiple custom transactions by @danield9tqh in #4287
  • Rahul/ifl 1576 normalize block header by @patnir in #4286
  • Rahul/ifl 1578 normalize transaction by @patnir in #4288
  • Use Decimal library to make feeRates deterministic by @danield9tqh in #4282
  • Rahul/ifl 266 mintasset and burnasset do not accept a feerate in requests by @patnir in #4289
  • Rahul/ifl 1636 normalize block by @patnir in #4295
  • Rahul/ifl 493 account is not consistently optional in wallet rpcs 2 by @patnir in #4291
  • Rahul/ifl 1579 normalize transaction sub objects - mints and burns by @patnir in #4293
  • Rahul/ifl 1579 normalize transaction sub objects updating mint burn asset endpoints by @patnir in #4294
  • Add links to CI jobs on badges by @danield9tqh in #4296
  • Adding the Inversed Tech audit PDF report by @leanthebean in #4184
  • resets account heads and birthdays in reset command by @hughy in #4269
  • Increase the default difficulty when creating genesis and devnet difficulty by @mat-if in #4246
  • fix memory client close handlers by @danield9tqh in #4090
  • Rahul/ifl 1651 add ability to show usage of deprecated fields in ironfish by @patnir in #4298
  • feat: rust std::backtrace by @jowparks in #4274
  • Export network definitions by @ygao76 in #4302
  • marking counts fields as deprecated by @patnir in #4301
  • Rahul/ifl 1641 add optional serialized field to transaction rpc by @patnir in #4299
  • Rahul/ifl 1665 normalize exportchainstream by @patnir in #4304
  • Rahul/ifl 1670 move peerresponse into types by @patnir in #4305
  • adding burns and mints to the account transaction by @patnir in #4307
  • Rahul/ifl 1678 naming change accounttransaction to wallettransaction by @patnir in #4309
  • Notify Slack of fixture regeneration failure by @danield9tqh in #4164
  • Fix fixture regeneration failures for diable wallet test by @danield9tqh in #4310
  • Rahul/ifl 1653 update gettransaction response to use the rpc transaction by @patnir in #4300
  • adding full transaction object to burn and mint asset response by @patnir in #4311
  • formatting all rpc objects in the same order by @patnir in #4313
  • Rahul/ifl 1643 update cli to stop using the deprecated fields by @patnir in #4315
  • Resume snapshot downloads if supported by @dguenther in #4308
  • Don't use streaming endpoint in status CLI by @danield9tqh in #4312
  • Rahul/ifl 1690 remove dependence on deprecated status field by @patnir in #4320
  • Adding feerate to mint and burn by @patnir in #4318
  • Handle socket read/write errors by @andiflabs in #4317
  • version bump 1.9.0 to 1.10.0 by @patnir in #4326
  • Staging to master version 1.10.0 by @patnir in #4329

New Contributors

  • @wica-sufatmawati made their first contribution in #4271
  • @andiflabs made their first contribution in #4317

Full Changelog: v1.9.0...v1.10.0

v1.9.0

30 Aug 23:04
fbf32a7
Compare
Choose a tag to compare

Breaking Changes

  • transaction_signature_hash return types updated to Result

Notable Changes

  • Ability to start the full node without the wallet
  • Improvements to rescan when importing accounts and with connection issues

What's Changed

  • test(ironfish): Fix wallet/getAsset.test.ts by @rohanjadvani in #4218
  • Rahul/ifl 1499 conditionally start wallet based on flag by @patnir in #4201
  • test(cli,ironfish): Add option to set birthday on account create by @rohanjadvani in #4221
  • remove hardcoded transaction version check in batch verify by @mat-if in #4225
  • transaction_signature_hash functions return a result instead of panic by @mat-if in #4227
  • adding enable wallet flag to node start command by @patnir in #4223
  • Rahul/ifl 1498 show enabled state in wallet status by @patnir in #4226
  • test(ironfish): Fix mintAsset and burnAsset test fixtures by @rohanjadvani in #4230
  • Rahul/ifl 1534 format disabled status flag for new datadir by @patnir in #4233
  • fixes importAccount rescan if wallet not connected to node by @hughy in #4238
  • test(ironfish): Fix scan transaction wallet fixtures by @rohanjadvani in #4231
  • test(ironfish): Fix slow wallet test fixtures by @rohanjadvani in #4232
  • fix: manager test was non-deterministic due to mempool fee estimation by @mat-if in #4219
  • Check transactions validity before syncing to the wallet by @danield9tqh in #4189
  • Add limit for queue size of pending transactions in the wallet by @danield9tqh in #4185
  • Update Account.saveAssetFromChain to support the new owner field by @andreacorbellini in #4243
  • fixes balance example in repl command by @hughy in #4241
  • Use a floor of 1 for sequence when checking active consensus params by @mat-if in #4248
  • adds faucet namespace to walletNode RPC server by @hughy in #4247
  • Remove deprecated API functions by @mat-if in #4251
  • Rahul/ifl 1555 add node to wallet rpc namespace by @patnir in #4242
  • Adding verify genesis block check by @patnir in #4245
  • remove ironfish-wallet-server by @jowparks in #4252
  • restarts wallet scan on import by @hughy in #4255
  • fix(ironfish): Pass missing startWallet argument by @rohanjadvani in #4256
  • update rust ci test timeout from 3 to 5 minutes by @mat-if in #4258
  • feat(cli): Log message if no transactions are found for an account by @rohanjadvani in #4259
  • updateHead updates to chain head by @hughy in #4257
  • delete requires confirmation if account scanning by @hughy in #4260
  • feat(ironfish): Throw error if wallet node client is disconnected by @rohanjadvani in #4261
  • chore(cli,ironfish,rust-nodejs,simulator): Bump release versions by @rohanjadvani in #4262
  • staging -> master by @rohanjadvani in #4263

Full Changelog: v1.8.0...v1.9.0