@settlemint/sdk-cli 1.1.5 → 1.1.6-main96dd22e0

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
@@ -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.1.5/sdk/cli/docs/settlemint.md) for available commands.
252
+ See the [documentation](https://github.com/settlemint/sdk/tree/v1.1.6/sdk/cli/docs/settlemint.md) for available commands.
253
253
 
254
254
  ## Contributing
255
255
 
package/dist/cli.js CHANGED
@@ -274462,7 +274462,7 @@ function pruneCurrentEnv(currentEnv, env2) {
274462
274462
  var package_default = {
274463
274463
  name: "@settlemint/sdk-cli",
274464
274464
  description: "Command-line interface for SettleMint SDK, providing development tools and project management capabilities",
274465
- version: "1.1.5",
274465
+ version: "1.1.6-main96dd22e0",
274466
274466
  type: "module",
274467
274467
  private: false,
274468
274468
  license: "FSL-1.1-MIT",
@@ -274510,9 +274510,9 @@ var package_default = {
274510
274510
  "@inquirer/input": "4.1.5",
274511
274511
  "@inquirer/password": "4.0.8",
274512
274512
  "@inquirer/select": "4.0.8",
274513
- "@settlemint/sdk-js": "1.1.5",
274514
- "@settlemint/sdk-utils": "1.1.5",
274515
- "@types/node": "22.13.1",
274513
+ "@settlemint/sdk-js": "1.1.6-main96dd22e0",
274514
+ "@settlemint/sdk-utils": "1.1.6-main96dd22e0",
274515
+ "@types/node": "22.13.4",
274516
274516
  "@types/semver": "7.5.8",
274517
274517
  "@types/which": "3.0.4",
274518
274518
  "get-tsconfig": "4.10.0",
@@ -275760,6 +275760,11 @@ var outro = (msg) => {
275760
275760
  console.log("");
275761
275761
  };
275762
275762
  var SpinnerError = class extends Error {
275763
+ constructor(message, originalError) {
275764
+ super(message);
275765
+ this.originalError = originalError;
275766
+ this.name = "SpinnerError";
275767
+ }
275763
275768
  };
275764
275769
  var spinner = async (options) => {
275765
275770
  const handleError = (error) => {
@@ -275767,7 +275772,7 @@ var spinner = async (options) => {
275767
275772
  note(redBright(`${errorMessage}
275768
275773
 
275769
275774
  ${error.stack}`));
275770
- throw new SpinnerError(errorMessage);
275775
+ throw new SpinnerError(errorMessage, error);
275771
275776
  };
275772
275777
  if (is_in_ci_default) {
275773
275778
  try {
@@ -279773,6 +279778,7 @@ async function codegenTsconfig(env2, thegraphSubgraphNames) {
279773
279778
  const tadaConfig = {
279774
279779
  name: "gql.tada/ts-plugin",
279775
279780
  trackFieldUsage: false,
279781
+ shouldCheckForColocatedFragments: false,
279776
279782
  schemas: [
279777
279783
  ...hasura ? [
279778
279784
  {
@@ -282422,7 +282428,8 @@ async function waitForCompletion({
282422
282428
  try {
282423
282429
  return await showSpinner();
282424
282430
  } catch (error5) {
282425
- if (restartIfTimeout && error5 instanceof TimeoutError) {
282431
+ const isTimeoutError = error5 instanceof SpinnerError && error5.originalError instanceof TimeoutError;
282432
+ if (restartIfTimeout && isTimeoutError) {
282426
282433
  note(`Restarting ${capitalizeFirstLetter2(type4)}`);
282427
282434
  await service.restart(uniqueName);
282428
282435
  return showSpinner();
@@ -284676,8 +284683,10 @@ function foundryBuildCommand() {
284676
284683
  command: "scs foundry build --optimize --force"
284677
284684
  }
284678
284685
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
284686
+ intro("Building smart contracts using Foundry");
284679
284687
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
284680
284688
  await executeFoundryCommand("forge", ["build", ...forgeOptions]);
284689
+ outro("Smart contracts built successfully");
284681
284690
  });
284682
284691
  }
284683
284692
 
@@ -284697,9 +284706,10 @@ function foundryFormatCommand() {
284697
284706
  command: "scs foundry format --check"
284698
284707
  }
284699
284708
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
284709
+ intro("Formatting smart contracts using Foundry");
284700
284710
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
284701
284711
  await executeFoundryCommand("forge", ["fmt", ...forgeOptions]);
284702
- note("Smart contract set formatted successfully!");
284712
+ outro("Smart contracts formatted successfully");
284703
284713
  });
284704
284714
  }
284705
284715
 
@@ -284740,8 +284750,10 @@ function foundryTestCommand() {
284740
284750
  command: "scs foundry test --match-test testToken"
284741
284751
  }
284742
284752
  ])).helpOption(false).option("-h, --help", "Get list of possible forge options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
284753
+ intro("Running smart contract tests using Foundry");
284743
284754
  const forgeOptions = mapPassthroughOptions(passThroughOptions, cmd2);
284744
284755
  await executeFoundryCommand("forge", ["test", ...forgeOptions]);
284756
+ outro("Smart contract tests completed");
284745
284757
  });
284746
284758
  }
284747
284759
 
@@ -284777,10 +284789,12 @@ function hardhatBuildCommand() {
284777
284789
  command: "scs hardhat build --concurrency 2"
284778
284790
  }
284779
284791
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat compile options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
284792
+ intro("Building smart contracts using Hardhat");
284780
284793
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
284781
284794
  const hardhatOptions = mapPassthroughOptions(passThroughOptions, cmd2);
284782
284795
  const { command, args } = await getPackageManagerExecutable();
284783
284796
  await executeCommand(command, [...args, "hardhat", "compile", ...hardhatOptions]);
284797
+ outro("Smart contracts built successfully");
284784
284798
  });
284785
284799
  }
284786
284800
 
@@ -284803,7 +284817,8 @@ function hardhatDeployLocalCommand() {
284803
284817
  description: "Deploy and verify contracts on Etherscan",
284804
284818
  command: "scs hardhat deploy local --verify"
284805
284819
  }
284806
- ])).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 }) => {
284820
+ ])).option("-m, --module <ignitionmodule>", 'The module to deploy with Ignition, defaults to "ignition/modules/main.ts"').option("--deployment-id <deploymentId>", "Set the id of the deployment").option("-r, --reset", "Wipes the existing deployment state before deploying").option("-v, --verify", "Verify the deployment on Etherscan").action(async ({ module, reset: reset2, verify, deploymentId }) => {
284821
+ intro("Deploying smart contracts to local network using Hardhat/Ignition");
284807
284822
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
284808
284823
  const { command, args } = await getPackageManagerExecutable();
284809
284824
  await executeCommand(command, [
@@ -284813,10 +284828,12 @@ function hardhatDeployLocalCommand() {
284813
284828
  "deploy",
284814
284829
  ...reset2 ? ["--reset"] : [],
284815
284830
  ...verify ? ["--verify"] : [],
284831
+ ...deploymentId ? ["--deployment-id", deploymentId] : [],
284816
284832
  "--network",
284817
284833
  "localhost",
284818
284834
  module ?? "ignition/modules/main.ts"
284819
284835
  ].filter(Boolean));
284836
+ outro("Smart contracts deployed successfully to local network");
284820
284837
  });
284821
284838
  }
