UNPKG

@ledgerhq/hw-app-algorand

Version:
31 lines 1.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.encodeAddress = void 0; const tweetnacl_1 = __importDefault(require("tweetnacl")); const hi_base32_1 = __importDefault(require("hi-base32")); const js_sha512_1 = __importDefault(require("js-sha512")); const PUBLIC_KEY_LENGTH = tweetnacl_1.default.sign.publicKeyLength; const ALGORAND_ADDRESS_LENGTH = 58; const ALGORAND_CHECKSUM_BYTE_LENGTH = 4; const encodeAddress = (address) => { const checksum = js_sha512_1.default.sha512_256 .array(address) .slice(PUBLIC_KEY_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, PUBLIC_KEY_LENGTH); const addr = hi_base32_1.default.encode(concatArrays(address, checksum)); return addr.toString().slice(0, ALGORAND_ADDRESS_LENGTH); }; exports.encodeAddress = encodeAddress; function concatArrays(...arrs) { const size = arrs.reduce((sum, arr) => sum + arr.length, 0); const c = new Uint8Array(size); let offset = 0; for (let i = 0; i < arrs.length; i++) { c.set(arrs[i], offset); offset += arrs[i].length; } return c; } //# sourceMappingURL=utils.js.map