theseus/bundled-addons/bchwallet/lib
Local Dev 3d3a735eb1 feat(theseus/aegis): EIP-712 signTypedData_v4 + Solana multi-signer send
Two follow-ups to the dapp bridges. Both change wire shape only — no new
UI, existing wallets keep signing byte-identically for the flows they
already covered.

- lib/eip712.js: full EIP-712 typed-data encoder — encodeType with
  alphabetically-sorted transitive sub-types, typeHash, encodeValue for
  string / address / bool / uint*/int* (any width) / bytes / bytesN /
  nested structs / dynamic and fixed arrays, hashStruct recursion,
  digest = keccak256(0x19 || 0x01 || domainSeparator || hashStruct).
  Verified against the spec §"Ether Mail" test vector — hashStruct on
  both the domain and the message plus the final digest all match the
  canonical values byte-for-byte (see scratchpad/verify-eip712.mjs).
- chain-eth.js: exposes signTypedDataDigest(digest32) that signs the
  precomputed digest with r||s||v (v = 27+recid), the same envelope
  personal_sign uses. Aegis computes the digest server-side (in the
  addon) so a bug in the encoder can't be tricked by a malicious dapp
  into signing over data the user never saw.
- index.js: eth.signTypedData handler shows domain (name · version ·
  chainId), primary type, and a truncated JSON preview of the message
  in the approval overlay — every classic phishing signal (mismatched
  domain, unexpected primary type) is in front of the user before they
  hit Sign. Accepts either an already-parsed typedData object or the
  JSON-string form older MetaMask specs used.
- wallet-inject.js router: eth_signTypedData_v4 (and _v3 for the same
  payload shape) route to eth.signTypedData. v1's flat "type[]" form
  is unwired — dapps that still use v1 should upgrade.
- Solana signAndSend: bridge now passes the FULL wire (from
  tx.serialize({requireAllSignatures:false, verifySignatures:false}))
  instead of just the message. The addon parses compact-u16 signature
  count, finds this wallet's pubkey in the message's account-key list,
  signs the message, and patches ONLY its own slot in the signature
  array — any partial signatures the dapp had already filled with
  tx.partialSign() (session keys, escrow co-signers, permissioned
  authorities) are preserved. Multi-signer flows work now; single-signer
  is the degenerate case of sigCount=1.
- Approval overlay for sol.signAndSend now shows required-signer count
  and the wallet's slot index so multi-signer requests are visibly
  distinct from a plain single-signer send.
2026-09-07 22:19:51 +02:00
..
dgb feat(theseus/aegis): DGB adapter on @dgb-wallet/{core,psbt} vendored packages 2026-09-07 02:19:44 +02:00
sia feat(theseus/aegis): fold Sia into the addon; add DGB (BIP84 native SegWit) 2026-09-07 01:56:25 +02:00
base58check.js feat(theseus/aegis): multi-wallet + Tron mainnet + Tron Nile in the bundled addon 2026-09-06 22:00:27 +02:00
cashaddr.js feat(theseus/bchwallet): receive + history — vault-derived keys, cashaddr, QR, electrum 2026-09-06 02:46:41 +02:00
chain-bch.js feat(theseus/aegis): SVG coin logos, two-step coin/network picker, BCH Chipnet 2026-09-07 01:07:31 +02:00
chain-btc.js feat(theseus/aegis): EIP-1193 + Solana wallet-adapter bridges; BTC signet 2026-09-07 22:08:56 +02:00
chain-dgb.js feat(theseus/aegis): DGB adapter on @dgb-wallet/{core,psbt} vendored packages 2026-09-07 02:19:44 +02:00
chain-eth.js feat(theseus/aegis): EIP-712 signTypedData_v4 + Solana multi-signer send 2026-09-07 22:19:51 +02:00
chain-sia.js feat(theseus/aegis): fold Sia into the addon; add DGB (BIP84 native SegWit) 2026-09-07 01:56:25 +02:00
chain-sol.js feat(theseus/aegis): Ethereum + Solana adapters, DGB address-family picker, Aegis-branded shield 2026-09-07 20:31:27 +02:00
chain-tron.js feat(theseus/aegis): multi-wallet + Tron mainnet + Tron Nile in the bundled addon 2026-09-06 22:00:27 +02:00
eip712.js feat(theseus/aegis): EIP-712 signTypedData_v4 + Solana multi-signer send 2026-09-07 22:19:51 +02:00
electrum.js feat(theseus/bchwallet): receive + history — vault-derived keys, cashaddr, QR, electrum 2026-09-06 02:46:41 +02:00
keys.js feat(theseus/bchwallet): receive + history — vault-derived keys, cashaddr, QR, electrum 2026-09-06 02:46:41 +02:00
tx.js feat(theseus/bchwallet): receive + history — vault-derived keys, cashaddr, QR, electrum 2026-09-06 02:46:41 +02:00
wallet.js feat(theseus/bchwallet): receive + history — vault-derived keys, cashaddr, QR, electrum 2026-09-06 02:46:41 +02:00