Add wallet settings#722
Conversation
The items in the list are already known to need these changes, so there is no need to double-check.
This lets us control settings on a per-wallet basis, instead of per-chain (which is that the old userSettings property handles). Co-authored-by: Cursor <cursoragent@cursor.com>
| hasWalletSettings | ||
| ) { | ||
| input.props.log.warn( | ||
| `walletSettings applying: ${JSON.stringify(walletSettings)}` |
There was a problem hiding this comment.
🔒 Agentic Security Review
Severity: MEDIUM
Raw walletSettings are logged via JSON.stringify(walletSettings). Because these settings are plugin-defined, they may include secrets or tokens, and this log line can expose sensitive values to log sinks.
Impact: Sensitive wallet configuration data could be disclosed through logs and any downstream log aggregation.
cdee339 to
f87eace
Compare
|
|
||
| ## Unreleased | ||
|
|
||
| - added: `EdgeCurrencyWallet.walletSettings` and `EdgeCurrencyWallet.changeWalletSettings`, plus matching engine plumbing. |
There was a problem hiding this comment.
CHANGELOG omits new imported public API property
Low Severity
The PR adds a new public imported property on EdgeCurrencyWallet (in both types.ts and currency-wallet-api.ts), but the CHANGELOG entry only covers walletSettings and changeWalletSettings. Since imported is a newly exposed API on EdgeCurrencyWallet, it warrants its own added: entry in the CHANGELOG.
Additional Locations (2)
Triggered by learned rule: CHANGELOG entries must use correct semantic prefix
Reviewed by Cursor Bugbot for commit f87eace. Configure here.
5a222c6 to
f87eace
Compare
97cb1e0 to
f87eace
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit f87eace. Configure here.
| ) | ||
| await engine.changeWalletSettings(walletSettings).catch(error => { | ||
| input.props.log.warn(`walletSettings error: ${String(error)}`) | ||
| input.props.onError(error) |
There was a problem hiding this comment.
Debug wallet settings warn logs
Low Severity
The wallet-settings watcher logs every apply and error at warn with JSON.stringify of settings. That looks like temporary instrumentation, adds noisy production logs, and may write wallet configuration into crash or log pipelines.
Reviewed by Cursor Bugbot for commit f87eace. Configure here.


CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
noneDescription
noneNote
Medium Risk
Touches wallet creation timing, synced storage, and the currency engine contract; behavior is opt-in via
hasWalletSettingsbut incorrect plugin handling could affect wallet startup or settings sync.Overview
Adds per-wallet settings (
walletSettings) that live on the synced wallet repo inWalletSettings.json, separate from account-leveluserSettings.EdgeCurrencyWalletexposeswalletSettingsandchangeWalletSettings(gated byEdgeCurrencyInfo.hasWalletSettings). Creation paths accept optionalwalletSettingsinEdgeCreateCurrencyWalletOptions; the core prewrites them to disk beforeapplyKitso the wallet pixie loads the right values when the engine starts. Redux tracks settings, reloads them on sync when the file changes, and the wallet watcher calls optionalengine.changeWalletSettings.EdgeCurrencyEngineconstruction now receiveswalletSettings; memory wallets pass them through as well.Also exposes
importedonEdgeCurrencyWallet, and wallet split restore always callschangeWalletStateswhen there are wallets to un-archive (drops the previous “only if archived/deleted” short-circuit).Reviewed by Cursor Bugbot for commit f87eace. Bugbot is set up for automated code reviews on this repo. Configure here.