UNPKG

@honeycomb-protocol/solita

Version:

Generates SDK API from solana contract IDL.

42 lines 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.enhanceIdl = void 0; const path_1 = __importDefault(require("path")); const utils_1 = require("../utils"); const types_1 = require("./types"); const fs_1 = require("fs"); const transform_type_1 = require("../transform-type"); async function enhanceIdl(config, binaryVersion, libVersion) { const { idlDir, programName } = config; const idlPath = path_1.default.join(idlDir, `${programName}.json`); const idl = require(idlPath); if ((0, types_1.isSolitaConfigAnchor)(config)) { idl.metadata = { ...idl.metadata, address: config.programId, origin: config.idlGenerator, binaryVersion, libVersion, }; } else if ((0, types_1.isSolitaConfigShank)(config)) { idl.metadata = { ...idl.metadata, binaryVersion, libVersion, }; } else { throw new utils_1.UnreachableCaseError( // @ts-ignore this possible is when types were violated via JS `Unknown IDL generator ${config.idlGenerator}`); } let finalIdl = (0, transform_type_1.adaptIdl)(idl, config); await fs_1.promises.writeFile(idlPath, JSON.stringify(finalIdl, null, 2)); return finalIdl; } exports.enhanceIdl = enhanceIdl; //# sourceMappingURL=enhance-idl.js.map