UNPKG

@ledgerhq/hw-app-algorand

Version:
24 lines 866 B
import nacl from "tweetnacl"; import base32 from "hi-base32"; import sha512 from "js-sha512"; const PUBLIC_KEY_LENGTH = nacl.sign.publicKeyLength; const ALGORAND_ADDRESS_LENGTH = 58; const ALGORAND_CHECKSUM_BYTE_LENGTH = 4; export const encodeAddress = (address) => { const checksum = sha512.sha512_256 .array(address) .slice(PUBLIC_KEY_LENGTH - ALGORAND_CHECKSUM_BYTE_LENGTH, PUBLIC_KEY_LENGTH); const addr = base32.encode(concatArrays(address, checksum)); return addr.toString().slice(0, ALGORAND_ADDRESS_LENGTH); }; 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