Releases: iron-fish/ironfish
v1.18.0
Breaking Changes
- #4603 - Removes
networkDefinitionPath
from config - #4610 - Removes
networkId
from config - #4613 - Changes network definitions from strings to typed objects
What's Changed
- Remove customNetwork config value by @danield9tqh in #4568
- Pool validates FishHash blocks by @danield9tqh in #4589
- feat: enable rpc.tcp automatically if tcp port or host is provided by @jowparks in #4417
- Remove networkId from config by @danield9tqh in #4610
- filestore handles empty file by @patnir in #4625
Full Changelog: v1.17.0...v1.18.0
v1.17.0
Breaking Changes
- #4566 - fixes the naming of
allowedBlockFutureSeconds
inchain/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 tointernal.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
Breaking Changes
- #4510 - Remove the config values
explorerBlocksUrl
andexplorerTransactionsUrl
from SDK config. They were previously used by the pool. Also changes some of the constructors forMiningPool
andWebhookNotifier
. 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 toStrategy
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
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.
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
Breaking Changes
peer/addPeer
RPC now waits for the peer connection to either succeed or fail before returning a result.PartialHeaderSerde
andBlockHeader.serializePartial
have been removed and are no longer exported from the SDK.wallet/getAccountsStatus
RPC no longer accepts an account parameter (it did nothing). Usewallet/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
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
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 themaxPeer
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 akeepOpenPeerSlot
config option (default false). When set to true, a node will disconnect from a peer if it is atmaxPeers
, 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
What's Changed
- Remove unneeded imports from RpcClient by @danield9tqh in #4330
- Remove unused simulate-latency code by @mat-if in #4333
- Export KeyStore by @danield9tqh in #4337
- Bump SDK version to 1.10.1 by @danield9tqh in #4339
- STAGING -> MASTER by @danield9tqh in #4341
- Fix typo in comment by @NullSoldier in #4342
- Allow ascending and descending sorting in account transactions RPC by @dguenther in #4349
- remove unused mainnet command by @danield9tqh in #4338
- Move snapshot download code into shared functions by @danield9tqh in #4345
- Fix version dependency for sdk by @mat-if in #4356
- Fix custom asset fetching when passing a non-default account to wallet:transactions by @dguenther in #4358
- Fix some small bugs in snapshot code by @danield9tqh in #4355
- Adding hex flag to handle invalid hex field by @patnir in #4325
- adding string length limit to node name by @patnir in #4324
- Fix status follow erroring out by @danield9tqh in #4357
- Mining Manager: make preemptive block creation optional by @andiflabs in #4359
- MintAsset RPC: Add transferOwnershipTo field by @mat-if in #4364
- Export network definitions from the SDK by @andiflabs in #4369
- Add exports to sdk package by @danield9tqh in #4344
- fix(ironfish): Update
BoxKeyPair
import to reference the package by @rohanjadvani in #4376 - v1.11.0 by @rohanjadvani in #4375
- staging -> master by @rohanjadvani in #4377
Breaking Changes
- Removed
simulateLatency
config option: #4333 - Changed
outputPath
tooutput
directory inchain:download
command #4345
Full Changelog: v1.10.0...v1.11.0
v1.10.0
Breaking Changes
fee
field on/chain/getTransaction
is now aNumber
(was aString
) 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 inRawTransaction
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
Breaking Changes
transaction_signature_hash
return types updated toResult
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
andburnAsset
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 newowner
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