@settlemint/sdk-cli 1.0.9-pr961dae20 → 1.0.9-pr9688bb96

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -84,10 +84,10 @@ npm install -g @settlemint/sdk-cli
84
84
  bun install -g @settlemint/sdk-cli
85
85
 
86
86
  # pnpm
87
- pnpm install -g @settlemint/sdk-cli
87
+ pnpm add -g @settlemint/sdk-cli
88
88
 
89
89
  # yarn
90
- yarn install -g @settlemint/sdk-cli
90
+ yarn global add @settlemint/sdk-cli
91
91
  ```
92
92
 
93
93
  You can access the CLI globally by running `settlemint` in your terminal.
@@ -249,7 +249,7 @@ settlemint scs subgraph deploy --accept-defaults <subgraph-name>
249
249
 
250
250
  ## API Reference
251
251
 
252
- See the [documentation](https://github.com/settlemint/sdk/tree/v1.0.8/sdk/cli/docs/settlemint.md) for available commands.
252
+ See the [documentation](https://github.com/settlemint/sdk/tree/v1.0.9/sdk/cli/docs/settlemint.md) for available commands.
253
253
 
254
254
  ## Contributing
255
255
 
package/dist/cli.js CHANGED
@@ -34802,7 +34802,7 @@ var require_cjs = __commonJS((exports) => {
34802
34802
  exports.sync = impl.sync;
34803
34803
  });
34804
34804
 
34805
- // ../../node_modules/@npmcli/promise-spawn/node_modules/which/lib/index.js
34805
+ // ../../node_modules/which/lib/index.js
34806
34806
  var require_lib4 = __commonJS((exports, module) => {
34807
34807
  var { isexe, sync: isexeSync } = require_cjs();
34808
34808
  var { join: join4, delimiter, sep: sep2, posix: posix2 } = __require("path");
@@ -35723,93 +35723,9 @@ var require_opts = __commonJS((exports, module) => {
35723
35723
  module.exports.loadGitConfig = loadGitConfig;
35724
35724
  });
35725
35725
 
35726
- // ../../node_modules/@npmcli/git/node_modules/which/lib/index.js
35727
- var require_lib6 = __commonJS((exports, module) => {
35728
- var { isexe, sync: isexeSync } = require_cjs();
35729
- var { join: join4, delimiter, sep: sep2, posix: posix2 } = __require("path");
35730
- var isWindows2 = process.platform === "win32";
35731
- var rSlash = new RegExp(`[${posix2.sep}${sep2 === posix2.sep ? "" : sep2}]`.replace(/(\\)/g, "\\$1"));
35732
- var rRel = new RegExp(`^\\.${rSlash.source}`);
35733
- var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
35734
- var getPathInfo = (cmd, {
35735
- path: optPath = process.env.PATH,
35736
- pathExt: optPathExt = process.env.PATHEXT,
35737
- delimiter: optDelimiter = delimiter
35738
- }) => {
35739
- const pathEnv = cmd.match(rSlash) ? [""] : [
35740
- ...isWindows2 ? [process.cwd()] : [],
35741
- ...(optPath || "").split(optDelimiter)
35742
- ];
35743
- if (isWindows2) {
35744
- const pathExtExe = optPathExt || [".EXE", ".CMD", ".BAT", ".COM"].join(optDelimiter);
35745
- const pathExt = pathExtExe.split(optDelimiter).flatMap((item) => [item, item.toLowerCase()]);
35746
- if (cmd.includes(".") && pathExt[0] !== "") {
35747
- pathExt.unshift("");
35748
- }
35749
- return { pathEnv, pathExt, pathExtExe };
35750
- }
35751
- return { pathEnv, pathExt: [""] };
35752
- };
35753
- var getPathPart = (raw, cmd) => {
35754
- const pathPart = /^".*"$/.test(raw) ? raw.slice(1, -1) : raw;
35755
- const prefix = !pathPart && rRel.test(cmd) ? cmd.slice(0, 2) : "";
35756
- return prefix + join4(pathPart, cmd);
35757
- };
35758
- var which = async (cmd, opt = {}) => {
35759
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
35760
- const found = [];
35761
- for (const envPart of pathEnv) {
35762
- const p = getPathPart(envPart, cmd);
35763
- for (const ext2 of pathExt) {
35764
- const withExt = p + ext2;
35765
- const is = await isexe(withExt, { pathExt: pathExtExe, ignoreErrors: true });
35766
- if (is) {
35767
- if (!opt.all) {
35768
- return withExt;
35769
- }
35770
- found.push(withExt);
35771
- }
35772
- }
35773
- }
35774
- if (opt.all && found.length) {
35775
- return found;
35776
- }
35777
- if (opt.nothrow) {
35778
- return null;
35779
- }
35780
- throw getNotFoundError(cmd);
35781
- };
35782
- var whichSync = (cmd, opt = {}) => {
35783
- const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt);
35784
- const found = [];
35785
- for (const pathEnvPart of pathEnv) {
35786
- const p = getPathPart(pathEnvPart, cmd);
35787
- for (const ext2 of pathExt) {
35788
- const withExt = p + ext2;
35789
- const is = isexeSync(withExt, { pathExt: pathExtExe, ignoreErrors: true });
35790
- if (is) {
35791
- if (!opt.all) {
35792
- return withExt;
35793
- }
35794
- found.push(withExt);
35795
- }
35796
- }
35797
- }
35798
- if (opt.all && found.length) {
35799
- return found;
35800
- }
35801
- if (opt.nothrow) {
35802
- return null;
35803
- }
35804
- throw getNotFoundError(cmd);
35805
- };
35806
- module.exports = which;
35807
- which.sync = whichSync;
35808
- });
35809
-
35810
35726
  // ../../node_modules/@npmcli/git/lib/which.js
35811
35727
  var require_which = __commonJS((exports, module) => {
35812
- var which = require_lib6();
35728
+ var which = require_lib4();
35813
35729
  var gitPath;
35814
35730
  try {
35815
35731
  gitPath = which.sync("git");
@@ -37320,7 +37236,7 @@ var require_utils7 = __commonJS((exports) => {
37320
37236
  });
37321
37237
 
37322
37238
  // ../../node_modules/npm-package-arg/node_modules/validate-npm-package-name/lib/index.js
37323
- var require_lib7 = __commonJS((exports, module) => {
37239
+ var require_lib6 = __commonJS((exports, module) => {
37324
37240
  var { builtinModules: builtins } = __require("module");
37325
37241
  var scopedPackagePattern = new RegExp("^(?:@([^/]+?)[/])?([^/]+?)$");
37326
37242
  var blacklist = [
@@ -37412,7 +37328,7 @@ var require_npa = __commonJS((exports, module) => {
37412
37328
  var HostedGit = require_lib3();
37413
37329
  var semver = require_semver2();
37414
37330
  var path5 = global.FAKE_WINDOWS ? __require("path").win32 : __require("path");
37415
- var validatePackageName = require_lib7();
37331
+ var validatePackageName = require_lib6();
37416
37332
  var { homedir } = __require("os");
37417
37333
  var { log } = require_lib2();
37418
37334
  var isWindows2 = process.platform === "win32" || global.FAKE_WINDOWS;
@@ -37951,7 +37867,7 @@ var require_dev_engines = __commonJS((exports, module) => {
37951
37867
  });
37952
37868
 
37953
37869
  // ../../node_modules/npm-install-checks/lib/index.js
37954
- var require_lib8 = __commonJS((exports, module) => {
37870
+ var require_lib7 = __commonJS((exports, module) => {
37955
37871
  var semver = require_semver2();
37956
37872
  var currentEnv = require_current_env();
37957
37873
  var { checkDevEngines } = require_dev_engines();
@@ -38035,7 +37951,7 @@ var require_lib8 = __commonJS((exports, module) => {
38035
37951
  });
38036
37952
 
38037
37953
  // ../../node_modules/npm-normalize-package-bin/lib/index.js
38038
- var require_lib9 = __commonJS((exports, module) => {
37954
+ var require_lib8 = __commonJS((exports, module) => {
38039
37955
  var { join: join4, basename } = __require("path");
38040
37956
  var normalize2 = (pkg) => !pkg.bin ? removeBin(pkg) : typeof pkg.bin === "string" ? normalizeString(pkg) : Array.isArray(pkg.bin) ? normalizeArray(pkg) : typeof pkg.bin === "object" ? normalizeObject(pkg) : removeBin(pkg);
38041
37957
  var normalizeString = (pkg) => {
@@ -38083,11 +37999,11 @@ var require_lib9 = __commonJS((exports, module) => {
38083
37999
  });
38084
38000
 
38085
38001
  // ../../node_modules/npm-pick-manifest/lib/index.js
38086
- var require_lib10 = __commonJS((exports, module) => {
38002
+ var require_lib9 = __commonJS((exports, module) => {
38087
38003
  var npa = require_npa();
38088
38004
  var semver = require_semver2();
38089
- var { checkEngine } = require_lib8();
38090
- var normalizeBin = require_lib9();
38005
+ var { checkEngine } = require_lib7();
38006
+ var normalizeBin = require_lib8();
38091
38007
  var engineOk = (manifest, npmVersion, nodeVersion) => {
38092
38008
  try {
38093
38009
  checkEngine(manifest, npmVersion, nodeVersion);
@@ -38249,7 +38165,7 @@ var require_clone = __commonJS((exports, module) => {
38249
38165
  var getRevs = require_revs();
38250
38166
  var spawn2 = require_spawn();
38251
38167
  var { isWindows: isWindows2 } = require_utils7();
38252
- var pickManifest = require_lib10();
38168
+ var pickManifest = require_lib9();
38253
38169
  var fs3 = __require("fs/promises");
38254
38170
  module.exports = (repo, ref = "HEAD", target = null, opts = {}) => getRevs(repo, opts).then((revs) => clone(repo, revs, ref, resolveRef(revs, ref, opts), target || defaultTarget(repo, opts.cwd), opts));
38255
38171
  var maybeShallow = (repo, opts) => {
@@ -38381,7 +38297,7 @@ var require_is_clean = __commonJS((exports, module) => {
38381
38297
  });
38382
38298
 
38383
38299
  // ../../node_modules/@npmcli/git/lib/index.js
38384
- var require_lib11 = __commonJS((exports, module) => {
38300
+ var require_lib10 = __commonJS((exports, module) => {
38385
38301
  module.exports = {
38386
38302
  clone: require_clone(),
38387
38303
  revs: require_revs(),
@@ -40278,7 +40194,7 @@ var require_normalize = __commonJS((exports, module) => {
40278
40194
  normalizePackageBin(data, changes);
40279
40195
  }
40280
40196
  if (steps.includes("gitHead") && !data.gitHead) {
40281
- const git = require_lib11();
40197
+ const git = require_lib10();
40282
40198
  const gitRoot = await git.find({ cwd: pkg.path, root });
40283
40199
  let head;
40284
40200
  if (gitRoot) {
@@ -40564,7 +40480,7 @@ var require_sort2 = __commonJS((exports, module) => {
40564
40480
  });
40565
40481
 
40566
40482
  // ../../node_modules/@npmcli/package-json/lib/index.js
40567
- var require_lib12 = __commonJS((exports, module) => {
40483
+ var require_lib11 = __commonJS((exports, module) => {
40568
40484
  var { readFile: readFile2, writeFile: writeFile2 } = __require("node:fs/promises");
40569
40485
  var { resolve: resolve2 } = __require("node:path");
40570
40486
  var parseJSON = require_lib();
@@ -228156,7 +228072,7 @@ var require_wrap_ansi = __commonJS((exports, module) => {
228156
228072
  });
228157
228073
 
228158
228074
  // ../../node_modules/mute-stream/lib/index.js
228159
- var require_lib13 = __commonJS((exports, module) => {
228075
+ var require_lib12 = __commonJS((exports, module) => {
228160
228076
  var Stream3 = __require("stream");
228161
228077
 
228162
228078
  class MuteStream extends Stream3 {
@@ -241066,7 +240982,7 @@ var require_dist5 = __commonJS((exports) => {
241066
240982
  });
241067
240983
 
241068
240984
  // ../../node_modules/node-fetch-native/lib/index.cjs
241069
- var require_lib14 = __commonJS((exports, module) => {
240985
+ var require_lib13 = __commonJS((exports, module) => {
241070
240986
  var nodeFetch = require_dist5();
241071
240987
  function fetch2(input, options) {
241072
240988
  return nodeFetch.fetch(input, options);
@@ -241112,7 +241028,7 @@ var require_proxy = __commonJS((exports) => {
241112
241028
  var require$$3 = __require("events");
241113
241029
  var require$$5$4 = __require("url");
241114
241030
  var require$$2 = __require("assert");
241115
- var nodeFetchNative = require_lib14();
241031
+ var nodeFetchNative = require_lib13();
241116
241032
  function _interopDefaultCompat(A5) {
241117
241033
  return A5 && typeof A5 == "object" && "default" in A5 ? A5.default : A5;
241118
241034
  }
@@ -269202,7 +269118,7 @@ function pruneCurrentEnv(currentEnv, env2) {
269202
269118
  var package_default = {
269203
269119
  name: "@settlemint/sdk-cli",
269204
269120
  description: "Command-line interface for SettleMint SDK, providing development tools and project management capabilities",
269205
- version: "1.0.9-pr961dae20",
269121
+ version: "1.0.9-pr9688bb96",
269206
269122
  type: "module",
269207
269123
  private: false,
269208
269124
  license: "FSL-1.1-MIT",
@@ -269245,22 +269161,24 @@ var package_default = {
269245
269161
  tinyexec: "0.3.2"
269246
269162
  },
269247
269163
  devDependencies: {
269248
- "@types/semver": "7.5.8",
269249
- "@types/node": "22.10.10",
269250
- "is-in-ci": "1.0.0",
269251
- semver: "7.6.3",
269252
- slugify: "1.6.6",
269253
- yoctocolors: "2.1.1",
269254
269164
  "@commander-js/extra-typings": "13.1.0",
269255
269165
  "@inquirer/confirm": "5.1.3",
269256
269166
  "@inquirer/input": "4.1.3",
269257
269167
  "@inquirer/password": "4.0.6",
269258
269168
  "@inquirer/select": "4.0.6",
269259
- "@settlemint/sdk-js": "1.0.9-pr961dae20",
269260
- "@settlemint/sdk-utils": "1.0.9-pr961dae20",
269169
+ "@settlemint/sdk-js": "1.0.9-pr9688bb96",
269170
+ "@settlemint/sdk-utils": "1.0.9-pr9688bb96",
269171
+ "@types/node": "22.10.10",
269172
+ "@types/semver": "7.5.8",
269173
+ "@types/which": "3.0.4",
269261
269174
  "get-tsconfig": "4.10.0",
269262
269175
  giget: "1.2.3",
269263
- yaml: "2.7.0"
269176
+ "is-in-ci": "1.0.0",
269177
+ semver: "7.6.3",
269178
+ slugify: "1.6.6",
269179
+ which: "5.0.0",
269180
+ yaml: "2.7.0",
269181
+ yoctocolors: "2.1.1"
269264
269182
  },
269265
269183
  peerDependencies: {
269266
269184
  hardhat: "2.22.18"
@@ -269360,9 +269278,6 @@ var cancel2 = (msg) => {
269360
269278
  throw new CancelError2(msg);
269361
269279
  };
269362
269280
  async function executeCommand(command, args, options) {
269363
- console.log("command", command);
269364
- console.log("args", args);
269365
- console.log("options", options);
269366
269281
  const child = spawn(command, args, { env: { ...process.env, ...options?.env } });
269367
269282
  process.stdin.pipe(child.stdin);
269368
269283
  const output = [];
@@ -271755,8 +271670,8 @@ async function installPackage(names, options = {}) {
271755
271670
 
271756
271671
  // ../utils/dist/package-manager.mjs
271757
271672
  var import_console_table_printer3 = __toESM(require_dist2(), 1);
271758
- var import_package_json = __toESM(require_lib12(), 1);
271759
- var import_package_json2 = __toESM(require_lib12(), 1);
271673
+ var import_package_json = __toESM(require_lib11(), 1);
271674
+ var import_package_json2 = __toESM(require_lib11(), 1);
271760
271675
  async function projectRoot2(fallbackToCwd = false, cwd) {
271761
271676
  const packageJsonPath = await findUp("package.json", { cwd });
271762
271677
  if (!packageJsonPath) {
@@ -274008,7 +273923,7 @@ function usePagination({ items, active, renderItem, pageSize, loop = true }) {
274008
273923
  `);