284822
284839
 
@@ -284981,6 +284998,7 @@ function hardhatDeployRemoteCommand() {
284981
284998
  acceptDefaults,
284982
284999
  blockchainNode: blockchainNodeUniqueName
284983
285000
  }) => {
285001
+ intro("Deploying smart contracts to remote network using Hardhat/Ignition");
284984
285002
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
284985
285003
  const autoAccept = !!acceptDefaults || is_in_ci_default;
284986
285004
  const env2 = await loadEnv(false, !!prod);
@@ -285024,6 +285042,7 @@ function hardhatDeployRemoteCommand() {
285024
285042
  address,
285025
285043
  module ?? "ignition/modules/main.ts"
285026
285044
  ].filter(Boolean), { env: envConfig });
285045
+ outro("Smart contracts deployed successfully to remote network");
285027
285046
  });
285028
285047
  return cmd2;
285029
285048
  }
@@ -285052,16 +285071,19 @@ function hardhatNetworkCommand() {
285052
285071
  command: "scs hardhat network --port 3000"
285053
285072
  }
285054
285073
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat node options").passThroughOptions().allowUnknownOption(true).action(async (passThroughOptions, cmd2) => {
285074
+ intro("Starting development network using Hardhat");
285055
285075
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
285056
285076
  const hardhatOptions = mapPassthroughOptions(passThroughOptions, cmd2);
