1.1.15 • Published 10 months ago

smartledger-sdk v1.1.15

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

SmartLedger

A comprehensive blockchain and cryptographic operations SDK for JavaScript, providing a unified interface for key management, digital signatures, encryption, secret sharing, and hashing operations.

Features

  • Key Management

    • Generate and manage BSV keys
    • Multi-purpose key derivation (identity, financial, contractual, property, document, privacy)
    • WIF import/export
    • HD wallet support
  • Digital Signatures

    • Sign with WIF or mnemonic
    • Signature verification
    • Purpose-specific signing
  • Encryption

    • AES encryption/decryption
    • JSON data support
  • Secret Sharing

    • Shamir's Secret Sharing implementation
    • Configurable shares and threshold
    • Hex encoding for storage
  • Hashing

    • SHA256, SHA512
    • Double SHA256 (Bitcoin standard)
    • HASH160 (RIPEMD160(SHA256))
    • Hash verification
  • UUID Generation

    • UUIDv4 (random)
    • UUIDv5 (namespace-based)

Installation

npm install smartledger

Usage

import SmartLedger from 'smartledger';

// Create a new instance
const ledger = new SmartLedger();

// Generate a mnemonic
const mnemonic = SmartLedger.generateMnemonic();

// Generate keys for different purposes
const keys = ledger.generateAllKeys(mnemonic);

// Encryption
const encrypted = SmartLedger.encrypt({ message: "Hello, World!" }, "my-secret-key");
const decrypted = SmartLedger.decrypt(encrypted, "my-secret-key");

// Hashing
const message = "Hello, SmartLedger!";
const hash = SmartLedger.hash256(message);
const doubleHash = SmartLedger.doubleHash256(message);
const hash160 = SmartLedger.hash160(message);

// UUID Generation
const uuid = ledger.getUUID(); // Random UUIDv4
const uuidv5 = SmartLedger.generateUUIDv5("transaction/123"); // Namespace-based UUIDv5

Secret Sharing Example

// Split a secret into shares
const shares = ledger.splitSecret("my secret", 3, 2);

// Convert shares to hex for storage
const hexShares = shares.map(share => ledger.shareToHex(share));

// Reconstruct the secret using any 2 shares
const reconstructedShares = hexShares
  .slice(0, 2)
  .map(hexShare => ledger.hexToShare(hexShare));
const secret = ledger.combineShares(reconstructedShares);

API Documentation

Key Management

  • generateMnemonic(): Generate a new mnemonic phrase
  • generateKeyPair(): Generate a new key pair
  • fromWIF(wif): Create keys from WIF
  • fromMnemonic(mnemonic, purpose): Create keys from mnemonic for specific purpose
  • generateAllKeys(mnemonic): Generate all purpose-specific keys

Digital Signatures

  • signWithWIF(data, wif): Sign data using WIF
  • signWithMnemonic(data, mnemonic, purpose): Sign data using mnemonic
  • verifySignature(data, signature, publicKey): Verify a signature

Encryption

  • encrypt(data, key): Encrypt data using AES
  • decrypt(ciphertext, key): Decrypt AES encrypted data

Secret Sharing

  • splitSecret(secret, shares, threshold): Split a secret into shares
  • combineShares(shares): Combine shares to reconstruct secret
  • shareToHex(share): Convert share to hex format
  • hexToShare(hexShare): Convert hex back to share

Hashing

  • hash256(data): SHA256 hash
  • hash512(data): SHA512 hash
  • doubleHash256(data): Double SHA256 hash
  • hash160(data): RIPEMD160(SHA256) hash
  • verifyHash(data, hash, algorithm): Verify a hash

UUID Generation

  • getUUID(): Get a random UUIDv4
  • generateUUIDv5(name, namespace?): Generate a namespace-based UUIDv5

License

MIT

1.1.15

10 months ago

1.1.14

11 months ago

1.1.13

11 months ago

1.1.12

11 months ago

1.1.11

11 months ago

1.1.10

11 months ago

1.1.9

11 months ago

1.1.8

11 months ago

1.1.7

11 months ago

1.1.6

11 months ago

1.1.5

11 months ago

1.1.4

11 months ago

1.1.3

11 months ago

1.1.2

11 months ago

1.1.0

11 months ago

1.0.9

11 months ago

1.0.0

11 months ago

1.0.8

11 months ago

1.0.7

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

11 months ago

1.0.2

11 months ago

1.0.1

11 months ago