274009
273924
  }
274010
273925
  // ../../node_modules/@inquirer/core/dist/esm/lib/create-prompt.js
274011
- var import_mute_stream = __toESM(require_lib13(), 1);
273926
+ var import_mute_stream = __toESM(require_lib12(), 1);
274012
273927
  init_mjs();
274013
273928
  import * as readline2 from "node:readline";
274014
273929
  import { AsyncResource as AsyncResource3 } from "node:async_hooks";
@@ -274815,8 +274730,9 @@ var esm_default5 = createPrompt((config3, done) => {
274815
274730
  // src/prompts/aat.prompt.ts
274816
274731
  async function applicationAccessTokenPrompt(env2, application, settlemint, accept) {
274817
274732
  const autoAccept = !!accept || is_in_ci_default;
274818
- const defaultAccessToken = env2.SETTLEMINT_ACCESS_TOKEN;
274819
- const defaultPossible = autoAccept && defaultAccessToken;
274733
+ const hasApplicationChanged = env2.SETTLEMINT_APPLICATION !== application.uniqueName;
274734
+ const defaultAccessToken = hasApplicationChanged ? undefined : env2.SETTLEMINT_ACCESS_TOKEN;
274735
+ const defaultPossible = autoAccept && !!defaultAccessToken;
274820
274736
  if (defaultPossible || is_in_ci_default) {
274821
274737
  return defaultAccessToken;
274822
274738
  }
@@ -278852,6 +278768,17 @@ function formatUseCaseName(name2) {
278852
278768
  return name2;
278853
278769
  }
278854
278770
 
278771
+ // src/utils/smart-contract-set/execute-foundry-command.ts
278772
+ var import_which = __toESM(require_lib4(), 1);
278773
+ async function executeFoundryCommand(command, args) {
278774
+ try {
278775
+ await import_which.default(command);
278776
+ } catch (error5) {
278777
+ cancel2("Foundry is not installed. Instructions to install Foundry can be found here: https://book.getfoundry.sh/getting-started/installation");
278778
+ }
278779
+ return executeCommand(command, args);
278780
+ }
278781
+
278855
278782
  // src/commands/smart-contract-set/create.ts
278856
278783
  function createCommand4() {
278857
278784
  return new Command("create").description("Bootstrap your smart contract set").option("-n, --project-name <name>", "The name for your smart contract set project").option("--use-case <useCase>", "Use case for the smart contract set (run `settlemint platform config` to see available use cases)").option("-i, --instance <instance>", "The instance to connect to").action(async ({ projectName, useCase, instance }) => {
@@ -278884,7 +278811,7 @@ function createCommand4() {
278884
278811
  await spinner({
278885
278812
  startMessage: "Scaffolding the smart contract set",
278886
278813
  task: async () => {
278887
- await executeCommand("forge", [
278814
+ await executeFoundryCommand("forge", [
278888
278815
  "init",
278889
278816
  name2,
278890
278817
  "--template",
@@ -278928,7 +278855,7 @@ function foundryBuildCommand() {
278928
278855
  }
278929
278856
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
278930
278857
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
278931
- await executeCommand("forge", ["build", ...forgeOptions]);
278858
+ await executeFoundryCommand("forge", ["build", ...forgeOptions]);
278932
278859
  });
278933
278860
  }
278934
278861
 
@@ -278949,7 +278876,7 @@ function foundryFormatCommand() {
278949
278876
  }
278950
278877
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
278951
278878
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
278952
- await executeCommand("forge", ["fmt", ...forgeOptions]);
278879
+ await executeFoundryCommand("forge", ["fmt", ...forgeOptions]);
278953
278880
  note("Smart contract set formatted successfully!");
278954
278881
  });
278955
278882
  }
@@ -278971,7 +278898,7 @@ function foundryNetworkCommand() {
278971
278898
  }
278972
278899
  ])).helpOption(false).option("-h, --help", "Get list of possible anvil options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
278973
278900
  const anvilOptions = mapPassthroughOptions(passThroughOptions, cmd2);
278974
- await executeCommand("anvil", anvilOptions);
278901
+ await executeFoundryCommand("anvil", anvilOptions);
278975
278902
  });
278976
278903
  }
278977
278904
 
@@ -278992,10 +278919,26 @@ function foundryTestCommand() {
278992
278919
  }
278993
278920
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
278994
278921
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
278995
- await executeCommand("forge", ["test", ...forgeOptions]);
278922
+ await executeFoundryCommand("forge", ["test", ...forgeOptions]);
278996
278923
  });
278997
278924
  }
