1.0.4 • Published 4 years ago

@ont-dev/hw-app-ont v1.0.4

Weekly downloads
5
License
MIT
Repository
github
Last release
4 years ago

Ledger javascript API for ONT and NEO

Usage

import Transport from "@ledgerhq/hw-transport-node-hid";
import App from "@ont-dev/hw-app-ont";
import * as elliptic from 'elliptic';
import { Crypto, Transaction } from 'ontology-ts-sdk';

(async function run() {
  const ledgerPath = "44'/1024'/0'/0/0";
  const transactionHex = '0123456789abcdef....';

  const transport = await Transport.create();
  transport.setExchangeTimeout(15000);
  const app = new App(transport);

  const uncompressedPublicKey = await app.getPublicKey(ledgerPath);
  console.log(uncompressedPublicKey);
  const ec = new elliptic.ec(Crypto.CurveLabel.SECP256R1.preset);
  const keyPair = ec.keyFromPublic(uncompressedPublicKey, 'hex');
  const compressedPublicKey = keyPair.getPublic(true, 'hex');
  console.log(compressedPublicKey);
  const ontPublicKey = new Crypto.PublicKey(compressedPublicKey);
  const ontAddress = Crypto.Address.fromPubKey(ontPublicKey);
  const addressBase58 = ontAddress.toBase58();
  console.log(addressBase58);

  const ontTransaction = Transaction.deserialize(transactionHex);
  const unsignedData = ontTransaction.serializeUnsignedData();
  const result = await this.app.signMessage(ledgerPath, unsignedData);
  const ontSignature = new Crypto.Signature(Crypto.SignatureScheme.ECDSAwithSHA256, result);
  const signatureHex = ontSignature.serializeHex();
  console.log(signatureHex);
})();
1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago