UNPKG

navio-blsct

Version:

TypeScript bindings for the `libblsct` library used by the [Navio](https://nav.io/) blockchain to construct confidential transactions based on the BLS12-381 curve.

37 lines (36 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Address = exports.AddressEncoding = void 0; const blsct_1 = require("./blsct"); const doublePublicKey_1 = require("./keys/doublePublicKey"); var AddressEncoding; (function (AddressEncoding) { AddressEncoding[AddressEncoding["Bech32"] = 0] = "Bech32"; AddressEncoding[AddressEncoding["Bech32M"] = 1] = "Bech32M"; })(AddressEncoding || (exports.AddressEncoding = AddressEncoding = {})); class Address { static encode(addrDpk, encoding) { let blsctEncoding = encoding === AddressEncoding.Bech32 ? blsct_1.Bech32 : blsct_1.Bech32M; const dpk = (0, blsct_1.castToDpk)(addrDpk.value()); const rv = (0, blsct_1.encodeAddress)(dpk, blsctEncoding); if (rv.result !== 0) { (0, blsct_1.freeObj)(rv); throw new Error(`Failed to encode address. Error code = ${rv.result}`); } const encAddr = rv.value; (0, blsct_1.freeObj)(rv); return encAddr; } static decode(addrStr) { const addrCStr = (0, blsct_1.asString)(addrStr); const rv = (0, blsct_1.decodeAddress)(addrCStr); if (rv.result !== 0) { (0, blsct_1.freeObj)(rv); throw new Error(`Failed to decode address. Error code = ${rv.result}`); } const addrDpk = doublePublicKey_1.DoublePublicKey.fromObj(rv.value); (0, blsct_1.freeObj)(rv); return addrDpk; } } exports.Address = Address;