285057
285077
  const { command, args } = await getPackageManagerExecutable();
285058
285078
  await executeCommand(command, [...args, "hardhat", "node", ...hardhatOptions]);
285079
+ outro("Development network started successfully");
285059
285080
  });
285060
285081
  }
285061
285082
 
285062
285083
  // src/commands/smart-contract-set/hardhat/script/local.ts
285063
285084
  function hardhatScriptLocalCommand() {
285064
285085
  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 }) => {
285086
+ intro("Running Hardhat script on local network");
285065
285087
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
285066
285088
  const { command, args } = await getPackageManagerExecutable();
285067
285089
  await executeCommand(command, [
@@ -285073,6 +285095,7 @@ function hardhatScriptLocalCommand() {
285073
285095
  "localhost",
285074
285096
  ...compile ? ["--no-compile"] : []
285075
285097
  ]);
285098
+ outro("Script execution completed successfully");
285076
285099
  });
285077
285100
  }
285078
285101
 
@@ -285080,6 +285103,7 @@ function hardhatScriptLocalCommand() {
285080
285103
  function hardhatScriptRemoteCommand() {
285081
285104
  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");
285082
285105
  cmd2.action(async ({ script, prod, blockchainNode: blockchainNodeUniqueName, acceptDefaults, compile }) => {
285106
+ intro("Running Hardhat script on remote network");
285083
285107
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
285084
285108
  const autoAccept = !!acceptDefaults || is_in_ci_default;
285085
285109
  const env2 = await loadEnv(false, !!prod);
@@ -285097,6 +285121,7 @@ function hardhatScriptRemoteCommand() {
285097
285121
  const envConfig = await settlemint.foundry.env(node.uniqueName);
285098
285122
  const { command, args } = await getPackageManagerExecutable();
285099
285123
  await executeCommand(command, [...args, "hardhat", "run", script, "--network", "btp", ...compile ? ["--no-compile"] : []], { env: envConfig });
285124
+ outro("Script execution completed successfully");
285100
285125
  });
285101
285126
  return cmd2;
285102
285127
  }
@@ -285129,10 +285154,12 @@ function hardhatTestCommand() {
285129
285154
  command: "scs hardhat test test/token.test.ts"
285130
285155
  }
285131
285156
  ])).helpOption(false).option("-h, --help", "Get list of possible hardhat test options").passThroughOptions().allowUnknownOption().action(async (options, cmd2) => {
285157
+ intro("Running smart contract tests using Hardhat");
285132
285158
  await validateIfRequiredPackagesAreInstalled(["hardhat"]);
285133
285159
  const hardhatOptions = mapPassthroughOptions(options, cmd2);
285134
285160
  const { command, args } = await getPackageManagerExecutable();
285135
285161
  await executeCommand(command, [...args, "hardhat", "test", ...hardhatOptions]);
285162
+ outro("Smart contract tests completed");
285136
285163
  });
285137
285164
  }
285138
285165
 
