Second half of the Theseus-lag investigation. 0.27.1 removed the 7.4 MB store; this removes the two things that produced it and the latency that came with it. Measured on this profile's own cache: 6,981 transactions, 7.38 MB, and one consolidation with 400 inputs (median 2). - loadHistory() awaited getTx() per displayed transaction and then again per INPUT, strictly one at a time. The 400-input row alone cost 400 serial round trips. Both waves are now prefetched with bounded parallelism (getTxMany, 12 at a time). Against a simulated 10 ms link the same 473 fetches take 771 ms instead of ~4,730 ms; on a real 30-50 ms link the serial version was 15-25 seconds per refresh, per wallet. - Parent transactions were persisted forever. They exist only to compute a delta for the 25 rows on screen, and keeping every one ever seen is what grew the file. Only the displayed window is written now — 25 entries, 16.4 KB in the harness — while parents stay in a process-lifetime map bounded at 20,000, seeded from the window so a restart does not refetch what is already visible. A second refresh issues zero fetches. TX_CACHE_VERSION 4 discards v3 caches. The v3 cap of 400 was also exactly the wrong number for this data: a 400-input transaction needs 401 entries, so it would have evicted and refetched on every single refresh.
32 lines
1.2 KiB
JSON
32 lines
1.2 KiB
JSON
{
|
|
"id": "aegis",
|
|
"name": "Aegis Wallet",
|
|
"version": "0.28.0",
|
|
"category": "plugin",
|
|
"description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash and window.wizardconnect on any site; window.tronWeb / window.tronLink / window.ethereum / window.solana too. Every call needs your approval.",
|
|
"author": "Silent Mode",
|
|
"icon": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cpolygon points='16,2 28,9 28,23 16,30 4,23 4,9' fill='%230a0a0d' stroke='%23D6FF3D' stroke-width='1.6' stroke-linejoin='round'/%3E%3Ccircle cx='16' cy='16' r='4.5' fill='none' stroke='%23D6FF3D' stroke-width='1.4'/%3E%3Ccircle cx='16' cy='16' r='1.6' fill='%23D6FF3D'/%3E%3C/svg%3E",
|
|
"main": "index.js",
|
|
"updateURL": "https://navigate.st/bns/theseus.x/extensions/aegis/updates.json",
|
|
"capabilities": [
|
|
"sidebar-panel",
|
|
"vault-derive",
|
|
"page-inject",
|
|
"approval-modal",
|
|
"scan-page",
|
|
"open-tab"
|
|
],
|
|
"absorbs": [
|
|
"bchwallet",
|
|
"siawallet"
|
|
],
|
|
"page-inject": {
|
|
"preload": "wallet-inject.js",
|
|
"origins": [
|
|
"https://*/*",
|
|
"http://localhost/*",
|
|
"http://127.0.0.1/*",
|
|
"http://[::1]/*"
|
|
]
|
|
}
|
|
}
|