UNPKG

@tangle-js/anchors

Version:

Anchoring messages to the Tangle. Powered by IOTA Streams

44 lines 3.52 kB
import { SingleNodeClient } from "@iota/iota.js"; import { Address, ChannelAddress, MsgId } from "@tangle.js/streams-wasm/node/streams.js"; import { AnchoringChannelError } from "../errors/anchoringChannelError.mjs"; import { AnchoringChannelErrorNames } from "../errors/anchoringChannelErrorNames.mjs"; import initialize from "./initializationHelper.mjs"; /** * Helper class to deal with protocol aspects * */ export class ProtocolHelper { /** * Given a channel address and a message Id returns the corresponding L1 tangle index that * allows to locate the L1 Ledger message * * @param channelAddress The channel address * @param messageId The message identifier * @returns the tangle index encoded in hexadecimal chars */ static async getIndexL1(channelAddress, messageId) { await initialize(); const addr = new Address(ChannelAddress.parse(channelAddress), MsgId.parse(messageId)); return addr.toMsgIndexHex(); } /** * Given an anchoring channel and an anchored message ID returns the * corresponding message ID at L1 on the Ledger * * @param channel The anchoring channel * @param messageId The Streams Message Id * @returns the Layer 1 message ID */ static async getMsgIdL1(channel, messageId) { await initialize(); const addr = new Address(ChannelAddress.parse(channel.channelAddr), MsgId.parse(messageId)); const index = addr.toMsgIndex(); const client = new SingleNodeClient(channel.node); const messagesResponse = await client.messagesFind(index); if (messagesResponse.count === 0) { throw new AnchoringChannelError(AnchoringChannelErrorNames.L1_MSG_NOT_FOUND, "L1 message has not been found"); } return messagesResponse.messageIds[0]; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2xIZWxwZXIubWpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hlbHBlcnMvcHJvdG9jb2xIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWxGLE9BQU8sVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRWhEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBQ3ZCOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxjQUFzQixFQUFFLFNBQWlCO1FBQ3BFLE1BQU0sVUFBVSxFQUFFLENBQUM7UUFFbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdkYsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUE2QixFQUFFLFNBQWlCO1FBQzNFLE1BQU0sVUFBVSxFQUFFLENBQUM7UUFFbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxJQUFJLGdCQUFnQixDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxJQUFJLHFCQUFxQixDQUMzQiwwQkFBMEIsQ0FBQyxnQkFBZ0IsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1NBQ3JGO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNKIn0=