UNPKG

movement-sdk

Version:
79 lines (70 loc) 2.39 kB
import path from "path" import {exec} from "child_process"; import fs from "fs"; import {logger} from "./logger"; const cmd = path.resolve(__dirname, "../static", "bin", "metabcs"); export class BuildMetadata { private schema: any private code: string constructor(schema: any) { this.schema = schema this.code = "" } async build() { logger.info("movement build metadata"); const hex = Buffer.from(JSON.stringify(this.schema)).toString("hex"); return new Promise((resolve, reject) => { exec(`${cmd} bcs ${hex}`, (err, res) => { if (err) { logger.error("movement build metadata failed"); reject(new Error("build metadata failed, please check this schema")) } this.code = res logger.success("movement build metadata success"); resolve(this.code) }); }) } save(p: string) { fs.writeFileSync(p, Buffer.from(this.code, "hex")); logger.success(`movement save metadata to ${p} successfully`); } static getSchemaTemplate() { return { name: "packageName", upgrade_policy: { policy: 1, }, upgrade_number: 0, source_digest: "0000000000000000000000000000000000000000000000000000000000000000", manifest: [], modules: [ { name: "moduleName", source: [], source_map: [], extension: { value: [], }, }, ], deps: [ { account: "0000000000000000000000000000000000000000000000000000000000000001", package_name: "AptosFramework", }, { account: "0000000000000000000000000000000000000000000000000000000000000001", package_name: "AptosStdlib", }, { account: "0000000000000000000000000000000000000000000000000000000000000001", package_name: "MoveStdlib", }, ], extension: { value: [], }, }; } }