33 lines
953 B
TypeScript
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");
|
|
}
|