@@ -285301,6 +285328,7 @@ async function getNodeName({
285301
285328
  // src/commands/smart-contract-set/subgraph/build.ts
285302
285329
  function subgraphBuildCommand() {
285303
285330
  return new Command("build").description("Build the subgraph").action(async () => {
285331
+ intro("Building subgraph");
285304
285332
  await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
285305
285333
  await subgraphSetup({
285306
285334
  network: SETTLEMINT_NETWORK
@@ -285310,6 +285338,7 @@ function subgraphBuildCommand() {
285310
285338
  const cwd2 = dirname10(subgraphYamlFile);
285311
285339
  await executeCommand(command, [...args, "graph", "codegen", subgraphYamlFile], { cwd: cwd2 });
285312
285340
  await executeCommand(command, [...args, "graph", "build", subgraphYamlFile], { cwd: cwd2 });
285341
+ outro("Subgraph built successfully");
285313
285342
  });
285314
285343
  }
285315
285344
 
@@ -285317,6 +285346,7 @@ function subgraphBuildCommand() {
285317
285346
  import { dirname as dirname11 } from "node:path";
285318
285347
  function subgraphCodegenCommand() {
285319
285348
  return new Command("codegen").description("Codegen the subgraph types").action(async () => {
285349
+ intro("Generating subgraph types");
285320
285350
  await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
285321
285351
  await subgraphSetup({
285322
285352
  network: SETTLEMINT_NETWORK
@@ -285326,6 +285356,7 @@ function subgraphCodegenCommand() {
285326
285356
  await executeCommand(command, [...args, "graph", "codegen", subgraphYamlFile], {
285327
285357
  cwd: dirname11(subgraphYamlFile)
285328
285358
  });
285359
+ outro("Subgraph types generated successfully");
285329
285360
  });
285330
285361
  }
285331
285362
 
@@ -285376,6 +285407,7 @@ function subgraphDeployCommand() {
285376
285407
  command: "scs subgraph deploy my-subgraph"
285377
285408
  }
285378
285409
  ])).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 }) => {
285410
+ intro("Deploying subgraph");
285379
285411
  await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
285380
285412
  const autoAccept = !!acceptDefaults || is_in_ci_default;
285381
285413
  const env2 = await loadEnv(false, !!prod);
@@ -285444,6 +285476,7 @@ function subgraphDeployCommand() {
285444
285476
  SETTLEMINT_THEGRAPH: theGraphMiddleware.uniqueName,
285445
285477
  ...graphEndpoints
285446
285478
  });
285479
+ outro(`Subgraph ${graphName} deployed successfully`);
285447
285480
  });
285448
285481
  }
285449
285482
  async function updateSpecVersion(specVersion) {
@@ -285452,6 +285485,55 @@ async function updateSpecVersion(specVersion) {
285452
285485
  await updateSubgraphYamlConfig(yamlConfig);
285453
285486
  }
285454
285487
 
285488
+ // src/commands/smart-contract-set/subgraph/remove.ts
285489
+ import { dirname as dirname13 } from "node:path";
285490
+ function subgraphRemoveCommand() {
285491
+ return new Command("remove").description("Remove a subgraph").usage(createExamples([
285492
+ {
285493
+ description: "Remove a subgraph",
285494
+ command: "scs subgraph remove my-subgraph"
285495
+ }
285496
+ ])).option("-a, --accept-defaults", "Accept the default and previously set values").option("--prod", "Connect to your production environment").option("-f, --force", "Force remove the subgraph without confirmation").argument("<subgraph-name>", "The name of the subgraph to remove").action(async (subgraphName, { prod, acceptDefaults, force }) => {
285497
+ intro("Removing subgraph");
285498
+ await validateIfRequiredPackagesAreInstalled(["@graphprotocol/graph-cli"]);
285499
+ if (!force) {
285500
+ await deleteConfirmationPrompt(`the subgraph ${subgraphName}`);
285501
+ }
285502
+ const autoAccept = !!acceptDefaults || is_in_ci_default;
285503
+ const env2 = await loadEnv(false, !!prod);
285504
+ const instance = await instancePrompt(env2, true);
285505
+ const accessToken = await getApplicationOrPersonalAccessToken({
285506
+ env: env2,
285507
+ instance,
285508
+ prefer: "application"
285509
+ });
285510
+ const theGraphMiddleware = await getTheGraphMiddleware({ env: env2, instance, accessToken, autoAccept });
285511
+ if (!theGraphMiddleware) {
285512
+ return nothingSelectedError("graph middleware");
285513
+ }
285514
+ if (theGraphMiddleware.status !== "COMPLETED") {
285515
+ serviceNotRunningError("graph middleware", theGraphMiddleware.status);
285516
+ }
285517
+ const subgraphYamlFile = await getSubgraphYamlFile();
285518
+ const cwd2 = dirname13(subgraphYamlFile);
285519
+ const { command, args } = await getPackageManagerExecutable();
285520
+ const middlewareAdminUrl = new URL(`/${encodeURIComponent(accessToken)}/admin`, theGraphMiddleware.serviceUrl).toString();
285521
+ await executeCommand(command, [...args, "graph", "remove", "--node", middlewareAdminUrl, subgraphName]);
285522
+ const settlemintClient = createSettleMintClient({
285523
+ accessToken,
285524
+ instance
285525
+ });
285526
+ const middleware = await settlemintClient.middleware.read(theGraphMiddleware.uniqueName);
285527
+ const graphEndpoints = await getGraphEndpoint(settlemintClient, middleware);
285528
+ await writeEnvSpinner(!!prod, {
285529
+ ...env2,
285530
+ SETTLEMINT_THEGRAPH: theGraphMiddleware.uniqueName,
285531
+ ...graphEndpoints
285532
+ });
285533
+ outro(`Subgraph ${subgraphName} removed successfully`);
285534
+ });
285535
+ }
285536
+
285455
285537
  // src/commands/smart-contract.set.ts
285456
285538
  function smartContractSetCommand() {
285457
285539
  const foundry = new Command("foundry").alias("f").description("Foundry commands for building and testing smart contracts");
@@ -285469,6 +285551,7 @@ function smartContractSetCommand() {
285469
285551
  subgraph.addCommand(subgraphBuildCommand());
285470
285552
  subgraph.addCommand(subgraphCodegenCommand());
285471
285553
  subgraph.addCommand(subgraphDeployCommand());
285554
+ subgraph.addCommand(subgraphRemoveCommand());
285472
285555
  return new Command("smart-contract-set").alias("scs").description("Manage smart contract sets and subgraphs").addCommand(createCommand4()).addCommand(foundry).addCommand(hardhat).addCommand(subgraph);
285473
285556
  }
285474
285557
 
@@ -285526,12 +285609,22 @@ function addHooksToCommand(cmd2, rootCmd, argv) {
285526
285609
  addHooksToCommand(subcmd, rootCmd, argv);
285527
285610
  }
285528
285611
  }
285612
+ var ERRORS_TO_IGNORE = [ExitPromptError, AbortPromptError, ValidationError, CancelPromptError];
285613
+ var ERROR_CODES_TO_IGNORE = [
285614
+ "commander.help",
285615
+ "commander.missingArgument",
285616
+ "commander.optionMissingArgument",
285617
+ "commander.missingMandatoryOptionValue",
285618
+ "commander.conflictingOption",
285619
+ "commander.unknownOption",
285620
+ "commander.excessArguments",
285621
+ "commander.unknownCommand"
285622
+ ];
285529
285623
  async function onError(sdkcli, argv, error5) {
285530
- const errorsToIgnore = [ExitPromptError, AbortPromptError, ValidationError, CancelPromptError];
285531
- if (errorsToIgnore.some((errorToIgnore) => error5 instanceof errorToIgnore)) {
285624
+ if (ERRORS_TO_IGNORE.some((errorToIgnore) => error5 instanceof errorToIgnore)) {
285532
285625
  process.exit(0);
285533
285626
  }
285534
- if (error5 instanceof CommanderError && (error5.exitCode === 0 || error5.code === "commander.help")) {
285627
+ if (error5 instanceof CommanderError && (error5.exitCode === 0 || ERROR_CODES_TO_IGNORE.includes(error5.code))) {
285535
285628
  process.exit(error5.exitCode);
285536
285629
  }
285537
285630
  if (!(error5 instanceof CancelError2 || error5 instanceof SpinnerError)) {
@@ -285552,7 +285645,7 @@ ${error5.stack}`));
285552
285645
  }
285553
285646
  function registerCommands() {
285554
285647
  const sdkcli = new Command;
285555
- sdkcli.name("settlemint").usage("[command]").description(`CLI for SettleMint (v${package_default.version})`).version(package_default.version, "-v, --version", "Output the current version").helpOption("-h, --help", "Display help for command").allowUnknownOption().showSuggestionAfterError(true).showHelpAfterError();
285648
+ sdkcli.name("settlemint").usage("[command]").description(`CLI for SettleMint (v${package_default.version})`).version(package_default.version, "-v, --version", "Output the current version").helpOption("-h, --help", "Display help for command").allowUnknownOption().showSuggestionAfterError(true).showHelpAfterError().passThroughOptions();
285556
285649
  sdkcli.addCommand(connectCommand());
285557
285650
  sdkcli.addCommand(codegenCommand());
285558
285651
  sdkcli.addCommand(platformCommand());
@@ -285580,4 +285673,4 @@ async function sdkCliCommand(argv = process.argv) {
285580
285673
  // src/cli.ts
285581
285674
  sdkCliCommand();
285582
285675
 
285583
- //# debugId=EF0DBD16ED18AB1064756E2164756E21
285676
+ //# debugId=CCFFFD96B2D903CD64756E2164756E21