theseus/bundled-addons/siawallet/addon.json

15 lines
512 B
JSON
Raw Normal View History

feat(theseus/siawallet): bundled Siacoin wallet add-on (walletd-backed, v2) Second bundled wallet, same shape as bchwallet: - keys: api.vault.derive("siawallet/mainnet/0") as the seed for walletd's KeyFromSeed(seed, index) (blake2b(seed||index) -> ed25519); addresses are standard unlock hashes, so a future walletd seed import yields the same addresses. Seed and keys live in memory only. - lib/sia.js: Sia binary encoder, StandardUnlockHash, address checksum, v2 InputSigHash ("sia/sig/input|" + replay byte 2 + transaction semantics), transaction weight, walletd JSON. Address hashing and the sighash were verified against real mainnet v2 transactions (signatures from block 591853 verify under this implementation). - lib/walletd.js: address-scoped walletd HTTP client (tip, fee, balance, outputs with proofs, events, broadcast). The node URL is a user setting with no default; hosted providers embed the access key in the path, so only the origin is ever displayed or logged. - lib/wallet.js: gap-limit discovery via events, mature/immature balance, history deltas from v1/v2/foundation/miner events, largest-first selection with change to the current address, fee = walletd rate x weight x 1-3 multiplier, broadcast with the outputs' basis. A signed tx built here was accepted structurally by a live walletd (rejected only for the stub key not owning the parent). - panel: Receive (QR), Send, History, Settings (node URL, derivation info, seed reveal behind approval, connected sites); gates for locked vault, no vault, no node URL. - window.siacoin dapp bridge: getAddress (rememberable), signAndSend with 100/1,000/10,000 SC allowances, signMessage (ed25519 over blake2b-256 of the message) — same approval and permission rules as the BCH wallet.
2026-09-06 18:49:13 +02:00
{
"id": "siawallet",
"name": "Siacoin Wallet",
"version": "0.1.0",
"description": "Send and receive Siacoin with keys derived from your Theseus vault. Talks to any walletd node you point it at; dapps on .x sites can request payments through window.siacoin.",
"author": "Silent Mode",
"icon": "Ⓢ",
"main": "index.js",
"capabilities": ["sidebar-panel", "vault-derive", "page-inject", "approval-modal"],
"page-inject": {
"preload": "wallet-inject.js",
"origins": ["https://*.x/*"]
}
}