UNPKG

@ledgerhq/coin-internet_computer

Version:
31 lines 1.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.broadcast = void 0; const logs_1 = require("@ledgerhq/logs"); const invariant_1 = __importDefault(require("invariant")); const api_1 = require("../api"); const consts_1 = require("../consts"); function isBroadcastRawData(data) { if (typeof data !== "object" || data === null) { return false; } return ("encodedSignedCallBlob" in data && typeof data.encodedSignedCallBlob === "string" && "transferRequestIdHex" in data && typeof data.transferRequestIdHex === "string"); } // Main broadcast function for handling Internet Computer transactions const broadcast = async ({ signedOperation: { operation, rawData }, }) => { (0, logs_1.log)("debug", "[broadcast] Internet Computer transaction broadcast initiated"); // Validate rawData with type guard (0, invariant_1.default)(isBroadcastRawData(rawData), "[ICP](broadcast) Invalid rawData format"); (0, invariant_1.default)(operation.extra, "[ICP](broadcast) Missing operation extra"); const syncCallResponse = await (0, api_1.broadcastTxn)(Buffer.from(rawData.encodedSignedCallBlob, "hex"), consts_1.MAINNET_LEDGER_CANISTER_ID, "call"); await (0, api_1.ensureTransferCallAccepted)(syncCallResponse, rawData.transferRequestIdHex); return operation; }; exports.broadcast = broadcast; //# sourceMappingURL=broadcast.js.map