Skip to content

Add a Gitter chat badge to README.md#19

Open
gitter-badger wants to merge 1 commit into
DigiByte-Core:masterfrom
gitter-badger:gitter-badge
Open

Add a Gitter chat badge to README.md#19
gitter-badger wants to merge 1 commit into
DigiByte-Core:masterfrom
gitter-badger:gitter-badge

Conversation

@gitter-badger

Copy link
Copy Markdown

DigiByte-Core/digibytewallet-android now has a Chat Room on Gitter

@gto90 has just created a chat room. You can visit it here: https://gitter.im/DigiByte-Core/Android-Wallet.

This pull-request adds this badge to your README.md:

Gitter

If my aim is a little off, please let me know.

Happy chatting.

PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

JohnnyLawDGB added a commit to JohnnyLawDGB/digibytewallet-android that referenced this pull request Apr 22, 2026
…ders held assets

Long-standing data-correctness bug: AssetManager.processAssetUtxo() had
zero callers anywhere. Both tx-import paths (SPV onAssetDetected and
reconcile registerRawTransaction) populated the transactions table but
never the utxos table's is_asset=1 rows. The Assets tab's
SELECT...WHERE is_asset=1 GROUP BY asset_id query therefore always
returned empty, even for wallets that genuinely held assets on-chain.

Reproduced live 2026-04-22: user minted a real DigiAsset on
diginexum.trade and sent it to an emulator wallet address. Asset
confirmed on-chain, digiasset_core's listunspent showed it, but our
Assets tab remained empty.

Fix wires listunspent as the authoritative on-chain source:

- Backend: new POST /api/assets/unspent endpoint on digiscope-backend
  that proxies digiasset_core.listunspent with detailedAssetData=true,
  returning per-UTXO (address, txid, vout, satoshis, assets[assetId,
  count, decimals, issuer, cid]). Live on digiscope.me now.

- AssetNetworkClient: new getAssetUtxos(addresses) method + typed
  AssetUtxoResponse model. DigiScopeAssetClient implements via the new
  endpoint; DigiAssetsNetClient returns null so MultiEndpointAssetClient
  rotates to the next provider. MultiEndpointAssetClient passes through
  with the same circuit-breaker semantics as every other call.

- AssetManager.refreshAssetUtxosFromNetwork(): dumps every derived
  wallet address, batches to 500-per-request, calls getAssetUtxos, and
  upserts UtxoEntity(is_asset=true) + AssetMetadataEntity for every
  returned asset. scriptPubKey is left empty for now (fine for display;
  will be resolved by the send flow from wallet derivation when needed).
  Fire-and-forget IPFS metadata fetch for assets with a CID.

- ChainReconciliationService runs the asset refresh FIRST, before the
  ElectrumX-backed reconcile. This means the Assets tab populates even
  when the main reconcile is slow or unreachable — asset UTXOs don't
  depend on ElectrumX being up.

- Hilt plumbing: AppModule provideAssetManager gets assetNetworkClient;
  ReconcileScreen pulls AssetManager via an EntryPoint on
  SingletonComponent; MainActivity injects AssetManager and passes it
  into PostUpgradeReconciler.runIfNeeded.

Verified live: emulator wallet holding 10 units of
La4WAqZfAwtxbZxBSuNoxptactZcbXfZdq6kMo (assetIndex 5263) now shows "1
asset found" in the Assets tab after a single Scan tap.

Still outstanding (task DigiByte-Core#19 remains open): SPV path wiring — when
onAssetDetected fires from a normal bloom-scan receive we should also
call refreshAssetUtxosFromNetwork so the user doesn't need to tap Scan
for every new receive. Next session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant