wormhole/sui/testing/js/helpers/build.ts

33 lines
953 B
TypeScript

import { fromB64, normalizeSuiObjectId } from "@mysten/sui.js";
import { execSync, ExecSyncOptionsWithStringEncoding } from "child_process";
import { UTF8 } from "./consts";
export const EXEC_UTF8: ExecSyncOptionsWithStringEncoding = { encoding: UTF8 };
export function buildForBytecode(packagePath: string) {
const buildOutput: {
modules: string[];
dependencies: string[];
} = JSON.parse(
execSync(
`sui move build --dump-bytecode-as-base64 -p ${packagePath} 2> /dev/null`,
EXEC_UTF8
)
);
return {
modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))),
dependencies: buildOutput.dependencies.map((d: string) =>
normalizeSuiObjectId(d)
),
};
}
export function buildForDigest(packagePath: string) {
const digest = execSync(
`sui move build --dump-package-digest -p ${packagePath} 2> /dev/null`,
EXEC_UTF8
).substring(0, 64);
return Buffer.from(digest, "hex");
}