Matt Hess
ea09516981
● Add proper error handling - eliminate silent failures
...
- Add ParseError class with context (offset, field, expected/actual)
- transaction.js: parseRctSigPrunable throws instead of returning null
- address.js: createAddress, toIntegratedAddress, toStandardAddress throw on invalid input
- base58.js: decode functions throw descriptive errors
- scanning.js: validate inputs and throw on failures
- carrot-scanning.js: validate required fields
- signature.js: remove debug console.log and testEd25519
- Update tests to expect throws for error cases
2026-01-24 20:56:24 +00:00
Matt Hess
aa716113f5
Add STAKE transaction creation and fix CLSAG verification
...
STAKE transactions:
- Add buildStakeTransaction() for creating stake transactions
- Add createStakeTransaction() wallet API for staking SAL/SAL1
- Extend serializeTxPrefix() with Salvium-specific fields (txType,
amount_burnt, asset types, return address, protocol_tx_data)
- Support STAKE_LOCK_PERIOD from network config (21600 mainnet, 20 testnet)
CLSAG fixes:
- Fix challenge hash to include full ring data matching C++ implementation
- Update both signing and verification to use consistent hash format
2026-01-22 03:10:40 +00:00
Matt Hess
1066ca2110
Add full wallet implementation with storage, sync, and transaction support
...
New Features:
- Wallet class with multi-account and subaddress support
- PersistentWallet with blockchain sync and storage (Memory/IndexedDB)
- Connection manager for daemon/wallet RPC failover
- Query system for filtering outputs and transactions
- Offline transaction signing (cold wallet support)
- Multisig wallet support (N-of-M threshold signing)
Daemon RPC:
- Salvium-specific: getSupplyInfo(), getYieldInfo()
- Mining control: startMining(), stopMining(), miningStatus()
- Bandwidth/peer management, admin controls
Transaction:
- Full transaction building with UTXO selection
- Transaction parsing and summarization
- Fee estimation with priority levels
- Decoy selection with gamma distribution
Tests:
- Wallet class tests (accounts, subaddresses, recovery)
- Transaction builder and parser tests
- UTXO selection tests
2026-01-18 21:39:05 +00:00
Matt Hess
7730b6993f
● Add AssemblyScript WASM VM for RandomX full mode
...
- Create assembly/vm.ts with full RandomX VM implementation
- 256 instructions, 2048 iterations per hash
- Native u64/f64 operations in WebAssembly
- Full mode dataset lookups (2GB pre-computed)
- Update miner to use WASM VM for full mode
- mining-worker-asm.js uses pre-compiled WASM
- ~32 H/s per thread (4x faster than light mode)
- 8 threads achieves ~260 H/s
- Clean up redundant code
- Remove mining-worker-full.js (old JIT approach)
- Consolidate 'asm' mode into 'full' mode
2026-01-18 01:16:10 +00:00
Matt Hess
714721874e
Add RandomX proof-of-work implementation with WASM acceleration
...
- Full RandomX implementation (light mode + full mode)
- WASM-accelerated Argon2d cache init (37x faster than pure JS)
- WASM-accelerated SuperscalarHash with SIMD support
- Parallel dataset generation using worker threads (8 workers)
- Light mode: ~4s init, Full mode: ~8min init
- Mining utilities (difficulty calculation, block construction)
- Progress callbacks for long-running operations
Performance targets 2023+ platforms (WASM SIMD: Chrome 91+,
Firefox 89+, Safari 16.4+, Node 16.4+)
2026-01-15 19:19:27 +00:00
Matt Hess
2c128eb1c0
Add Bulletproofs+ range proof verification (pure JavaScript)
...
- Implement BP+ verification using @noble/curves for Ed25519 ops
- MSM 256 points in ~420ms - mobile-friendly, no WASM needed
- Add verifyBulletproofPlus, verifyBulletproofPlusBatch, verifyRangeProof
- Add generator initialization with caching (Gi, Hi points)
- 24 new tests including performance benchmarks
- Update exports in index.js and package.json
- Bump version to 0.3.0
2026-01-15 02:09:51 +00:00
Matt Hess
3658a0c33f
New Features:
...
- generateSeed() - Cryptographically secure random seed generation
- deriveKeys() - CryptoNote key derivation (spend/view secret & public keys)
- deriveCarrotKeys() - CARROT key derivation (all 6 CARROT keys)
- Blake2b tests with RFC 7693 test vectors
- CryptoNote key derivation tests
- CARROT key derivation tests
- Updated exports in index.js
2026-01-14 23:59:27 +00:00
Matt Hess
5685d44ac0
bulk updates, sub addresses, integrated address, language support, and mnemonic
2026-01-05 22:31:03 +00:00
Matt Hess
df3855c31d
initial commit of salvium-js
2026-01-05 03:13:07 +00:00