@settlemint/sdk-cli 2.1.4-pr66a97677 → 2.1.4-pr6b1dbf80

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.
Files changed (3) hide show
  1. package/dist/cli.js +289 -65
  2. package/dist/cli.js.map +24 -22
  3. package/package.json +3 -3
package/dist/cli.js CHANGED
@@ -4157,7 +4157,7 @@ var require_webcrypto = __commonJS((exports) => {
4157
4157
  exports.gcm = /* @__PURE__ */ (() => generate(mode.GCM))();
4158
4158
  });
4159
4159
 
4160
- // ../../node_modules/@noble/hashes/_assert.js
4160
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/_assert.js
4161
4161
  var require__assert2 = __commonJS((exports) => {
4162
4162
  Object.defineProperty(exports, "__esModule", { value: true });
4163
4163
  exports.anumber = anumber;
@@ -4199,7 +4199,7 @@ var require__assert2 = __commonJS((exports) => {
4199
4199
  }
4200
4200
  });
4201
4201
 
4202
- // ../../node_modules/@noble/hashes/cryptoNode.js
4202
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/cryptoNode.js
4203
4203
  var require_cryptoNode2 = __commonJS((exports) => {
4204
4204
  Object.defineProperty(exports, "__esModule", { value: true });
4205
4205
  exports.crypto = undefined;
@@ -4207,7 +4207,7 @@ var require_cryptoNode2 = __commonJS((exports) => {
4207
4207
  exports.crypto = nc && typeof nc === "object" && "webcrypto" in nc ? nc.webcrypto : nc && typeof nc === "object" && ("randomBytes" in nc) ? nc : undefined;
4208
4208
  });
4209
4209
 
4210
- // ../../node_modules/@noble/hashes/utils.js
4210
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/utils.js
4211
4211
  var require_utils4 = __commonJS((exports) => {
4212
4212
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
4213
4213
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -4386,7 +4386,7 @@ var require_utils4 = __commonJS((exports) => {
4386
4386
  }
4387
4387
  });
4388
4388
 
4389
- // ../../node_modules/@noble/hashes/_md.js
4389
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/_md.js
4390
4390
  var require__md = __commonJS((exports) => {
4391
4391
  Object.defineProperty(exports, "__esModule", { value: true });
4392
4392
  exports.HashMD = undefined;
@@ -4503,7 +4503,7 @@ var require__md = __commonJS((exports) => {
4503
4503
  exports.HashMD = HashMD;
4504
4504
  });
4505
4505
 
4506
- // ../../node_modules/@noble/hashes/_u64.js
4506
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/_u64.js
4507
4507
  var require__u64 = __commonJS((exports) => {
4508
4508
  Object.defineProperty(exports, "__esModule", { value: true });
4509
4509
  exports.add5L = exports.add5H = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = undefined;
@@ -4595,7 +4595,7 @@ var require__u64 = __commonJS((exports) => {
4595
4595
  exports.default = u64;
4596
4596
  });
4597
4597
 
4598
- // ../../node_modules/@noble/hashes/sha512.js
4598
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/sha512.js
4599
4599
  var require_sha512 = __commonJS((exports) => {
4600
4600
  Object.defineProperty(exports, "__esModule", { value: true });
4601
4601
  exports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA384 = exports.SHA512_256 = exports.SHA512_224 = exports.SHA512 = undefined;
@@ -4876,7 +4876,7 @@ var require_sha512 = __commonJS((exports) => {
4876
4876
  exports.sha384 = (0, utils_js_1.wrapConstructor)(() => new SHA384);
4877
4877
  });
4878
4878
 
4879
- // ../../node_modules/@noble/curves/abstract/utils.js
4879
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/utils.js
4880
4880
  var require_utils5 = __commonJS((exports) => {
4881
4881
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
4882
4882
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -5146,7 +5146,7 @@ var require_utils5 = __commonJS((exports) => {
5146
5146
  }
5147
5147
  });
5148
5148
 
5149
- // ../../node_modules/@noble/curves/abstract/modular.js
5149
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/modular.js
5150
5150
  var require_modular = __commonJS((exports) => {
5151
5151
  Object.defineProperty(exports, "__esModule", { value: true });
5152
5152
  exports.isNegativeLE = undefined;
@@ -5481,7 +5481,7 @@ var require_modular = __commonJS((exports) => {
5481
5481
  }
5482
5482
  });
5483
5483
 
5484
- // ../../node_modules/@noble/curves/abstract/curve.js
5484
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/curve.js
5485
5485
  var require_curve = __commonJS((exports) => {
5486
5486
  Object.defineProperty(exports, "__esModule", { value: true });
5487
5487
  exports.wNAF = wNAF;
@@ -5723,7 +5723,7 @@ var require_curve = __commonJS((exports) => {
5723
5723
  }
5724
5724
  });
5725
5725
 
5726
- // ../../node_modules/@noble/curves/abstract/edwards.js
5726
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/edwards.js
5727
5727
  var require_edwards = __commonJS((exports) => {
5728
5728
  Object.defineProperty(exports, "__esModule", { value: true });
5729
5729
  exports.twistedEdwards = twistedEdwards;
@@ -6085,7 +6085,7 @@ var require_edwards = __commonJS((exports) => {
6085
6085
  }
6086
6086
  });
6087
6087
 
6088
- // ../../node_modules/@noble/curves/abstract/hash-to-curve.js
6088
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/hash-to-curve.js
6089
6089
  var require_hash_to_curve = __commonJS((exports) => {
6090
6090
  Object.defineProperty(exports, "__esModule", { value: true });
6091
6091
  exports.expand_message_xmd = expand_message_xmd;
@@ -6232,7 +6232,7 @@ var require_hash_to_curve = __commonJS((exports) => {
6232
6232
  }
6233
6233
  });
6234
6234
 
6235
- // ../../node_modules/@noble/curves/abstract/montgomery.js
6235
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/montgomery.js
6236
6236
  var require_montgomery = __commonJS((exports) => {
6237
6237
  Object.defineProperty(exports, "__esModule", { value: true });
6238
6238
  exports.montgomery = montgomery;
@@ -6357,7 +6357,7 @@ var require_montgomery = __commonJS((exports) => {
6357
6357
  }
6358
6358
  });
6359
6359
 
6360
- // ../../node_modules/@noble/curves/ed25519.js
6360
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/ed25519.js
6361
6361
  var require_ed25519 = __commonJS((exports) => {
6362
6362
  Object.defineProperty(exports, "__esModule", { value: true });
6363
6363
  exports.hash_to_ristretto255 = exports.hashToRistretto255 = exports.RistrettoPoint = exports.encodeToCurve = exports.hashToCurve = exports.edwardsToMontgomery = exports.x25519 = exports.ed25519ph = exports.ed25519ctx = exports.ed25519 = exports.ED25519_TORSION_SUBGROUP = undefined;
@@ -6724,7 +6724,7 @@ var require_ed25519 = __commonJS((exports) => {
6724
6724
  exports.hash_to_ristretto255 = exports.hashToRistretto255;
6725
6725
  });
6726
6726
 
6727
- // ../../node_modules/@noble/hashes/sha256.js
6727
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/sha256.js
6728
6728
  var require_sha256 = __commonJS((exports) => {
6729
6729
  Object.defineProperty(exports, "__esModule", { value: true });
6730
6730
  exports.sha224 = exports.sha256 = exports.SHA256 = undefined;
@@ -6897,7 +6897,7 @@ var require_sha256 = __commonJS((exports) => {
6897
6897
  exports.sha224 = (0, utils_js_1.wrapConstructor)(() => new SHA224);
6898
6898
  });
6899
6899
 
6900
- // ../../node_modules/@noble/hashes/hmac.js
6900
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/hmac.js
6901
6901
  var require_hmac = __commonJS((exports) => {
6902
6902
  Object.defineProperty(exports, "__esModule", { value: true });
6903
6903
  exports.hmac = exports.HMAC = undefined;
@@ -6971,7 +6971,7 @@ var require_hmac = __commonJS((exports) => {
6971
6971
  exports.hmac.create = (hash, key) => new HMAC(hash, key);
6972
6972
  });
6973
6973
 
6974
- // ../../node_modules/@noble/curves/abstract/weierstrass.js
6974
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/abstract/weierstrass.js
6975
6975
  var require_weierstrass = __commonJS((exports) => {
6976
6976
  Object.defineProperty(exports, "__esModule", { value: true });
6977
6977
  exports.DER = exports.DERErr = undefined;
@@ -7878,7 +7878,7 @@ var require_weierstrass = __commonJS((exports) => {
7878
7878
  }
7879
7879
  });
7880
7880
 
7881
- // ../../node_modules/@noble/curves/_shortw_utils.js
7881
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/_shortw_utils.js
7882
7882
  var require__shortw_utils = __commonJS((exports) => {
7883
7883
  Object.defineProperty(exports, "__esModule", { value: true });
7884
7884
  exports.getHash = getHash;
@@ -7900,7 +7900,7 @@ var require__shortw_utils = __commonJS((exports) => {
7900
7900
  }
7901
7901
  });
7902
7902
 
7903
- // ../../node_modules/@noble/curves/secp256k1.js
7903
+ // ../../node_modules/eciesjs/node_modules/@noble/curves/secp256k1.js
7904
7904
  var require_secp256k1 = __commonJS((exports) => {
7905
7905
  Object.defineProperty(exports, "__esModule", { value: true });
7906
7906
  exports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.secp256k1 = undefined;
@@ -8226,7 +8226,7 @@ var require_elliptic = __commonJS((exports) => {
8226
8226
  };
8227
8227
  });
8228
8228
 
8229
- // ../../node_modules/@noble/hashes/hkdf.js
8229
+ // ../../node_modules/eciesjs/node_modules/@noble/hashes/hkdf.js
8230
8230
  var require_hkdf = __commonJS((exports) => {
8231
8231
  Object.defineProperty(exports, "__esModule", { value: true });
8232
8232
  exports.hkdf = undefined;
@@ -245084,8 +245084,11 @@ var DotEnvSchema = z.object({
245084
245084
  SETTLEMINT_WORKSPACE: UniqueNameSchema.optional(),
245085
245085
  SETTLEMINT_APPLICATION: UniqueNameSchema.optional(),
245086
245086
  SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema.optional(),
245087
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: z.string().optional(),
245087
245088
  SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema.optional(),
245089
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: UrlSchema.optional(),
245088
245090
  SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: UniqueNameSchema.optional(),
245091
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: UrlSchema.optional(),
245089
245092
  SETTLEMINT_HASURA: UniqueNameSchema.optional(),
245090
245093
  SETTLEMINT_HASURA_ENDPOINT: UrlSchema.optional(),
245091
245094
  SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),
@@ -245278,7 +245281,7 @@ function pruneCurrentEnv(currentEnv, env2) {
245278
245281
  var package_default = {
245279
245282
  name: "@settlemint/sdk-cli",
245280
245283
  description: "Command-line interface for SettleMint SDK, providing development tools and project management capabilities",
245281
- version: "2.1.4-pr66a97677",
245284
+ version: "2.1.4-pr6b1dbf80",
245282
245285
  type: "module",
245283
245286
  private: false,
245284
245287
  license: "FSL-1.1-MIT",
@@ -245327,8 +245330,8 @@ var package_default = {
245327
245330
  "@inquirer/input": "4.1.9",
245328
245331
  "@inquirer/password": "4.0.12",
245329
245332
  "@inquirer/select": "4.1.1",
245330
- "@settlemint/sdk-js": "2.1.4-pr66a97677",
245331
- "@settlemint/sdk-utils": "2.1.4-pr66a97677",
245333
+ "@settlemint/sdk-js": "2.1.4-pr6b1dbf80",
245334
+ "@settlemint/sdk-utils": "2.1.4-pr6b1dbf80",
245332
245335
  "@types/node": "22.14.1",
245333
245336
  "@types/semver": "7.7.0",
245334
245337
  "@types/which": "3.0.4",
@@ -246741,8 +246744,11 @@ var DotEnvSchema2 = z.object({
246741
246744
  SETTLEMINT_WORKSPACE: UniqueNameSchema2.optional(),
246742
246745
  SETTLEMINT_APPLICATION: UniqueNameSchema2.optional(),
246743
246746
  SETTLEMINT_BLOCKCHAIN_NETWORK: UniqueNameSchema2.optional(),
246747
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: z.string().optional(),
246744
246748
  SETTLEMINT_BLOCKCHAIN_NODE: UniqueNameSchema2.optional(),
246749
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: UrlSchema2.optional(),
246745
246750
  SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: UniqueNameSchema2.optional(),
246751
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: UrlSchema2.optional(),
246746
246752
  SETTLEMINT_HASURA: UniqueNameSchema2.optional(),
246747
246753
  SETTLEMINT_HASURA_ENDPOINT: UrlSchema2.optional(),
246748
246754
  SETTLEMINT_HASURA_ADMIN_SECRET: z.string().optional(),
@@ -247641,11 +247647,61 @@ var BlockchainNetworkFragment = graphql(`
247641
247647
  healthStatus
247642
247648
  provider
247643
247649
  region
247650
+ ... on BesuQBFTBlockchainNetwork {
247651
+ chainId
247652
+ }
247653
+ ... on BesuIbftv2BlockchainNetwork {
247654
+ chainId
247655
+ }
247656
+ ... on GethPoWBlockchainNetwork {
247657
+ chainId
247658
+ }
247659
+ ... on GethPoSRinkebyBlockchainNetwork {
247660
+ chainId
247661
+ }
247662
+ ... on GethVenidiumBlockchainNetwork {
247663
+ chainId
247664
+ }
247665
+ ... on GethGoerliBlockchainNetwork {
247666
+ chainId
247667
+ }
247668
+ ... on AvalancheBlockchainNetwork {
247669
+ chainId
247670
+ }
247671
+ ... on AvalancheFujiBlockchainNetwork {
247672
+ chainId
247673
+ }
247674
+ ... on BscPoWBlockchainNetwork {
247675
+ chainId
247676
+ }
247677
+ ... on BscPoWTestnetBlockchainNetwork {
247678
+ chainId
247679
+ }
247680
+ ... on PolygonBlockchainNetwork {
247681
+ chainId
247682
+ }
247683
+ ... on PolygonMumbaiBlockchainNetwork {
247684
+ chainId
247685
+ }
247686
+ ... on PolygonEdgePoABlockchainNetwork {
247687
+ chainId
247688
+ }
247689
+ ... on QuorumQBFTBlockchainNetwork {
247690
+ chainId
247691
+ }
247692
+ ... on GethCliqueBlockchainNetwork {
247693
+ chainId
247694
+ }
247644
247695
  blockchainNodes {
247645
247696
  ... on BlockchainNode {
247646
247697
  id
247647
247698
  name
247648
247699
  uniqueName
247700
+ endpoints {
247701
+ id
247702
+ label
247703
+ displayValue
247704
+ }
247649
247705
  }
247650
247706
  }
247651
247707
  }
@@ -247807,6 +247863,51 @@ var BlockchainNodeFragment = graphql(`
247807
247863
  id
247808
247864
  name
247809
247865
  uniqueName
247866
+ ... on BesuQBFTBlockchainNetwork {
247867
+ chainId
247868
+ }
247869
+ ... on BesuIbftv2BlockchainNetwork {
247870
+ chainId
247871
+ }
247872
+ ... on GethPoWBlockchainNetwork {
247873
+ chainId
247874
+ }
247875
+ ... on GethPoSRinkebyBlockchainNetwork {
247876
+ chainId
247877
+ }
247878
+ ... on GethVenidiumBlockchainNetwork {
247879
+ chainId
247880
+ }
247881
+ ... on GethGoerliBlockchainNetwork {
247882
+ chainId
247883
+ }
247884
+ ... on AvalancheBlockchainNetwork {
247885
+ chainId
247886
+ }
247887
+ ... on AvalancheFujiBlockchainNetwork {
247888
+ chainId
247889
+ }
247890
+ ... on BscPoWBlockchainNetwork {
247891
+ chainId
247892
+ }
247893
+ ... on BscPoWTestnetBlockchainNetwork {
247894
+ chainId
247895
+ }
247896
+ ... on PolygonBlockchainNetwork {
247897
+ chainId
247898
+ }
247899
+ ... on PolygonMumbaiBlockchainNetwork {
247900
+ chainId
247901
+ }
247902
+ ... on PolygonEdgePoABlockchainNetwork {
247903
+ chainId
247904
+ }
247905
+ ... on QuorumQBFTBlockchainNetwork {
247906
+ chainId
247907
+ }
247908
+ ... on GethCliqueBlockchainNetwork {
247909
+ chainId
247910
+ }
247810
247911
  }
247811
247912
  }
247812
247913
  privateKeys {
@@ -248050,6 +248151,11 @@ var LoadBalancerFragment = graphql(`
248050
248151
  healthStatus
248051
248152
  provider
248052
248153
  region
248154
+ endpoints {
248155
+ id
248156
+ label
248157
+ displayValue
248158
+ }
248053
248159
  }
248054
248160
  `);
248055
248161
  var getLoadBalancer = graphql(`
@@ -250219,7 +250325,7 @@ export const postgresPool = createPostgresPool(process.env.SETTLEMINT_HASURA_DAT
250219
250325
  await installDependencies(PACKAGE_NAME, projectDir);
250220
250326
  }
250221
250327
  if (!databaseUrl) {
250222
- console.warn("[Codegen] Missing database environment variables");
250328
+ note("[Codegen] Missing database environment variables", "warn");
250223
250329
  }
250224
250330
  }
250225
250331
 
@@ -251776,6 +251882,7 @@ async function codegenBlockscout(env2) {
251776
251882
  __schema {
251777
251883
  queryType { name }
251778
251884
  mutationType { name }
251885
+ subscriptionType { name }
251779
251886
  types {
251780
251887
  ...FullType
251781
251888
  }
@@ -251857,10 +251964,6 @@ async function codegenBlockscout(env2) {
251857
251964
  ofType {
251858
251965
  kind
251859
251966
  name
251860
- ofType {
251861
- kind
251862
- name
251863
- }
251864
251967
  }
251865
251968
  }
251866
251969
  }
@@ -251978,9 +252081,73 @@ export const { client } = createServerMinioClient({
251978
252081
  }
251979
252082
  }
251980
252083
 
252084
+ // src/commands/codegen/codegen-viem.ts
252085
+ var PACKAGE_NAME7 = "@settlemint/sdk-viem";
252086
+ async function codegenViem(env2) {
252087
+ const chainId = env2.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID;
252088
+ if (!chainId) {
252089
+ note("[Codegen] No chain ID found, skipping Viem resources generation", "warn");
252090
+ return;
252091
+ }
252092
+ const loadBalancerRpcEndpoint = env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT;
252093
+ const blockchainNodeRpcEndpoint = env2.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT;
252094
+ if (!loadBalancerRpcEndpoint && !blockchainNodeRpcEndpoint) {
252095
+ note("[Codegen] No RPC endpoints found, skipping Viem resources generation", "warn");
252096
+ return;
252097
+ }
252098
+ note("Generating Viem resources");
252099
+ const projectDir = await projectRoot3();
252100
+ if (!await isPackageInstalled(PACKAGE_NAME7, projectDir)) {
252101
+ await installDependencies(PACKAGE_NAME7, projectDir);
252102
+ }
252103
+ const imports = [];
252104
+ if (loadBalancerRpcEndpoint) {
252105
+ imports.push("getPublicClient");
252106
+ }
252107
+ if (blockchainNodeRpcEndpoint) {
252108
+ imports.push("getWalletClient");
252109
+ }
252110
+ const viemTemplate = [`import { ${imports.join(", ")} } from "${PACKAGE_NAME7}";`];
252111
+ if (loadBalancerRpcEndpoint) {
252112
+ viemTemplate.push(`
252113
+ /**
252114
+ * The public client. Use this if you need to read from the blockchain.
252115
+ */
252116
+ export const publicClient = getPublicClient({
252117
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252118
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252119
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT!,
252120
+ });`);
252121
+ }
252122
+ if (blockchainNodeRpcEndpoint) {
252123
+ viemTemplate.push(`
252124
+ /**
252125
+ * The wallet client. Use this if you need to write to the blockchain.
252126
+ */
252127
+ export const walletClient = getWalletClient({
252128
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252129
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252130
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT!,
252131
+ })();
252132
+
252133
+ /**
252134
+ * The wallet client for HD wallets. Use this if you need to write to the blockchain.
252135
+ * HD wallets require a challenge response to be sent with the request.
252136
+ */
252137
+ export const hdWalletClient = getWalletClient({
252138
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252139
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252140
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT!,
252141
+ });`);
252142
+ }
252143
+ await writeTemplate(viemTemplate.join(`
252144
+ `), "/lib/settlemint", "viem.ts");
252145
+ note("Viem resources generated successfully");
252146
+ }
252147
+
251981
252148
  // src/commands/codegen.ts
251982
252149
  function codegenCommand() {
251983
- return new Command("codegen").option("--prod", "Connect to your production environment").option("--thegraph-subgraph-names <subgraph-names...>", "The name(s) of the TheGraph subgraph(s) to generate (skip if you want to generate all)").description("Generate GraphQL and REST types and queries").usage(createExamples([
252150
+ return new Command("codegen").option("--prod", "Connect to your production environment").option("--thegraph-subgraph-names <subgraph-names...>", "The name(s) of the TheGraph subgraph(s) to generate (skip if you want to generate all)").option("--generate-viem", "Generate Viem resources").description("Generate GraphQL and REST types and queries").usage(createExamples([
251984
252151
  {
251985
252152
  description: "Generate GraphQL types and queries for your dApp",
251986
252153
  command: "codegen"
@@ -251988,8 +252155,12 @@ function codegenCommand() {
251988
252155
  {
251989
252156
  description: "Generate GraphQL types and queries for specific TheGraph subgraphs",
251990
252157
  command: "codegen --thegraph-subgraph-names subgraph1 subgraph2"
252158
+ },
252159
+ {
252160
+ description: "Generate Viem resources",
252161
+ command: "codegen --generate-viem"
251991
252162
  }
251992
- ])).action(async ({ prod, thegraphSubgraphNames }) => {
252163
+ ])).action(async ({ prod, thegraphSubgraphNames, generateViem }) => {
251993
252164
  intro("Generating GraphQL types and queries for your dApp");
251994
252165
  const env2 = await loadEnv(true, !!prod);
251995
252166
  if (!Array.isArray(thegraphSubgraphNames)) {
@@ -252007,6 +252178,9 @@ function codegenCommand() {
252007
252178
  },
252008
252179
  stopMessage: "Tested GraphQL schemas"
252009
252180
  });
252181
+ if (generateViem) {
252182
+ await codegenViem(env2);
252183
+ }
252010
252184
  if (hasura) {
252011
252185
  note("Generating Hasura resources");
252012
252186
  await codegenHasura(env2);
@@ -252285,6 +252459,9 @@ async function servicePrompt({
252285
252459
  }
252286
252460
  const selectedService = services.find((service) => Array.isArray(service) ? false : service.uniqueName === env2[envKey]);
252287
252461
  const autoAccept = isCi || accept;
252462
+ if (autoAccept && allowAll) {
252463
+ return services;
252464
+ }
252288
252465
  if (autoAccept && selectedService) {
252289
252466
  return selectedService;
252290
252467
  }
@@ -252319,6 +252496,21 @@ async function servicePrompt({
252319
252496
  });
252320
252497
  }
252321
252498
 
252499
+ // src/utils/cluster-service.ts
252500
+ function isValidPrivateKey(privateKey) {
252501
+ return privateKey.privateKeyType !== "HD_ECDSA_P256";
252502
+ }
252503
+ function hasValidPrivateKey(service) {
252504
+ return (service.privateKeys ?? []).some(isValidPrivateKey);
252505
+ }
252506
+ function hasPrivateKey(service) {
252507
+ const keys = service.privateKeys ?? [];
252508
+ return keys.length > 0;
252509
+ }
252510
+ function isRunning(service) {
252511
+ return service === undefined || service?.status === "COMPLETED";
252512
+ }
252513
+
252322
252514
  // src/prompts/cluster-service/blockchain-node.prompt.ts
252323
252515
  async function blockchainNodePrompt({
252324
252516
  env: env2,
@@ -252338,12 +252530,12 @@ async function blockchainNodePrompt({
252338
252530
  isRequired,
252339
252531
  defaultHandler: async ({ defaultService: defaultNode, choices }) => {
252340
252532
  const filteredChoices = filterRunningOnly ? choices.filter(({ value: node }) => {
252341
- return Array.isArray(node) ? true : node === undefined || node?.status === "COMPLETED";
252533
+ return Array.isArray(node) ? true : isRunning(node);
252342
252534
  }).map((item) => {
252343
252535
  if (Array.isArray(item.value)) {
252344
252536
  return {
252345
252537
  ...item,
252346
- value: item.value.filter((n6) => n6 === undefined || n6.status === "COMPLETED")
252538
+ value: item.value.filter(isRunning)
252347
252539
  };
252348
252540
  }
252349
252541
  return item;
@@ -252721,8 +252913,11 @@ async function writeEnvSpinner(prod, env2) {
252721
252913
  SETTLEMINT_WORKSPACE: env2.SETTLEMINT_WORKSPACE,
252722
252914
  SETTLEMINT_APPLICATION: env2.SETTLEMINT_APPLICATION,
252723
252915
  SETTLEMINT_BLOCKCHAIN_NETWORK: env2.SETTLEMINT_BLOCKCHAIN_NETWORK,
252916
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: env2.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID,
252724
252917
  SETTLEMINT_BLOCKCHAIN_NODE: env2.SETTLEMINT_BLOCKCHAIN_NODE,
252918
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: env2.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT,
252725
252919
  SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER,
252920
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT,
252726
252921
  SETTLEMINT_HASURA: env2.SETTLEMINT_HASURA,
252727
252922
  SETTLEMINT_HASURA_ENDPOINT: env2.SETTLEMINT_HASURA_ENDPOINT,
252728
252923
  SETTLEMINT_THEGRAPH: env2.SETTLEMINT_THEGRAPH,
@@ -252757,6 +252952,14 @@ async function writeEnvSpinner(prod, env2) {
252757
252952
  });
252758
252953
  }
252759
252954
 
252955
+ // src/utils/blockchain-network.ts
252956
+ function getBlockchainNetworkChainId(blockchainNetwork) {
252957
+ if (!blockchainNetwork) {
252958
+ return;
252959
+ }
252960
+ return "chainId" in blockchainNetwork && typeof blockchainNetwork.chainId === "number" ? blockchainNetwork.chainId.toString() : undefined;
252961
+ }
252962
+
252760
252963
  // src/utils/get-cluster-service-endpoint.ts
252761
252964
  async function getGraphEndpoint(settlemint, service, graphName) {
252762
252965
  if (!service || service.__typename !== "HAGraphMiddleware") {
@@ -252830,6 +253033,22 @@ function getMinioEndpoints(service) {
252830
253033
  SETTLEMINT_MINIO_SECRET_KEY: service?.credentials.find((credential) => credential.id.includes("secret-key"))?.displayValue
252831
253034
  };
252832
253035
  }
253036
+ function getBlockchainNodeEndpoints(service) {
253037
+ if (!service) {
253038
+ return {};
253039
+ }
253040
+ return {
253041
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: service.endpoints.find((endpoint) => endpoint.id.includes("json-rpc"))?.displayValue
253042
+ };
253043
+ }
253044
+ function getBlockchainNodeOrLoadBalancerEndpoints(service) {
253045
+ if (!service) {
253046
+ return {};
253047
+ }
253048
+ return {
253049
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT: service.endpoints.find((endpoint) => endpoint.id.includes("json-rpc"))?.displayValue
253050
+ };
253051
+ }
252833
253052
 
252834
253053
  // src/prompts/cluster-service/blockchain-node-or-load-balancer.prompt.ts
252835
253054
  async function blockchainNodeOrLoadBalancerPrompt({
@@ -252844,7 +253063,7 @@ async function blockchainNodeOrLoadBalancerPrompt({
252844
253063
  }) {
252845
253064
  return servicePrompt({
252846
253065
  env: env2,
252847
- services: [...nodes, ...loadBalancers],
253066
+ services: [...loadBalancers, ...nodes],
252848
253067
  accept,
252849
253068
  envKey: "SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER",
252850
253069
  isRequired,
@@ -252889,20 +253108,20 @@ function connectCommand() {
252889
253108
  blockchainNodes,
252890
253109
  loadBalancers
252891
253110
  } = await servicesSpinner(settlemint, application.uniqueName);
252892
- const nodesWithPrivateKey = blockchainNodes.filter((node) => node && ("privateKeys" in node) ? Array.isArray(node?.privateKeys) && node?.privateKeys?.length > 0 : false);
253111
+ const nodesWithPrivateKey = blockchainNodes.filter(hasPrivateKey);
252893
253112
  const blockchainNode = await blockchainNodePrompt({
252894
253113
  env: env2,
252895
253114
  nodes: nodesWithPrivateKey,
252896
253115
  accept: acceptDefaults,
252897
- promptMessage: "Which blockchain node do you want to SEND unsigned transactions from?"
253116
+ promptMessage: "Which blockchain node do you want to use for sending transactions?"
252898
253117
  });
252899
- const nodesWithoutPrivateKey = blockchainNodes.filter((node) => node && ("privateKeys" in node) ? !Array.isArray(node?.privateKeys) || node?.privateKeys?.length === 0 : true);
253118
+ const nodesWithoutPrivateKey = blockchainNodes.filter((node) => !hasPrivateKey(node));
252900
253119
  const loadBalancerOrBlockchainNode = await blockchainNodeOrLoadBalancerPrompt({
252901
253120
  env: env2,
252902
253121
  nodes: nodesWithoutPrivateKey,
252903
253122
  loadBalancers,
252904
253123
  accept: acceptDefaults,
252905
- promptMessage: "Which blockchain node or load balancer do you want to READ/WRITE from/to? Transactions should be signed before sending to this node or load balancer"
253124
+ promptMessage: "Which load balancer or blockchain node do you want to use for read operations?"
252906
253125
  });
252907
253126
  const hasura = await hasuraPrompt({
252908
253127
  env: env2,
@@ -252968,12 +253187,12 @@ function connectCommand() {
252968
253187
  uniqueName: blockchainNode.blockchainNetwork?.uniqueName
252969
253188
  },
252970
253189
  blockchainNode && {
252971
- type: "Blockchain Node",
253190
+ type: "Blockchain Node (use for sending transactions)",
252972
253191
  name: blockchainNode.name,
252973
253192
  uniqueName: blockchainNode.uniqueName
252974
253193
  },
252975
253194
  loadBalancerOrBlockchainNode && {
252976
- type: "Blockchain Node or Load Balancer (signed transactions only)",
253195
+ type: "Load Balancer or Blockchain Node (use for read operations)",
252977
253196
  name: loadBalancerOrBlockchainNode.name,
252978
253197
  uniqueName: loadBalancerOrBlockchainNode.uniqueName
252979
253198
  },
@@ -253026,8 +253245,11 @@ function connectCommand() {
253026
253245
  SETTLEMINT_WORKSPACE: workspace.uniqueName,
253027
253246
  SETTLEMINT_APPLICATION: application.uniqueName,
253028
253247
  SETTLEMINT_BLOCKCHAIN_NETWORK: blockchainNode?.blockchainNetwork?.uniqueName,
253248
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: getBlockchainNetworkChainId(blockchainNode?.blockchainNetwork),
253029
253249
  SETTLEMINT_BLOCKCHAIN_NODE: blockchainNode?.uniqueName,
253250
+ ...getBlockchainNodeEndpoints(blockchainNode),
253030
253251
  SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: loadBalancerOrBlockchainNode?.uniqueName,
253252
+ ...getBlockchainNodeOrLoadBalancerEndpoints(loadBalancerOrBlockchainNode),
253031
253253
  SETTLEMINT_HASURA: hasura?.uniqueName,
253032
253254
  ...getHasuraEndpoints(hasura),
253033
253255
  SETTLEMINT_THEGRAPH: thegraph?.uniqueName,
@@ -256894,7 +257116,10 @@ function getCreateCommand({
256894
257116
  usePersonalAccessToken = true,
256895
257117
  requiresDeployment = true
256896
257118
  }) {
256897
- const cmd2 = new Command(sanitizeCommandName(name3)).alias(alias).description(`Create a new ${subType ? `${subType} ${type4}` : type4} in the SettleMint platform.`).usage(createExamples(examples)).argument("<name>", `The ${subType ? `${subType} ${type4}` : type4} name`).option("-a, --accept-defaults", "Accept the default values").option("-d, --default", `Save as default ${type4}`).option("--prod", "Connect to production environment");
257119
+ const cmd2 = new Command(sanitizeCommandName(name3)).description(`Create a new ${subType ? `${subType} ${type4}` : type4} in the SettleMint platform.`).usage(createExamples(examples)).argument("<name>", `The ${subType ? `${subType} ${type4}` : type4} name`).option("-a, --accept-defaults", "Accept the default values").option("-d, --default", `Save as default ${type4}`).option("--prod", "Connect to production environment");
257120
+ if (alias) {
257121
+ cmd2.alias(alias);
257122
+ }
256898
257123
  if (requiresDeployment) {
256899
257124
  cmd2.option("-w, --wait", "Wait until deployed").option("-r, --restart-if-timeout", "Restart if wait time is exceeded");
256900
257125
  }
@@ -256964,7 +257189,10 @@ function getCreateCommand({
256964
257189
  newEnv.SETTLEMINT_WORKSPACE = (await settlemint.application.read(updatedEnv.SETTLEMINT_APPLICATION)).workspace.uniqueName;
256965
257190
  }
256966
257191
  if (newEnv.SETTLEMINT_BLOCKCHAIN_NODE && newEnv.SETTLEMINT_BLOCKCHAIN_NODE !== env2.SETTLEMINT_BLOCKCHAIN_NODE) {
256967
- newEnv.SETTLEMINT_BLOCKCHAIN_NETWORK = (await settlemint.blockchainNode.read(newEnv.SETTLEMINT_BLOCKCHAIN_NODE)).blockchainNetwork.uniqueName;
257192
+ const newNode = await settlemint.blockchainNode.read(newEnv.SETTLEMINT_BLOCKCHAIN_NODE);
257193
+ newEnv.SETTLEMINT_BLOCKCHAIN_NETWORK = newNode.blockchainNetwork.uniqueName;
257194
+ newEnv.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID = getBlockchainNetworkChainId(newNode.blockchainNetwork);
257195
+ newEnv.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT = getBlockchainNodeEndpoints(newNode).SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT;
256968
257196
  }
256969
257197
  await writeEnvSpinner(!!prod, newEnv);
256970
257198
  note(`${capitalizeFirstLetter2(type4)} ${result.name} set as default`);
@@ -257036,7 +257264,11 @@ function blockchainNetworkBesuCreateCommand() {
257036
257264
  return {
257037
257265
  SETTLEMINT_APPLICATION: applicationUniqueName,
257038
257266
  SETTLEMINT_BLOCKCHAIN_NETWORK: result.uniqueName,
257039
- SETTLEMINT_BLOCKCHAIN_NODE: blockchainNode?.uniqueName
257267
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: getBlockchainNetworkChainId(result),
257268
+ SETTLEMINT_BLOCKCHAIN_NODE: blockchainNode?.uniqueName,
257269
+ ...getBlockchainNodeEndpoints(blockchainNode),
257270
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: undefined,
257271
+ ...getBlockchainNodeOrLoadBalancerEndpoints(undefined)
257040
257272
  };
257041
257273
  }
257042
257274
  };
@@ -257608,7 +257840,6 @@ function loadBalancerEvmCreateCommand() {
257608
257840
  name: "evm",
257609
257841
  type: "load balancer",
257610
257842
  subType: "EVM",
257611
- alias: "e",
257612
257843
  execute: (cmd2, baseAction) => {
257613
257844
  addClusterServiceArgs(cmd2).option("--app, --application <application>", "The application unique name to create the load balancer in (defaults to application from env)").option("--blockchain-nodes <blockchainNodes...>", "Blockchain node unique names where the load balancer connects to (must be from the same network)").action(async (name3, { application, provider, region, size, type: type4, blockchainNodes, acceptDefaults, ...defaultArgs }) => {
257614
257845
  return baseAction({
@@ -257634,21 +257865,25 @@ function loadBalancerEvmCreateCommand() {
257634
257865
  if (!network) {
257635
257866
  return nothingSelectedError("blockchain network");
257636
257867
  }
257868
+ networkUniqueName = network.uniqueName;
257637
257869
  const blockchainNodes2 = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257638
257870
  const connectedNodes = await blockchainNodePrompt({
257639
257871
  env: env2,
257640
- nodes: blockchainNodes2.filter((node) => node.blockchainNetwork?.uniqueName === networkUniqueName),
257872
+ nodes: blockchainNodes2.filter((node) => node.blockchainNetwork?.uniqueName === network.uniqueName),
257641
257873
  accept: acceptDefaults,
257642
257874
  promptMessage: "Which blockchain node do you want to connect the load balancer to?",
257643
257875
  allowAll: true
257644
257876
  });
257645
257877
  connectedNodesUniqueNames = Array.isArray(connectedNodes) ? blockchainNodes2.map((node) => node.uniqueName) : connectedNodes ? [connectedNodes.uniqueName] : [];
257646
257878
  }
257879
+ if (connectedNodesUniqueNames.length === 0) {
257880
+ return cancel2("A load balancer must connect to at least one blockchain node");
257881
+ }
257647
257882
  if (!networkUniqueName) {
257648
257883
  const applicationBlockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257649
257884
  const selectedBlockchainNodes = applicationBlockchainNodes.filter((node) => connectedNodesUniqueNames.includes(node.uniqueName));
257650
257885
  if (selectedBlockchainNodes.length === 0) {
257651
- return cancel2("blockchain network");
257886
+ return cancel2(`Blockchain node(s) '${connectedNodesUniqueNames.join(", ")}' are not part of the application '${applicationUniqueName}'`);
257652
257887
  }
257653
257888
  const onTheSameNetwork = selectedBlockchainNodes.every((node) => node.blockchainNetwork?.uniqueName === selectedBlockchainNodes[0].blockchainNetwork?.uniqueName);
257654
257889
  if (!onTheSameNetwork) {
@@ -257685,7 +257920,7 @@ function loadBalancerEvmCreateCommand() {
257685
257920
  },
257686
257921
  {
257687
257922
  description: "Create an EVM load balancer and connect to specific blockchain nodes",
257688
- command: "platform create load-balancer evm my-lb --blockchain-nodes my-node1 my-node2 --accept-defaults"
257923
+ command: "platform create load-balancer evm my-lb --blockchain-network my-network --accept-defaults"
257689
257924
  },
257690
257925
  {
257691
257926
  description: "Create an EVM load balancer in a different application",
@@ -257811,25 +258046,19 @@ function smartContractPortalMiddlewareCreateCommand() {
257811
258046
  return missingApplication();
257812
258047
  }
257813
258048
  let blockchainNodeUniqueName = loadBalancer ? undefined : blockchainNode ?? env2.SETTLEMINT_BLOCKCHAIN_NODE;
257814
- let loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER;
258049
+ const loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER;
257815
258050
  if (!blockchainNodeUniqueName && !loadBalancerUniqueName) {
257816
258051
  const blockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257817
- const loadBalancers = await serviceSpinner("load balancer", () => settlemint.loadBalancer.list(applicationUniqueName));
257818
- const nodeOrLoadbalancer = await blockchainNodeOrLoadBalancerPrompt({
258052
+ const node = await blockchainNodePrompt({
257819
258053
  env: env2,
257820
- nodes: blockchainNodes,
257821
- loadBalancers,
258054
+ nodes: blockchainNodes.filter(hasValidPrivateKey),
257822
258055
  accept: acceptDefaults,
257823
258056
  isRequired: true
257824
258057
  });
257825
- if (!nodeOrLoadbalancer) {
257826
- return nothingSelectedError("blockchain node or load balancer");
257827
- }
257828
- if (nodeOrLoadbalancer.__typename?.endsWith("LoadBalancer")) {
257829
- loadBalancerUniqueName = nodeOrLoadbalancer.uniqueName;
257830
- } else {
257831
- blockchainNodeUniqueName = nodeOrLoadbalancer.uniqueName;
258058
+ if (!node) {
258059
+ return nothingSelectedError("blockchain node");
257832
258060
  }
258061
+ blockchainNodeUniqueName = node.uniqueName;
257833
258062
  }
257834
258063
  const parsedAbis = [];
257835
258064
  if (abis && abis.length > 0) {
@@ -259362,11 +259591,6 @@ function getStatusAction(status) {
259362
259591
  return "Please try again later.";
259363
259592
  }
259364
259593
 
259365
- // src/utils/blockchain-node.ts
259366
- function validPrivateKey(privateKey) {
259367
- return privateKey.privateKeyType !== "HD_ECDSA_P256";
259368
- }
259369
-
259370
259594
  // src/commands/smart-contract-set/hardhat/utils/select-target-node.ts
259371
259595
  async function selectTargetNode({
259372
259596
  env: env2,
@@ -259412,7 +259636,7 @@ function validateNode(node, cancelOnError = true) {
259412
259636
  }
259413
259637
  return false;
259414
259638
  }
259415
- if (node.privateKeys?.filter((privateKey) => validPrivateKey(privateKey)).length === 0) {
259639
+ if (!hasValidPrivateKey(node)) {
259416
259640
  if (cancelOnError) {
259417
259641
  cancel2(`The specified blockchain node '${node.uniqueName}' does not have an ECDSA P256 or HSM ECDSA P256 private key activated. Please activate an ECDSA P256 or HSM ECDSA P256 private key on your node and try again.`);
259418
259642
  }
@@ -259433,7 +259657,7 @@ async function addressPrompt({
259433
259657
  node,
259434
259658
  hardhatConfig
259435
259659
  }) {
259436
- const possiblePrivateKeys = node.privateKeys?.filter((privateKey) => validPrivateKey(privateKey)) ?? [];
259660
+ const possiblePrivateKeys = node.privateKeys?.filter(isValidPrivateKey) ?? [];
259437
259661
  const defaultAddress = hardhatConfig.networks?.btp?.from ?? possiblePrivateKeys[0]?.address;
259438
259662
  const defaultPossible = accept && defaultAddress;
259439
259663
  if (defaultPossible) {
@@ -260189,4 +260413,4 @@ async function sdkCliCommand(argv = process.argv) {
260189
260413
  // src/cli.ts
260190
260414
  sdkCliCommand();
260191
260415
 
260192
- //# debugId=D101F2647E41002564756E2164756E21
260416
+ //# debugId=081B9B4FD321E4AD64756E2164756E21