@secux/app-ltc

SecuX Hardware Wallet LTC API

Usage no npm install needed!

<script type="module">
  import secuxAppLtc from 'https://cdn.skypack.dev/@secux/app-ltc';
</script>

README

@secux/app-ltc

SecuX Hardware Wallet LTC API

Usage

import { SecuxLTC } from "@secux/app-ltc";

First, create instance of ITransport.


Examples

  1. Get address by purpose and script type.

    • native segwit address (default script: P2WPKH)
      const path = "m/84'/2'/0'/0/0";
      const address = await device.getAddress(path);
      
      /*
      
      // transfer data to hardware wallet by custom transport layer.
      const data = SecuxLTC.prepareAddress(path);
      const rsp = await GetDevice().Exchange(data);
      const address = SecuxLTC.resolveAddress(rsp, path);
      
      */
      
    • segwit address (default script: P2SH_P2WPKH)
      const address = await device.getAddress("m/49'/2'/0'/0/0");
      
    • legacy address (default script: P2PKH)
      const address = await device.getAddress("m/44'/2'/0'/0/0");
      
  2. Sign transaction (native segwit has not supported yet).

const inputs = [
    {
        hash: "7e874e94ae254287ec713b116b7af73067a5e15eb5c19e879d1e465ca53e7d63",
        vout: 0,
        satoshis: 301331,
        path: "m/44'/2'/0'/0/0",
        // for custom transport layer, each utxo need publickey.
        // publickey: "030fe9d8d0e15d432d1ae9b3c52f4cb6e37e3c7a41af0139783da09eab85a182dc"
    },
    {
        hash: "ebd04672981fa215f130ecdbac56f386e4e76326eaa808e081f67c2de79d949c",
        vout: 0,
        satoshis: 10000,
        path: "m/49'/2'/0'/0/0",
        // for custom transport layer, each utxo need publickey.
        // publickey: "03f7a0a5d44504ea8a2494c7e32c895ba4968d3dab66a4d790380be8b0539f36bc"
    }
];

const to = {
    address: "MFkcBAGgM664drwch3G3L4VWByPQVABQ3Q",
    satoshis: 310000
};

const utxo = {
    path: "m/44'/2'/0'/0/0",
    satoshis: 331,
    // for custom transport layer, each utxo need publickey.
    // publickey: "030fe9d8d0e15d432d1ae9b3c52f4cb6e37e3c7a41af0139783da09eab85a182dc"
};

const { raw_tx } = await device.sign(inputs, { to, utxo });

/*

// transfer data to hardware wallet by custom transport layer.
const { commandData, rawTx } = SecuxLTC.prepareSign(inputs, { to, utxo });
const response = await device.Exchange(commandData);
const signed = SecuxLTC.resloveTransaction(response, rawTx, inputs.map(x => x.publickey));

*/

API doc

Similar to @secux/app-btc.