Releases: iron-fish/ironfish
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
v1.8.0
Breaking changes
- Update to
chain/followChainStream
endpoint that removesowner
field from response and addscreator
in its place to more accurately represent transferable assets. https://github.com/iron-fish/website/pull/506/files
Notable changes
- Updates to support the ironfish standalone wallet CLI
- Initial changes for future support of asset ownership transfer
What's Changed
- adds wallet/getNodeStatus RPC by @hughy in #4135
- Add WalletNode interface and connect to RPC handlers by @danield9tqh in #4137
- Add support for V2 transactions to RawTransaction by @andreacorbellini in #4127
- refactor(ironfish): Check for backfill before opening db in migration 19 by @rohanjadvani in #4139
- removes wallet:repair command by @hughy in #4141
- Add ability to filter migrations by database by @danield9tqh in #4142
- refactor(cli,ironfish): Encapsulate nullifier set and remove duplicate
db
by @rohanjadvani in #4054 - Create WalletNode to start standalone wallet by @danield9tqh in #4144
- feat(ironfish): Remove wallet specific config by @rohanjadvani in #4148
- refactor(cli,ironfish): Node -> IronfishNode + IronfishNode -> FullNode by @rohanjadvani in #4149
- refactor(ironfish): Move notes and nullifiers from db to blockchain by @rohanjadvani in #4147
- fixes error message when database is ahead of node by @hughy in #4150
- feat(ironfish): Add SDK method to create wallet node by @rohanjadvani in #4151
- feat(ironfish): Move databases to migrator constructor by @rohanjadvani in #4152
- uses WalletNode instead of FullNode in wallet:prune by @hughy in #4153
- Clean up unnecessary wallet properties by @danield9tqh in #4145
- feat: serialized transactions get block by @jowparks in #4158
- feat(ironfish): Add connection retries to wallet node by @rohanjadvani in #4156
- fixes error output in wallet rpc test by @hughy in #4160
- refactor: rawTransaction slow tests re-generate valid transactions by @mat-if in #4154
- feat(ironfish): Remove hosts store from wallet node by @rohanjadvani in #4161
- throws error if wallet chainProcessor head not in chain by @hughy in #4162
- fix: Allow test path patterns to be passed to test commands by @mat-if in #4155
- Use Cargo resolver v2 by @andreacorbellini in #4163
- adds owner to walletDb assets store by @hughy in #4140
- refactor: Move genesis blocks into separate files by @mat-if in #4170
- fix: migration import path changed by @mat-if in #4171
- Refactor conditional send transaction by @danield9tqh in #4172
- does not reset account data if birthday not in chain by @hughy in #4167
- rpc: mint details in chain/getTransaction by @hairtail in #4143
- syncs pending transactions from event/onTransactionGossip by @hughy in #4174
- Rahul/ifl 1478 add nonce to getassets rpc endpoint by @patnir in #4178
- speeds up findFork for linear fast forward case by @hughy in #4183
- adds limit to block events in remoteChainProcessor updates by @hughy in #4182
- feat(cli,ironfish): Add SDK method to connect to wallet rpc client by @rohanjadvani in #4180
- feat(cli,ironfish): Create a CLI helper to create a config client by @rohanjadvani in #4168
- add owner field to follow chain stream and get assets RPCs by @mat-if in #4136
- Export RpcTlsClient from SDK by @dguenther in #4138
- Add owner field to mint description by @mat-if in #4146
- feat: Mining manager checks mint owner validity when adding transactions by @mat-if in #4165
- sets createdAt to chain head for new accounts by @hughy in #4191
- feat(cli,ironfish): Add
wallet:start
by @rohanjadvani in #4190 - fixes account import if wallet not conneted to node by @hughy in #4196
- getAccountsStatus returns undefined headInChain without node by @hughy in #4198
- Rahul/ifl 1497 add disablewalletsync to config by @patnir in #4194
- feat(ironfish): Add fallback logic if wallet node is called for full node by @rohanjadvani in #4199
- feat(cli,ironfish): Check running context in start and wallet:start by @rohanjadvani in #4202
- Expose the asset ownership information through the RPC layer by @andreacorbellini in #4181
- fix(ironfish): Check for node client in create by @rohanjadvani in #4203
- MintDescription: make
transferOwnershipTo
aBuffer
to be consistent withowner
by @andreacorbellini in #4195 - initializes chainProcessor in load by @hughy in #4205
- chain/broadcastTransaction does not throw error if network not ready by @hughy in #4179
- feat(cli,ironfish): Revert CLI / SDK changes for standalone wallet by @rohanjadvani in #4206
- Remove libuv-monitor from SDK by @dguenther in #4207
- Hotfix 1.7.1 staging master conflicts merge by @jowparks in #4213
- reject blocks containing transactions with an incorrect version by @mat-if in #4210
- adding information to readme about cli docs on the website by @patnir in #4177
- bump version for release (1.8.0) by @jowparks in #4215
- staging -> master (1.8.0 release) by @jowparks in #4214
New Contributors
Full Changelog: v1.7.1...v1.8.0
v1.7.1
v1.7.0
RPC Breaking Changes
-
#4084
chain/getBlock
RPC returns404
if header is missing instead of400
.chain/getBlock
RPC returns404
if block for header is missing instead of400
-
#4117
chain/getAsset
RPC returns404
if assets is missing for id instead of400
-
#4105
chain/broadcastTransaction
RPC now attempts to add a transaction to the mempool as well as broadcast it -
#4120
wallet/sendTransaction
RPC no longer fails if the node is not connected to any peers
SDK Breaking Changes
-
#4102 removes
WorkerPool.verify
andTransaction.verify
. UseWorkerPool.verifyTransactions
(Typescript) orverify_transaction / batch_verify_transactions
(Rust) instead. -
#4125 Changes
Node
constructor to take aAssetsVerifier
object instead of aVerifiedAssetsCache
-
#4112 Removes
onTransactionCreated
callback fromWallet
class. Removes reference tomemPool
fromWallet
class -
#4094 Makes
Verifier.verifyMints
,Verifier.verifyBurns
andVerifier.verifyInternalNullifiers
static functions. MakesVerifier.verifyCreatedTransaction
function static and takeconsensus
as a parameter -
#4088
PeerNetwork
no longer adds a transaction to a wallet automatically but instead wallet listens toPeerNetwork.onTransactionGossipReceived
-
#4081
node
property is removed fromRpcMemoryClient
andRpcMemoryClient
now takes aRouter
object in the constructor instead of aNode
-
#4071
Router
class is separated intoRouter
andRoutes
-
#4070 All RPC route handlers now take an optional
Node
class -
#4099 Removes the
onBroadastTransaction
property from theWallet
class -
#4097
wallet.connectBlock
andwallet.disconnectBlock
method signatures changed to accept aWalletBlockHeader
(hash, previousBlockHash, sequence, timestamp) and a list ofWalletBlockTransaction
(transaction, initialNoteIndex). TheWallet.chainProcessor
property changed from an instance ofChainProcessor
toRemoteChainProcessor
-
#4126
Wallet
constructor no longer takes aBlockchain
instance, no longer has achain
property -
#4128
wallet.post
returnsPromise<{ transaction, accepted, broadcasted }>
instead ofPromise<Transaction>
Other changes
- #4132 Fixed a bug with checking the result of transaction proof verification
What's Changed
- feat: create ironfish binary by @jowparks in #3713
- refactor(cli,ironfish): Encapsulate
sequenceToHash
db operations by @rohanjadvani in #4049 - refactor(cli,ironfish): Encapsulate hashToNextHash db interactions by @rohanjadvani in #4050
- refactor(ironfish): Encapsulate assets db interactions by @rohanjadvani in #4051
- refactor(ironfish): Encapsulate transactionHashToBlockHash db operations by @rohanjadvani in #4052
- rebroadcasts on block connect by @hughy in #4073
- Send serialized transactions on chain stream by @danield9tqh in #4076
- feat(ironfish): Add
nonce
tochain/getAsset
by @rohanjadvani in #4080 - feat(ironfish): Pass memory client into wallet by @rohanjadvani in #4082
- verifies transaction spends in chain/broadcastTransaction by @hughy in #4083
- removes mempool accept from chain/broadcastTransaction by @hughy in #4086
- feat(ironfish): Fetch note witness from node client in wallet by @rohanjadvani in #4085
- Remove direct wallet dependency wallet from PeerNetwork by @danield9tqh in #4088
- Remove the node from the memory client by @danield9tqh in #4081
- Store consensus on wallet and use it for wallet/addTransaction RPC by @danield9tqh in #4094
- remove node dependencies in get transactions rpc by @danield9tqh in #4095
- feat(ironfish): Create
mempool/acceptTransaction
by @rohanjadvani in #4087 - asset-security owner -> creator rename and db work by @mat-if in #4101
- Add to mempool in broadcast RPC by @danield9tqh in #4105
- refactor: remove Transaction.verify and workerPool.verify by @mat-if in #4102
- feat(ironfish): Check if the peer network is ready in
broadcastTransaction
by @rohanjadvani in #4106 - Remove withReference from followChainStream by @dguenther in #4107
- uses node client to broadcast transactions by @hughy in #4099
- Verify block perf test by @ygao76 in #4098
- Update license field following SPDX 2.1 license expression standard by @frisoft in #4093
- Remove unused mempool and onCreateTransaction from Wallet by @danield9tqh in #4112
- feat(Wallet Server): Stub out project + basic gRPC server by @dgca in #4110
- Add the
transferOwnershipTo
field to MintDescription by @andreacorbellini in #4100 - removes wallet transaction verification during rebroadcast by @hughy in #4108
- implements RemoteChainProcessor by @hughy in #4097
- feat(ironfish): Check if chain has block from node client by @rohanjadvani in #4084
- Remove mempool dependency in wallet/addTransaction by @danield9tqh in #4109
- refactors scanTransaction to use RemoteChainProcessor by @hughy in #4115
- Update new block timestamp by @ygao76 in #4103
- feat(ironfish): Fetch chain asset from node client by @rohanjadvani in #4117
- feat(ironfish): Fetch chain head from node client by @rohanjadvani in #4118
- removes use of wallet.chain in useMinersTxFixture by @hughy in #4123
- Make remote call for account status by @danield9tqh in #4121
- Make remote call to node to see if its synced enough to create a tranaction by @danield9tqh in #4120
- Use assetsVerifier on wallet for RPC calls by @danield9tqh in #4125
- Fix
RawTransaction.postedSize
by considering fees when computing change notes by @andreacorbellini in #4116 - feat(ironfish): Create
wallet/getAsset
by @rohanjadvani in #4119 - feat(cli): Fetch asset from wallet in
wallet:burn
by @rohanjadvani in #4122 - removes uses of chain in wallet start by @hughy in #4124
- removes chain from wallet by @hughy in #4126
- feat(cli,ironfish): Log warning if errors happen during broadcast by @rohanjadvani in #4128
- Use node client for wallet/createTransaction RPC by @danield9tqh in #4131
- adds wallet/estimateFeeRates RPC by @hughy in #4129
- refactor(cli,ironfish): Encapsulate merkle tree of notes interactions by @rohanjadvani in #4053
- Use node client for wallet/rescanAccounts by @danield9tqh in #4130
- Fix checking result of proof verification and add tests by @dguenther in #4132
New Contributors
Full Changelog: v1.6.0...v1.7.0