@qiushaoxi/hw-app-ont
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

Ledger javascript API for ONT and NEO

Usage

require("babel-polyfill");
import TransportNodeHid from "@ledgerhq/hw-transport-node-hid";
import HwAppOnt from "@qiushaoxi/hw-app-ont";
import { Crypto, Transaction, utils } from 'ontology-ts-sdk';

export class OntLedgerSigner {
    path: string
    transport: any
    app: any
    constructor(path: string) {
        this.path = path
    }
    async init() {
        this.transport = await TransportNodeHid.open("");
        this.app = new HwAppOnt(this.transport);
    }
    async close() {
        await this.transport.close()
    }
    async sign(transaction: Transaction): Promise<Crypto.Signature> {
        const unsignedData = transaction.serializeUnsignedData();
        const result = await this.app.signMessage(this.path, unsignedData);
        const ontSignature = new Crypto.Signature(Crypto.SignatureScheme.ECDSAwithSHA256, result);
        const signatureHex = ontSignature.serializeHex();
        console.log(signatureHex);
        return ontSignature;
    }
    async getPublicKey(): Promise<Crypto.PublicKey> {
        const publicKeyStr = await this.app.getPublicKey(this.path);
        console.log(publicKeyStr);
        const publicKey = Crypto.PublicKey.deserializeHex(new utils.StringReader(publicKeyStr))
        console.log(publicKey.serializeHex())
        return publicKey;
    }
};

Readme

Keywords

Package Sidebar

Install

npm i @qiushaoxi/hw-app-ont

Weekly Downloads

0

Version

1.0.6

License

MIT

Unpacked Size

53.5 kB

Total Files

12

Last publish

Collaborators

  • qiushaoxi