Releases: EpicCash/epic-wallet
4.0.0
What's Changed
Epic Wallet v4.0.0
This release brings major new functionality, breaking changes, and significant refactors across the wallet codebase.
🚀 Features
- Transaction enhancements
- Added transaction import/export (CSV and JSON)
- Added from/to fields for self-send transactions
- Added creation_height and confirmation_height to transaction logs
- Enhanced transaction logs with mempool status
- Improved transaction display formatting, sorting, and pagination
- Implemented retrieve_outputs/retrieve_txs API with sorting & pagination
- Offline mode support for wallet recovery and commands
- APIs & Commands
- Configurable
owner_api_interfaceparameter - CLI:
change_passwordcommand +remove_backupoption - Enhanced
scan,outputs, andtxscommands with new flags & metadata
- Configurable
- Network & Tor integration
- Robust Tor integration with onion address support
- Epicbox protocol improvements and stability updates
- Node synchronization handling across wallet operations
- Wallet management
- Wallet data directory auto-creation + seed file checks
- Recovery in offline mode
- Other improvements
- Added new Wallet Roadmap with progress indicators
- Added error feedback for unsynced node status
🛠 Fixes
- Wallet recovery bugs (default dir, init -r, node checks)
- Mempool transaction status updates and
TxSentCreatedhandling - Improved error handling in
HTTPNodeClientand API auth feedback - Fixed wallet output scan to always check all unspent outputs
- Increased HTTP client timeout (20s → 300s)
- Fixed SQLite dependency issues (
v0.37) - Fixed handling of
mmr_indexvalues in logs & RPCs - Fixed tests, foundation path, and RPC response handling
- Fixed crashes in listener and improved compatibility with Epicbox
- Numerous dependency updates for compatibility
⚠️ Breaking Changes
- CLI flags
scan -h→scan -s(start_height)init -h/--here→init -w/--cwd
- APIs
retrieve_outputsandretrieve_txsnow require pagination/sorting params
- Config
epic-wallet.toml:[server.p2p_config.capabilities]section deprecated
- RNG usage updated:
StepRngreplaced with mock-compatible RNG forrand 0.9 - Error handling switched from
failure→thiserror
🔧 Refactors & Chore
- Standardized formatting (rustfmt, toolchain)
- Improved error logging and JSON test responses
- Refactored transaction retrieval (
RetrieveTxsResult) - Removed unused code and fields (Base58 trait cleanup, UUID usage refactor)
- Dependency upgrades:
rand 0.9,ed25519-dalek 2.1.1,log 0.4.27,sysinfo,sha2,digest, etc. - CI & GitHub workflow improvements
- Updated
.gitignorefor Rust and VS Code
📚 Documentation
- Updated Roadmap
- Improved build instructions
- Added CLI handbook sections
- Updated changelog from earlier versions
Important upgrade nodes
To upgrade your Epic wallet version to 4.0, you must update following API based calls.
The params required 3 additional values for limit, offset and sorting.
The returned data structure has also changed see below.
It is recommendet to use a limit value for large datasets to prevent response timeouts.
"method": "retrieve_txs":
before: "params": [true, null, null],
after: "params": [true, null, null, null, null, null],
new structure of json response:
{
"id": "1",
"jsonrpc": "2.0",
"result": {
"Ok": {
"txs": [
{
...
}
// ...more transactions
],
"pager": {
"limit": 0,
"offset": 0,
"records_read": 2,
"sort_order": "asc",
"total_records": 2
},
}
}
}
"method": "retrieve_outputs":
before: "params": [true, true, null],
after: "params": [true, true, null, null, null, null],
new structure of json response:
{
"id": "2",
"jsonrpc": "2.0",
"result": {
"Ok": {
"outputs": [
{
"output": {
....
},
"spent": false
}
// ...more outputs
],
"pager": {
"limit": 0,
"offset": 0,
"records_read": 2,
"sort_order": "asc",
"total_records": 2
},
}
}
}
"method": "receive_tx":
before: "params": [slate, account, message],
after: "params": [slate, account, message, null],
New wallet transaction states:
TxSentCreated:
Transaction created, but not yet sent to the node. The wallet has built the transaction, but it has not been broadcast to the network.
TxSentCancelled:
Sent transaction that was rolled back by user. The user cancelled the transaction before it was confirmed, so its inputs and outputs are reverted.
TxSentMempool (new added):
Transaction sent to mempool, waiting to be mined. The transaction has been broadcast and is in the mempool, but not yet included in a block.
TxSent:
Inputs locked + change outputs when a transaction is created. This is the standard state for a transaction that has been created and broadcast, with wallet inputs locked and change outputs generated.
TxReceived:
Outputs created when a transaction is received. This is the normal state for incoming transactions that have been processed by the wallet.
TxReceivedMempool (new added):
Received transaction found in the mempool, waiting to be mined. This means the wallet has detected an incoming transaction in the mempool, but it is not yet confirmed in a block.
TxReceivedCancelled:
Received transaction that was rolled back by the user. This state indicates that an incoming transaction was cancelled or reverted, and its outputs are no longer considered valid by the wallet.
New wallet behaviour.
The wallet now checks before every call if the node the wallet is connected to is synced.
To disable this check you can use --offline_mode, for example "epic-wallet --offline_mode send ..."
3.6.0
What's Changed
- Change expect to "Ok Err" by @johanneshahn in #102
- Increase minimum node compat to v3.5.0 by @who-biz in #103
- Change 'unwrap' usage to '?' operator in controller/src/command.rs by @who-biz in #104
- Remove subscribe interval from listener by @johanneshahn in #106
- Use explicitly versioned ring dependency (0.16.20) by @who-biz in #107
- Switch epic_util to master branch, update lockfile by @who-biz in #108
- Bump version to 3.5.2 for maintenance release by @who-biz in #110
- Add a From/To address field in wallet db by @johanneshahn in #109
- Change epicbox default to epicbox.epiccash.com by @who-biz in #111
- Version bump for 3.6.0 release by @who-biz in #112
Full Changelog: v3.5.0...v3.6.0
For users on Ubuntu 22.04 Jammy and later, you will need to install libssl1.1.1f from our website. Steps below:
dpkg -l | grep libssl
If it lists 1.1.1g you will need to remove those with:
sudo dpkg -r libssl1.1:amd64
and maybe
sudo dpkg -r libssl-dev:amd64 (first if it's installed too)
then install 1.1.1f
https://epiccash.com/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
Please check the following sha256sums against your downloaded files:
epic-wallet-3.6.0-linux-amd64.tar.gz
878769a45525116b918bcc5e3e59439fa1a620a7dd821aa498013ca2b412ed05
epic-wallet_3.6.0_amd64.deb
3450cbf924b8e678aa336b89aa4e86239a009196da1af8ade5e62b39d64b63ca
MacOS-Intel_v3.6.0.zip
bf82e422cf04db0f857a57caee8a0bac927dbda34fa1edd0811e4491e1a9eefb
Windows_v3.6.0.zip
4f371321652e7c60420096db4d10959e54e9d723f3bb85685da30d62d98996f9
3.5.1
What's Changed
- Fix epicbox listener crashes. Change expect to "Ok Err" by @johanneshahn in #102
- Increase minimum node compat to v3.5.0 by @who-biz in #103
Full Changelog: v3.5.0...v3.5.1
3.5.0
What's Changed
- Update debian packaging for v3.4.0 by @who-biz in #84
- updates the 'prettytable' dep to prevent crash on info command with rust 1.67.1 by @code-chronos in #83
- Fix OwnerAPI v2 failure to retrieve epicbox config by @who-biz in #89
- Gracefully handle invalid base58 encodings when calling 'send' cmd by @who-biz in #91
- Fix domain/port discernment for transfers routed through epicbox by @who-biz in #90
- Add GitHub Actions workflow for master branch by @who-biz in #92
- Revert ebox port changes, fixes encrypted data parsing error by @who-biz in #93
- [FIX] Improve epicbox address api calls by @blacktyger in #94
- Update dependencies. by @johanneshahn in #95
- Fix where epicbox listener stop receiving txs. by @johanneshahn in #96
- fix bug where get_kernel send the wrong format to node api by @johanneshahn in #97
- Don't panic on re-subscribe error, remove 'expect' usage by @who-biz in #98
- push to release 3.5.0 by @johanneshahn in #99
New Contributors
- @code-chronos made their first contribution in #83
Full Changelog: v3.4.0...v3.5.0
Fix where epicbox listener stop receiving txs.
This fix solves the problem, where the epicbox listener does not refresh his subscription and blocks connection with the epicbox server.
Full Changelog: v3.4.1...v3.4.2
v3.4.1 - epicbox-Hotfix
Highlighted Changes
What's Changed
- Update debian packaging for v3.4.0 by @who-biz in #84
- updates the 'prettytable' dep to prevent crash on info command with rust 1.67.1 by @code-chronos in #83
- Fix OwnerAPI v2 failure to retrieve epicbox config by @who-biz in #89
- Gracefully handle invalid base58 encodings when calling 'send' cmd by @who-biz in #91
- Fix domain/port discernment for transfers routed through epicbox by @who-biz in #90
- Add GitHub Actions workflow for master branch by @who-biz in #92
- Revert ebox port changes, fixes encrypted data parsing error by @who-biz in #93
- [FIX] Improve epicbox address api calls by @blacktyger in #94
Upgrade Notice:
- Starting with Ubuntu 22.x it uses openssl v3 and the wallet still requires openssl v1.1 so you need it separately.:
Users must install openssl 1.1
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
System Requirements:
- Windows - 10.x, 11.x
- MacOs - 12.4 (Intel)
- Linux/Ubuntu - 22.x
New Contributors
- @code-chronos made their first contribution in #83
Full Changelog: v3.4.0...v3.4.1
v3.4.0
Release v3.4.0
Highlighted Changes
- New Transaction method "epixbox" with public epic address
- Update ring to 0.16.x
- Fix bug, where owner_api threads are not closed
What's Changed
- Epicbox listener interval time fix by @blacktyger in #56
- remove default interval value by @blacktyger in #64
- Change default epicbox address to epicbox.epic.tech by @who-biz in #67
- Only subscribe on connect/reconnect, remove refresh interval by @who-biz in #69
- [BUG] CLI --api_server_address argument is not working as expected #61 by @blacktyger in #63
- Add comments in settings file, clean up code, add console logs by @blacktyger in #66
- Epicbox 0.0.2 by @fastepic in #71
- Owner API - python example code by @blacktyger in #75
- Epicbox 0.0.2 fix ring fix ownerapi threads by @johanneshahn in #82
Note Regarding Debian Package
- Please note, debian package was created after the initial releases were posted.
- Therefore the
epic-walletbinary packaged intoepic-wallet_3.4.0_amd64.debinclude commits up to: c5d01a2 - This includes no changes to source files, strictly
debian/rules,debian/changelog, anddebian/controlfiles used in packaging process.
Upgrade Notice:
- Please change your wallet config (epic-wallet.toml) to support epicbox address transaction protocol
add:
#########################################
### EPICBOX CONFIGURATION ###
#########################################
[epicbox]
epicbox_domain = "epicbox.epic.tech"
epicbox_port = 443
epicbox_protocol_unsecure = false
Cli usage Notice:
Send Tx: ./epic-wallet send -m epicbox -d esXXXXX...@epicbox.epic.tech 5
Receive Tx: ./epic-wallet listen -m "epicbox"
Listener must be started before send tx. The epicbox listener can run parallel to the http listener.
System Requirements:
- Windows - 10.x, 11.x
- MacOs - 12.4 (Intel)
- Linux/Ubuntu - 22.x
New Contributors
- @blacktyger made their first contribution in #56
- @fastepic made their first contribution in #71
Full Changelog: v3.3.2...v3.4.0
Release v3.3.2
Highlighted Changes
- Fix on tests
- Changed requests port
- Fix for issue #26 (Wallet Tx Details lost Output/s)
- Fix to issue #20 (Wallet CLI shows wrong balance after recovery)
- Emoji transaction
- Fix for Rust warnings
- New readme
- LMDB to SQLite interface
More information about the highlighted changes can be found on our Wiki: Epic Wallet - v3.3.2
What's Changed
- Merging README.txt from Develop to Master by @Grandiose in #25
- Fix #15: unwrap error on empty password for keybase listener by @johanneshahn in #28
- Feat/outputs history by @MarcioCerqueira in #30
- Emoji by @raulssilva in #32
- Fix/issue 20 by @JualnSilva in #31
- Edit pre-commit and add PR template by @Jualns in #36
- Update main readme for the project by @jhelison in #40
- LMDB to SQLite interface by @paultergust in #34
- Add automation to build the release binaries and tar files by @jhelison in #37
- Fixing simple warnings by @Jualns in #41
- Add better error handling for not found by @jhelison in #43
- Release v3.3.2 by @jhelison in #45
New Contributors
- @MarcioCerqueira made their first contribution in #30
- @raulssilva made their first contribution in #32
- @JualnSilva made their first contribution in #31
- @jhelison made their first contribution in #40
- @paultergust made their first contribution in #34
Full Changelog: v3.0.0...v3.3.2
Release v3.0.0
Highlighted Changes
- Fix proof version and package url
- Reusing the BlockFees structure from epic core
- Update epic_util crate
What's Changed
- Fix proof version and package url by @aroncds in #1
- Fix cargo tests by @johanneshahn in #5
- Reusing the BlockFees structure from epic core by @josiasal in #11
- Update epic_util crate by @EricShimizuKarbstein in #12
New Contributors
- @aroncds made their first contribution in #1
- @josiasal made their first contribution in #11
- @EricShimizuKarbstein made their first contribution in #12
Full Changelog: https://github.com/EpicCash/epic-wallet/commits/v3.0.0