278998
278925
 
278926
+ // src/utils/validate-required-packages.ts
278927
+ var validateIfRequiredPackagesAreInstalled = async (packages, cwd2) => {
278928
+ const results = await Promise.all(packages.map(async (pkg) => {
278929
+ try {
278930
+ const isInstalled = await isPackageInstalled(pkg, cwd2);
278931
+ return { packageName: pkg, isInstalled };
278932
+ } catch (err) {
278933
+ return { packageName: pkg, isInstalled: false };
278934
+ }
278935
+ }));
278936
+ const notInstalled = results.filter((result) => !result.isInstalled);
278937
+ if (notInstalled.length > 0) {
278938
+ cancel2(`The following required npm packages are not installed: ${notInstalled.map((pkg) => pkg.packageName).join(", ")}. Please install them and try again.`);
278939
+ }
278940
+ };
278941
+
278999
278942
  // src/commands/smart-contract-set/hardhat/build.ts
279000
278943
  function hardhatBuildCommand() {
279001
278944
  return new Command("build").description("Build the smart contracts using Hardhat").usage(createExamples([
@@ -279012,6 +278955,7 @@ function hardhatBuildCommand() {
279012
278955
  command: "scs hardhat build --concurrency 2"
279013
278956
  }
279014
278957
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat compile options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
278958
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279015
278959
  const hardhatOptions = mapPassthroughOptions(passThroughOptions, cmd2);
279016
278960
  const { command, args } = await getPackageManagerExecutable();
279017
278961
  await executeCommand(command, [...args, "hardhat", "compile", ...hardhatOptions]);
@@ -279038,6 +278982,7 @@ function hardhatDeployLocalCommand() {
279038
278982
  command: "scs hardhat deploy local --verify"
279039
278983
  }
279040
278984
  ])).option("-m, --module <ignitionmodule>", 'The module to deploy with Ignition, defaults to "ignition/modules/main.ts"').option("-r, --reset", "Wipes the existing deployment state before deploying").option("-v, --verify", "Verify the deployment on Etherscan").action(async ({ module, reset: reset2, verify }) => {
278985
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279041
278986
  const { command, args } = await getPackageManagerExecutable();
279042
278987
  await executeCommand(command, [
279043
278988
  ...args,
@@ -279214,6 +279159,7 @@ function hardhatDeployRemoteCommand() {
279214
279159
  acceptDefaults,
279215
279160
  blockchainNode: blockchainNodeUniqueName
279216
279161
  }) => {
279162
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279217
279163
  const autoAccept = !!acceptDefaults || is_in_ci_default;
279218
279164
  const env2 = await loadEnv(false, !!prod);
279219
279165
  const instance = await instancePrompt(env2, true);
@@ -279284,6 +279230,7 @@ function hardhatNetworkCommand() {
279284
279230
  command: "scs hardhat network --port 3000"
279285
279231
  }
279286
279232
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat node options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
279233
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279287
279234
  const hardhatOptions = mapPassthroughOptions(passThroughOptions, cmd2);
279288
279235
  const { command, args } = await getPackageManagerExecutable();
279289
279236
  await executeCommand(command, [...args, "hardhat", "node", ...hardhatOptions]);
@@ -279293,6 +279240,7 @@ function hardhatNetworkCommand() {
279293
279240
  // src/commands/smart-contract-set/hardhat/script/local.ts
279294
279241
  function hardhatScriptLocalCommand() {
279295
279242
  return new Command("local").description("Run a Hardhat script to deploy a contract on the platform or interact with a deployed contract.").requiredOption("-s, --script <script>", 'The script to run with Hardhat , e.g. "scripts/deploy.ts"').option("--no-compile", "Don't compile before running this task").action(async ({ script, compile }) => {
279243
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279296
279244
  const { command, args } = await getPackageManagerExecutable();
279297
279245
  await executeCommand(command, [
279298
279246
  ...args,
@@ -279310,6 +279258,7 @@ function hardhatScriptLocalCommand() {
279310
279258
  function hardhatScriptRemoteCommand() {
279311
279259
  const cmd2 = new Command("remote").description("Run a Hardhat script to deploy a contract on the platform or interact with a deployed contract.").requiredOption("-s, --script <script>", 'The script to run with Hardhat , e.g. "scripts/deploy.ts"').option("--blockchain-node <blockchainNode>", "Blockchain Node unique name (optional, defaults to the blockchain node in the environment)").option("--prod", "Connect to your production environment").option("-a, --accept-defaults", "Accept the default and previously set values").option("--no-compile", "Don't compile before running this task");
279312
279260
  cmd2.action(async ({ script, prod, blockchainNode: blockchainNodeUniqueName, acceptDefaults, compile }) => {
279261
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279313
279262
  const autoAccept = !!acceptDefaults || is_in_ci_default;
279314
279263
  const env2 = await loadEnv(false, !!prod);
279315
279264
  const instance = await instancePrompt(env2, true);
@@ -279358,6 +279307,7 @@ function hardhatTestCommand() {
279358
279307
  command: "scs hardhat test test/token.test.ts"
279359
279308
  }
279360
279309
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat test options").passThroughOptions().allowUnknownOption().action(async (options, cmd2) => {
279310
+ await validateIfRequiredPackagesAreInstalled(["hardhat"]);
279361
279311
  const hardhatOptions = mapPassthroughOptions(options, cmd2);
279362
279312
  const { command, args } = await getPackageManagerExecutable();
279363
279313
  await executeCommand(command, [...args, "hardhat", "test", ...hardhatOptions]);
@@ -279426,7 +279376,7 @@ var SETTLEMINT_NETWORK = "settlemint";
279426
279376
  async function subgraphSetup({ network }) {
279427
279377
  const generated = await isGenerated();
279428
279378
  if (generated) {
279429
- await executeCommand("forge", ["build"]);
279379
+ await executeFoundryCommand("forge", ["build"]);
279430
279380
  }
279431
279381
  if (await exists3("./generated")) {
279432
279382
  await rm4("./generated", { recursive: true, force: true });
@@ -279529,6 +279479,7 @@ async function getNodeName({
279529
279479
  // src/commands/smart-contract-set/subgraph/build.ts
279530
279480
  function subgraphBuildCommand() {
279531
279481
  return new Command("build").description("Build the subgraph").action(async () => {
279482
+ await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
279532
279483
  await subgraphSetup({
279533
279484
  network: SETTLEMINT_NETWORK
279534
279485
  });
@@ -279544,6 +279495,7 @@ function subgraphBuildCommand() {
279544
279495
  import { dirname as dirname11 } from "node:path";
279545
279496
  function subgraphCodegenCommand() {
279546
279497
  return new Command("codegen").description("Codegen the subgraph types").action(async () => {
279498
+ await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
279547
279499
  await subgraphSetup({
279548
279500
  network: SETTLEMINT_NETWORK
279549
279501
  });
@@ -279602,6 +279554,7 @@ function subgraphDeployCommand() {
279602
279554
  command: "scs subgraph deploy my-subgraph"
279603
279555
  }
279604
279556
  ])).option("-a, --accept-defaults", "Accept the default and previously set values").option("--prod", "Connect to your production environment").argument("[subgraph-name]", "The name of the subgraph to deploy (defaults to value in .env if not provided)").action(async (subgraphName, { prod, acceptDefaults }) => {
279557
+ await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
279605
279558
  const autoAccept = !!acceptDefaults || is_in_ci_default;
279606
279559
  const env2 = await loadEnv(false, !!prod);
279607
279560
  const instance = await instancePrompt(env2, true);
@@ -279791,4 +279744,4 @@ async function sdkCliCommand(argv = process.argv) {
279791
279744
  // src/cli.ts
279792
279745
  sdkCliCommand();
279793
279746
 
279794
- //# debugId=AC68192B45F0C72764756E2164756E21
279747
+ //# debugId=52C09A789DAD209C64756E2164756E21