UNPKG

@ledgerhq/coin-casper

Version:
52 lines 3.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const casper_js_sdk_1 = require("casper-js-sdk"); const addresses_1 = require("../bridge/bridgeHelpers/addresses"); describe("Casper addresses", () => { const pubKeys = { // valid validSecp256k1: "0203a17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbb776cae607ceb84ecb", validEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94d401", validSecp256k1Checksum: "0203A17118eC0e64c4e4FdbDbEe0eA14D118C9aAf08C6c81bbB776Cae607cEB84EcB", // Checksummed validEd25519Checksum: "016470AE57b0a3aD5A679d2e0422909Bfb9dEd445e20cbE6B4c9806f844c94d401", // Checksummed // invalid invalidSecp256k1: "0203A17118ec0e64c4e4fdbdbee0ea14d118c9aaf08c6c81bbc776cae607ceb84ecb", invalidEd25519: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94D401", invalidAddresstype: "036470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b8c9806f844c94d401", // Invalid address type invalidLength: "12345", // Invalid length invalidCharacter: "xyz123", // Contains non-hex characters invalidChecksum: "016470ae57b0a3ad5a679d2e0422909bfb9ded445e20cbe6b4c9806f844c94D400", // Invalid checksum }; test("Check if valid addresses are valid", () => { expect((0, addresses_1.isAddressValid)(pubKeys.validEd25519)).toBe(true); expect((0, addresses_1.isAddressValid)(pubKeys.validSecp256k1)).toBe(true); expect((0, addresses_1.isAddressValid)(pubKeys.validSecp256k1Checksum)).toBe(true); expect((0, addresses_1.isAddressValid)(pubKeys.validEd25519Checksum)).toBe(true); }); test("Check if invalid addresses are invalid", () => { expect((0, addresses_1.isAddressValid)(pubKeys.invalidEd25519)).toBe(false); expect((0, addresses_1.isAddressValid)(pubKeys.invalidSecp256k1)).toBe(false); expect((0, addresses_1.isAddressValid)(pubKeys.invalidLength)).toBe(false); expect((0, addresses_1.isAddressValid)(pubKeys.invalidCharacter)).toBe(false); expect((0, addresses_1.isAddressValid)(pubKeys.invalidChecksum)).toBe(false); }); test("Get the address from the publick key", () => { /** * Extracts the public key and key signature from a given Casper address. * * @param {string} address - The Casper address from which to extract the public key and key signature. * @returns {{ pubkey: Buffer, keySig: CLPublicKeyTag }} An object containing the public key as a Buffer and the key signature as a CLPublicKeyTag. */ function casperPubKeyFromAddress(address) { const keySig = parseInt(address.slice(0, 2), 10); const pubkeyHex = address.slice(2); const pubkey = Buffer.from(pubkeyHex, "hex"); return { pubkey, keySig }; } expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1).pubkey, casper_js_sdk_1.KeyAlgorithm.SECP256K1)).toBe(pubKeys.validSecp256k1); expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validSecp256k1Checksum).pubkey, casper_js_sdk_1.KeyAlgorithm.SECP256K1)).toBe(pubKeys.validSecp256k1Checksum.toLowerCase()); expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519).pubkey, casper_js_sdk_1.KeyAlgorithm.ED25519)).toBe(pubKeys.validEd25519); expect((0, addresses_1.casperAddressFromPubKey)(casperPubKeyFromAddress(pubKeys.validEd25519Checksum).pubkey, casper_js_sdk_1.KeyAlgorithm.ED25519)).toBe(pubKeys.validEd25519Checksum.toLowerCase()); }); }); //# sourceMappingURL=utils.unit.test.js.map