feat(lite): lite wallet foundation (inherited working-tree state)

Preserve the previously-uncommitted lite wallet implementation and related dev WIP
under version control:
- src/wallet/ lite services: client bridge, bridge runtime, connection, lifecycle,
  sync, gateway, result parsers, state mapper, artifact contract/resolver, refresh
  services, UI adapters, wallet_backend/capabilities. (Includes two small M1 fixes:
  lifecycle walletReady now parses the response; default chain name -> "main".)
- src/chat/ chat protocol; tests/fixtures/ (lite + hushchat); tools/hushchat_fixture_check.cpp;
  scripts/build-lite-backend-artifact.sh.
- Pre-existing modified app_network/security/wizard, network_refresh_service, sidebar,
  mining_tab, bootstrap dialog, and version headers captured as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-04 21:15:28 -05:00
parent a78a13edf3
commit 863d015628
69 changed files with 39458 additions and 85 deletions

View File

@@ -0,0 +1,60 @@
{
"schema": "dragonx.lite.release-package-manifest.v1",
"source": "generated-package-manifest-fixture",
"generated": true,
"packages": [
{
"name": "ObsidianDragon-full-linux-fixture",
"build_kind": "full-node",
"format": "linux-zip",
"pool_mining_supported": true,
"solo_mining_available": true,
"full_node_lifecycle_actions_available": true,
"expect": {
"dragonxd": true,
"dragonx_cli": true,
"dragonx_tx": true,
"sapling_params": true,
"asmap": true,
"xmrig_when_available": true
},
"assets": [
{ "kind": "app-binary", "path": "ObsidianDragon", "present": true, "executable": true },
{ "kind": "dragonxd", "path": "usr/bin/dragonxd", "present": true, "executable": true },
{ "kind": "dragonx-cli", "path": "usr/bin/dragonx-cli", "present": true, "executable": true },
{ "kind": "dragonx-tx", "path": "usr/bin/dragonx-tx", "present": true, "executable": true },
{ "kind": "sapling-spend.params", "path": "usr/bin/sapling-spend.params", "present": true, "executable": false },
{ "kind": "sapling-output.params", "path": "usr/bin/sapling-output.params", "present": true, "executable": false },
{ "kind": "asmap.dat", "path": "usr/bin/asmap.dat", "present": true, "executable": false },
{ "kind": "xmrig", "path": "usr/bin/xmrig", "present": true, "executable": true },
{ "kind": "resources", "path": "usr/share/ObsidianDragon/res", "present": true, "executable": false }
]
},
{
"name": "ObsidianDragonLite-linux-fixture",
"build_kind": "lite",
"format": "linux-zip",
"pool_mining_supported": true,
"solo_mining_available": false,
"full_node_lifecycle_actions_available": false,
"assets": [
{ "kind": "app-binary", "path": "ObsidianDragonLite", "present": true, "executable": true },
{ "kind": "xmrig", "path": "xmrig", "present": true, "executable": true },
{ "kind": "resources", "path": "res", "present": true, "executable": false }
]
},
{
"name": "ObsidianDragonLite-windows-fixture",
"build_kind": "lite",
"format": "windows-zip",
"pool_mining_supported": true,
"solo_mining_available": false,
"full_node_lifecycle_actions_available": false,
"assets": [
{ "kind": "app-binary", "path": "ObsidianDragonLite.exe", "present": true, "executable": true },
{ "kind": "other", "path": "tools/xmrig.exe", "present": true, "executable": true },
{ "kind": "resources", "path": "res", "present": true, "executable": false }
]
}
]
}

107
tests/fixtures/lite/result_parsers.json vendored Normal file
View File

@@ -0,0 +1,107 @@
{
"info": {
"chain_name": "dragonx",
"version": "0.1.0",
"vendor": "SilentDragonXLite",
"latest_block_height": 250001,
"difficulty": 42,
"longestchain": 250003,
"notarized": 249990
},
"height_object": {
"height": 250004
},
"height_number": 250005,
"balance": {
"tbalance": 125000000,
"zbalance": 230000000,
"unconfirmed": 5000000,
"verified_zbalance": 180000000,
"spendable_zbalance": 170000000
},
"addresses": {
"z_addresses": [
"zs1parserfixture0000000000000000000000000000000000000000000000000000",
"zs1parserfixture1111111111111111111111111111111111111111111111111111"
],
"t_addresses": [
"RParserFixtureTransparentAddress0000000000001"
]
},
"notes": {
"unspent_notes": [
{
"address": "zs1parserfixture0000000000000000000000000000000000000000000000000000",
"created_in_block": 249900,
"created_in_txid": "note-txid-1",
"value": 100000000,
"spent": false,
"unconfirmed_spent": false
}
],
"utxos": [
{
"address": "RParserFixtureTransparentAddress0000000000001",
"created_in_block": 249901,
"created_in_txid": "utxo-txid-1",
"value": 25000000,
"spent": false,
"unconfirmed_spent": true
}
],
"pending_notes": [
{
"address": "zs1parserfixture1111111111111111111111111111111111111111111111111111",
"created_in_block": 0,
"created_in_txid": "pending-note-txid-1",
"value": 30000000,
"spent": false,
"unconfirmed_spent": false
}
],
"pending_utxos": [
{
"address": "RParserFixtureTransparentAddress0000000000001",
"created_in_block": 0,
"created_in_txid": "pending-utxo-txid-1",
"value": 12000000,
"spent": false,
"unconfirmed_spent": false
}
]
},
"list": [
{
"txid": "sent-txid-1",
"datetime": 1710000000,
"block_height": 249950,
"unconfirmed": false,
"outgoing_metadata": [
{
"address": "zs1recipientfixture0000000000000000000000000000000000000000000000",
"value": 75000000,
"memo": "outgoing memo"
},
{
"address": "RRecipientTransparentFixture000000000000001",
"value": 5000000,
"memo": "transparent memo"
}
]
},
{
"txid": "receive-txid-1",
"datetime": 1710001000,
"block_height": 0,
"unconfirmed": true,
"address": "zs1parserfixture1111111111111111111111111111111111111111111111111111",
"amount": 42000000,
"memo": "incoming memo",
"position": 2
}
],
"syncstatus": {
"synced_blocks": 125002,
"total_blocks": 250004
}
}