@settlemint/sdk-cli 2.1.4-pre91fc413 → 2.1.4-prfa41b757

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 +589 -99
  2. package/dist/cli.js.map +42 -35
  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(),
245088
- SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC: UniqueNameSchema.optional(),
245089
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: UrlSchema.optional(),
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-pre91fc413",
245284
+ version: "2.1.4-prfa41b757",
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-pre91fc413",
245331
- "@settlemint/sdk-utils": "2.1.4-pre91fc413",
245333
+ "@settlemint/sdk-js": "2.1.4-prfa41b757",
245334
+ "@settlemint/sdk-utils": "2.1.4-prfa41b757",
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(),
246745
- SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC: UniqueNameSchema2.optional(),
246749
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: UrlSchema2.optional(),
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(`
@@ -248068,6 +248174,38 @@ var getLoadBalancers = graphql(`
248068
248174
  }
248069
248175
  }
248070
248176
  `, [LoadBalancerFragment]);
248177
+ var createLoadBalancer = graphql(`
248178
+ mutation createLoadBalancer(
248179
+ $applicationId: ID!
248180
+ $blockchainNetworkId: ID!
248181
+ $name: String!
248182
+ $provider: String!
248183
+ $region: String!
248184
+ $size: ClusterServiceSize
248185
+ $type: ClusterServiceType
248186
+ $connectedNodes: [ID!]!
248187
+ ) {
248188
+ createLoadBalancer(
248189
+ applicationId: $applicationId
248190
+ blockchainNetworkId: $blockchainNetworkId
248191
+ name: $name
248192
+ provider: $provider
248193
+ region: $region
248194
+ size: $size
248195
+ type: $type
248196
+ connectedNodes: $connectedNodes
248197
+ ) {
248198
+ ...LoadBalancer
248199
+ }
248200
+ }
248201
+ `, [LoadBalancerFragment]);
248202
+ var restartLoadBalancer = graphql(`
248203
+ mutation RestartLoadBalancer($uniqueName: String!) {
248204
+ restartLoadBalancerByUniqueName(uniqueName: $uniqueName) {
248205
+ ...LoadBalancer
248206
+ }
248207
+ }
248208
+ `, [LoadBalancerFragment]);
248071
248209
  var loadBalancerRead = (gqlClient) => {
248072
248210
  return async (loadBalancerUniqueName) => {
248073
248211
  const { loadBalancerByUniqueName: loadBalancer } = await gqlClient.request(getLoadBalancer, {
@@ -248084,6 +248222,29 @@ var loadBalancerList = (gqlClient) => {
248084
248222
  return items;
248085
248223
  };
248086
248224
  };
248225
+ var loadBalancerCreate = (gqlClient) => {
248226
+ return async (args) => {
248227
+ const { applicationUniqueName, blockchainNetworkUniqueName, connectedNodesUniqueNames, ...otherArgs } = args;
248228
+ const [application, blockchainNetwork, connectedNodes] = await Promise.all([
248229
+ applicationRead(gqlClient)(applicationUniqueName),
248230
+ blockchainNetworkRead(gqlClient)(blockchainNetworkUniqueName),
248231
+ Promise.all(connectedNodesUniqueNames.map((uniqueName) => blockchainNodeRead(gqlClient)(uniqueName)))
248232
+ ]);
248233
+ const { createLoadBalancer: loadBalancer } = await gqlClient.request(createLoadBalancer, {
248234
+ ...otherArgs,
248235
+ applicationId: application.id,
248236
+ blockchainNetworkId: blockchainNetwork.id,
248237
+ connectedNodes: connectedNodes.map((node) => node.id)
248238
+ });
248239
+ return loadBalancer;
248240
+ };
248241
+ };
248242
+ var loadBalancerRestart = (gqlClient) => async (loadBalancerUniqueName) => {
248243
+ const { restartLoadBalancerByUniqueName: loadBalancer } = await gqlClient.request(restartLoadBalancer, {
248244
+ uniqueName: loadBalancerUniqueName
248245
+ });
248246
+ return loadBalancer;
248247
+ };
248087
248248
  var InsightsFragment = graphql(`
248088
248249
  fragment Insights on Insights {
248089
248250
  __typename
@@ -248786,7 +248947,9 @@ function createSettleMintClient(options) {
248786
248947
  },
248787
248948
  loadBalancer: {
248788
248949
  list: loadBalancerList(gqlClient),
248789
- read: loadBalancerRead(gqlClient)
248950
+ read: loadBalancerRead(gqlClient),
248951
+ create: loadBalancerCreate(gqlClient),
248952
+ restart: loadBalancerRestart(gqlClient)
248790
248953
  },
248791
248954
  middleware: {
248792
248955
  list: middlewareList(gqlClient),
@@ -250162,7 +250325,7 @@ export const postgresPool = createPostgresPool(process.env.SETTLEMINT_HASURA_DAT
250162
250325
  await installDependencies(PACKAGE_NAME, projectDir);
250163
250326
  }
250164
250327
  if (!databaseUrl) {
250165
- console.warn("[Codegen] Missing database environment variables");
250328
+ note("[Codegen] Missing database environment variables", "warn");
250166
250329
  }
250167
250330
  }
250168
250331
 
@@ -251719,6 +251882,7 @@ async function codegenBlockscout(env2) {
251719
251882
  __schema {
251720
251883
  queryType { name }
251721
251884
  mutationType { name }
251885
+ subscriptionType { name }
251722
251886
  types {
251723
251887
  ...FullType
251724
251888
  }
@@ -251800,10 +251964,6 @@ async function codegenBlockscout(env2) {
251800
251964
  ofType {
251801
251965
  kind
251802
251966
  name
251803
- ofType {
251804
- kind
251805
- name
251806
- }
251807
251967
  }
251808
251968
  }
251809
251969
  }
@@ -251921,9 +252081,72 @@ export const { client } = createServerMinioClient({
251921
252081
  }
251922
252082
  }
251923
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
+ const projectDir = await projectRoot3();
252099
+ if (!await isPackageInstalled(PACKAGE_NAME7, projectDir)) {
252100
+ await installDependencies(PACKAGE_NAME7, projectDir);
252101
+ }
252102
+ const imports = [];
252103
+ if (loadBalancerRpcEndpoint) {
252104
+ imports.push("getPublicClient");
252105
+ }
252106
+ if (blockchainNodeRpcEndpoint) {
252107
+ imports.push("getWalletClient");
252108
+ }
252109
+ const viemTemplate = [`import { ${imports.join(", ")} } from "${PACKAGE_NAME7}";`];
252110
+ if (loadBalancerRpcEndpoint) {
252111
+ viemTemplate.push(`
252112
+ /**
252113
+ * The public client. Use this if you need to read from the blockchain.
252114
+ */
252115
+ export const publicClient = getPublicClient({
252116
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252117
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252118
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_JSON_RPC_ENDPOINT!,
252119
+ });`);
252120
+ }
252121
+ if (blockchainNodeRpcEndpoint) {
252122
+ viemTemplate.push(`
252123
+ /**
252124
+ * The wallet client. Use this if you need to write to the blockchain.
252125
+ */
252126
+ export const walletClient = getWalletClient({
252127
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252128
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252129
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT!,
252130
+ })();
252131
+
252132
+ /**
252133
+ * The wallet client for HD wallets. Use this if you need to write to the blockchain.
252134
+ * HD wallets require a challenge response to be sent with the request.
252135
+ */
252136
+ export const hdWalletClient = getWalletClient({
252137
+ chainId: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID!,
252138
+ chainName: process.env.SETTLEMINT_BLOCKCHAIN_NETWORK!,
252139
+ rpcUrl: process.env.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT!,
252140
+ });`);
252141
+ }
252142
+ await writeTemplate(viemTemplate.join(`
252143
+ `), "/lib/settlemint", "viem.ts");
252144
+ note("Viem resources generated successfully");
252145
+ }
252146
+
251924
252147
  // src/commands/codegen.ts
251925
252148
  function codegenCommand() {
251926
- 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([
252149
+ 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([
251927
252150
  {
251928
252151
  description: "Generate GraphQL types and queries for your dApp",
251929
252152
  command: "codegen"
@@ -251931,8 +252154,12 @@ function codegenCommand() {
251931
252154
  {
251932
252155
  description: "Generate GraphQL types and queries for specific TheGraph subgraphs",
251933
252156
  command: "codegen --thegraph-subgraph-names subgraph1 subgraph2"
252157
+ },
252158
+ {
252159
+ description: "Generate Viem resources",
252160
+ command: "codegen --generate-viem"
251934
252161
  }
251935
- ])).action(async ({ prod, thegraphSubgraphNames }) => {
252162
+ ])).action(async ({ prod, thegraphSubgraphNames, generateViem }) => {
251936
252163
  intro("Generating GraphQL types and queries for your dApp");
251937
252164
  const env2 = await loadEnv(true, !!prod);
251938
252165
  if (!Array.isArray(thegraphSubgraphNames)) {
@@ -251950,6 +252177,10 @@ function codegenCommand() {
251950
252177
  },
251951
252178
  stopMessage: "Tested GraphQL schemas"
251952
252179
  });
252180
+ if (generateViem) {
252181
+ note("Generating Viem resources");
252182
+ await codegenViem(env2);
252183
+ }
251953
252184
  if (hasura) {
251954
252185
  note("Generating Hasura resources");
251955
252186
  await codegenHasura(env2);
@@ -252211,6 +252442,7 @@ async function applicationPrompt(env2, applications, accept) {
252211
252442
  }
252212
252443
 
252213
252444
  // src/prompts/cluster-service/service.prompt.ts
252445
+ var ALL2 = "All";
252214
252446
  async function servicePrompt({
252215
252447
  env: env2,
252216
252448
  services,
@@ -252219,13 +252451,17 @@ async function servicePrompt({
252219
252451
  defaultHandler,
252220
252452
  isRequired = false,
252221
252453
  isCi = is_in_ci_default,
252222
- singleOptionMessage
252454
+ singleOptionMessage,
252455
+ allowAll = false
252223
252456
  }) {
252224
252457
  if (services.length === 0) {
252225
252458
  return;
252226
252459
  }
252227
- const selectedService = services.find((service) => service.uniqueName === env2[envKey]);
252460
+ const selectedService = services.find((service) => Array.isArray(service) ? false : service.uniqueName === env2[envKey]);
252228
252461
  const autoAccept = isCi || accept;
252462
+ if (autoAccept && allowAll) {
252463
+ return services;
252464
+ }
252229
252465
  if (autoAccept && selectedService) {
252230
252466
  return selectedService;
252231
252467
  }
@@ -252233,7 +252469,7 @@ async function servicePrompt({
252233
252469
  return;
252234
252470
  }
252235
252471
  if (isRequired && services.length === 1) {
252236
- if (singleOptionMessage) {
252472
+ if (singleOptionMessage && !Array.isArray(services[0])) {
252237
252473
  note(singleOptionMessage(services[0].uniqueName));
252238
252474
  }
252239
252475
  return services[0];
@@ -252242,13 +252478,37 @@ async function servicePrompt({
252242
252478
  name: `${service.name} (${service.uniqueName})`,
252243
252479
  value: service
252244
252480
  }));
252481
+ if (allowAll) {
252482
+ choices.unshift({
252483
+ name: ALL2,
252484
+ value: services
252485
+ });
252486
+ }
252245
252487
  if (!isRequired) {
252246
252488
  choices.push({
252247
252489
  name: "None",
252248
252490
  value: undefined
252249
252491
  });
252250
252492
  }
252251
- return defaultHandler({ defaultService: selectedService, choices });
252493
+ return defaultHandler({
252494
+ defaultService: selectedService,
252495
+ choices
252496
+ });
252497
+ }
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";
252252
252512
  }
252253
252513
 
252254
252514
  // src/prompts/cluster-service/blockchain-node.prompt.ts
@@ -252259,7 +252519,8 @@ async function blockchainNodePrompt({
252259
252519
  singleOptionMessage,
252260
252520
  promptMessage,
252261
252521
  filterRunningOnly = false,
252262
- isRequired = false
252522
+ isRequired = false,
252523
+ allowAll = false
252263
252524
  }) {
252264
252525
  return servicePrompt({
252265
252526
  env: env2,
@@ -252268,14 +252529,25 @@ async function blockchainNodePrompt({
252268
252529
  envKey: "SETTLEMINT_BLOCKCHAIN_NODE",
252269
252530
  isRequired,
252270
252531
  defaultHandler: async ({ defaultService: defaultNode, choices }) => {
252271
- const filteredChoices = filterRunningOnly ? choices.filter(({ value: node }) => node === undefined || node?.status === "COMPLETED") : choices;
252532
+ const filteredChoices = filterRunningOnly ? choices.filter(({ value: node }) => {
252533
+ return Array.isArray(node) ? true : isRunning(node);
252534
+ }).map((item) => {
252535
+ if (Array.isArray(item.value)) {
252536
+ return {
252537
+ ...item,
252538
+ value: item.value.filter(isRunning)
252539
+ };
252540
+ }
252541
+ return item;
252542
+ }) : choices;
252272
252543
  return esm_default3({
252273
252544
  message: promptMessage ?? "Which blockchain node do you want to connect to?",
252274
252545
  choices: filteredChoices,
252275
252546
  default: defaultNode
252276
252547
  });
252277
252548
  },
252278
- singleOptionMessage
252549
+ singleOptionMessage,
252550
+ allowAll
252279
252551
  });
252280
252552
  }
252281
252553
 
@@ -252580,7 +252852,8 @@ async function servicesSpinner(settlemint, applicationUniqueName, types2) {
252580
252852
  storages,
252581
252853
  privateKeys,
252582
252854
  insights,
252583
- customDeployments
252855
+ customDeployments,
252856
+ loadBalancers
252584
252857
  ] = await Promise.all([
252585
252858
  shouldFetch("blockchain-network") ? settlemint.blockchainNetwork.list(applicationUniqueName) : Promise.resolve([]),
252586
252859
  shouldFetch("blockchain-node") ? settlemint.blockchainNode.list(applicationUniqueName) : Promise.resolve([]),
@@ -252589,7 +252862,8 @@ async function servicesSpinner(settlemint, applicationUniqueName, types2) {
252589
252862
  shouldFetch("storage") ? settlemint.storage.list(applicationUniqueName) : Promise.resolve([]),
252590
252863
  shouldFetch("private-key") ? settlemint.privateKey.list(applicationUniqueName) : Promise.resolve([]),
252591
252864
  shouldFetch("insights") ? settlemint.insights.list(applicationUniqueName) : Promise.resolve([]),
252592
- shouldFetch("custom-deployment") ? settlemint.customDeployment.list(applicationUniqueName) : Promise.resolve([])
252865
+ shouldFetch("custom-deployment") ? settlemint.customDeployment.list(applicationUniqueName) : Promise.resolve([]),
252866
+ shouldFetch("load-balancer") ? settlemint.loadBalancer.list(applicationUniqueName) : Promise.resolve([])
252593
252867
  ]);
252594
252868
  return {
252595
252869
  blockchainNetworks,
@@ -252599,7 +252873,8 @@ async function servicesSpinner(settlemint, applicationUniqueName, types2) {
252599
252873
  storages,
252600
252874
  privateKeys,
252601
252875
  insights,
252602
- customDeployments
252876
+ customDeployments,
252877
+ loadBalancers
252603
252878
  };
252604
252879
  }
252605
252880
  });
@@ -252638,8 +252913,11 @@ async function writeEnvSpinner(prod, env2) {
252638
252913
  SETTLEMINT_WORKSPACE: env2.SETTLEMINT_WORKSPACE,
252639
252914
  SETTLEMINT_APPLICATION: env2.SETTLEMINT_APPLICATION,
252640
252915
  SETTLEMINT_BLOCKCHAIN_NETWORK: env2.SETTLEMINT_BLOCKCHAIN_NETWORK,
252916
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: env2.SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID,
252641
252917
  SETTLEMINT_BLOCKCHAIN_NODE: env2.SETTLEMINT_BLOCKCHAIN_NODE,
252642
- SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC: env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC,
252918
+ SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT: env2.SETTLEMINT_BLOCKCHAIN_NODE_JSON_RPC_ENDPOINT,
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,
252643
252921
  SETTLEMINT_HASURA: env2.SETTLEMINT_HASURA,
252644
252922
  SETTLEMINT_HASURA_ENDPOINT: env2.SETTLEMINT_HASURA_ENDPOINT,
252645
252923
  SETTLEMINT_THEGRAPH: env2.SETTLEMINT_THEGRAPH,
@@ -252674,6 +252952,14 @@ async function writeEnvSpinner(prod, env2) {
252674
252952
  });
252675
252953
  }
252676
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
+
252677
252963
  // src/utils/get-cluster-service-endpoint.ts
252678
252964
  async function getGraphEndpoint(settlemint, service, graphName) {
252679
252965
  if (!service || service.__typename !== "HAGraphMiddleware") {
@@ -252747,6 +253033,51 @@ function getMinioEndpoints(service) {
252747
253033
  SETTLEMINT_MINIO_SECRET_KEY: service?.credentials.find((credential) => credential.id.includes("secret-key"))?.displayValue
252748
253034
  };
252749
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
+ }
253052
+
253053
+ // src/prompts/cluster-service/blockchain-node-or-load-balancer.prompt.ts
253054
+ async function blockchainNodeOrLoadBalancerPrompt({
253055
+ env: env2,
253056
+ nodes,
253057
+ loadBalancers,
253058
+ accept,
253059
+ singleOptionMessage,
253060
+ promptMessage,
253061
+ filterRunningOnly = false,
253062
+ isRequired = false
253063
+ }) {
253064
+ return servicePrompt({
253065
+ env: env2,
253066
+ services: [...loadBalancers, ...nodes],
253067
+ accept,
253068
+ envKey: "SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER",
253069
+ isRequired,
253070
+ defaultHandler: async ({ defaultService: defaultNode, choices }) => {
253071
+ const filteredChoices = filterRunningOnly ? choices.filter(({ value: node }) => node === undefined || node?.status === "COMPLETED") : choices;
253072
+ return esm_default3({
253073
+ message: promptMessage ?? "Which blockchain node or load balancer do you want to connect to?",
253074
+ choices: filteredChoices,
253075
+ default: defaultNode
253076
+ });
253077
+ },
253078
+ singleOptionMessage
253079
+ });
253080
+ }
252750
253081
 
252751
253082
  // src/commands/connect.ts
252752
253083
  function connectCommand() {
@@ -252767,11 +253098,30 @@ function connectCommand() {
252767
253098
  const workspace = await workspacePrompt(env2, workspaces, acceptDefaults);
252768
253099
  const application = await applicationPrompt(env2, workspace?.applications ?? [], acceptDefaults);
252769
253100
  const aatToken = await applicationAccessTokenPrompt(env2, application, settlemint, acceptDefaults);
252770
- const { middlewares, integrationTools, storages, privateKeys, insights, customDeployments, blockchainNodes } = await servicesSpinner(settlemint, application.uniqueName);
253101
+ const {
253102
+ middlewares,
253103
+ integrationTools,
253104
+ storages,
253105
+ privateKeys,
253106
+ insights,
253107
+ customDeployments,
253108
+ blockchainNodes,
253109
+ loadBalancers
253110
+ } = await servicesSpinner(settlemint, application.uniqueName);
253111
+ const nodesWithPrivateKey = blockchainNodes.filter(hasPrivateKey);
252771
253112
  const blockchainNode = await blockchainNodePrompt({
252772
253113
  env: env2,
252773
- nodes: blockchainNodes,
252774
- accept: acceptDefaults
253114
+ nodes: nodesWithPrivateKey,
253115
+ accept: acceptDefaults,
253116
+ promptMessage: "Which blockchain node do you want to use for sending transactions?"
253117
+ });
253118
+ const nodesWithoutPrivateKey = blockchainNodes.filter((node) => !hasPrivateKey(node));
253119
+ const loadBalancerOrBlockchainNode = await blockchainNodeOrLoadBalancerPrompt({
253120
+ env: env2,
253121
+ nodes: nodesWithoutPrivateKey,
253122
+ loadBalancers,
253123
+ accept: acceptDefaults,
253124
+ promptMessage: "Which load balancer or blockchain node do you want to use for read operations?"
252775
253125
  });
252776
253126
  const hasura = await hasuraPrompt({
252777
253127
  env: env2,
@@ -252837,10 +253187,15 @@ function connectCommand() {
252837
253187
  uniqueName: blockchainNode.blockchainNetwork?.uniqueName
252838
253188
  },
252839
253189
  blockchainNode && {
252840
- type: "Blockchain Node",
253190
+ type: "Blockchain Node (use for sending transactions)",
252841
253191
  name: blockchainNode.name,
252842
253192
  uniqueName: blockchainNode.uniqueName
252843
253193
  },
253194
+ loadBalancerOrBlockchainNode && {
253195
+ type: "Load Balancer or Blockchain Node (use for read operations)",
253196
+ name: loadBalancerOrBlockchainNode.name,
253197
+ uniqueName: loadBalancerOrBlockchainNode.uniqueName
253198
+ },
252844
253199
  hasura && {
252845
253200
  type: "Hasura",
252846
253201
  name: hasura.name,
@@ -252890,7 +253245,11 @@ function connectCommand() {
252890
253245
  SETTLEMINT_WORKSPACE: workspace.uniqueName,
252891
253246
  SETTLEMINT_APPLICATION: application.uniqueName,
252892
253247
  SETTLEMINT_BLOCKCHAIN_NETWORK: blockchainNode?.blockchainNetwork?.uniqueName,
253248
+ SETTLEMINT_BLOCKCHAIN_NETWORK_CHAIN_ID: getBlockchainNetworkChainId(blockchainNode?.blockchainNetwork),
252893
253249
  SETTLEMINT_BLOCKCHAIN_NODE: blockchainNode?.uniqueName,
253250
+ ...getBlockchainNodeEndpoints(blockchainNode),
253251
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: loadBalancerOrBlockchainNode?.uniqueName,
253252
+ ...getBlockchainNodeOrLoadBalancerEndpoints(loadBalancerOrBlockchainNode),
252894
253253
  SETTLEMINT_HASURA: hasura?.uniqueName,
252895
253254
  ...getHasuraEndpoints(hasura),
252896
253255
  SETTLEMINT_THEGRAPH: thegraph?.uniqueName,
@@ -256232,7 +256591,8 @@ var SETTLEMINT_CLIENT_MAP = {
256232
256591
  "integration tool": "integrationTool",
256233
256592
  storage: "storage",
256234
256593
  insights: "insights",
256235
- "application access token": "applicationAccessToken"
256594
+ "application access token": "applicationAccessToken",
256595
+ "load balancer": "loadBalancer"
256236
256596
  };
256237
256597
  var LABELS_MAP = {
256238
256598
  application: { singular: "application", plural: "applications", command: "app" },
@@ -256253,7 +256613,8 @@ var LABELS_MAP = {
256253
256613
  singular: "application access token",
256254
256614
  plural: "application access tokens",
256255
256615
  command: "application-access-token"
256256
- }
256616
+ },
256617
+ "load balancer": { singular: "load balancer", plural: "load balancers", command: "load-balancer" }
256257
256618
  };
256258
256619
 
256259
256620
  // src/spinners/service.spinner.ts
@@ -256755,7 +257116,10 @@ function getCreateCommand({
256755
257116
  usePersonalAccessToken = true,
256756
257117
  requiresDeployment = true
256757
257118
  }) {
256758
- 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
+ }
256759
257123
  if (requiresDeployment) {
256760
257124
  cmd2.option("-w, --wait", "Wait until deployed").option("-r, --restart-if-timeout", "Restart if wait time is exceeded");
256761
257125
  }
@@ -256825,7 +257189,10 @@ function getCreateCommand({
256825
257189
  newEnv.SETTLEMINT_WORKSPACE = (await settlemint.application.read(updatedEnv.SETTLEMINT_APPLICATION)).workspace.uniqueName;
256826
257190
  }
256827
257191
  if (newEnv.SETTLEMINT_BLOCKCHAIN_NODE && newEnv.SETTLEMINT_BLOCKCHAIN_NODE !== env2.SETTLEMINT_BLOCKCHAIN_NODE) {
256828
- 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;
256829
257196
  }
256830
257197
  await writeEnvSpinner(!!prod, newEnv);
256831
257198
  note(`${capitalizeFirstLetter2(type4)} ${result.name} set as default`);
@@ -256897,7 +257264,11 @@ function blockchainNetworkBesuCreateCommand() {
256897
257264
  return {
256898
257265
  SETTLEMINT_APPLICATION: applicationUniqueName,
256899
257266
  SETTLEMINT_BLOCKCHAIN_NETWORK: result.uniqueName,
256900
- 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)
256901
257272
  };
256902
257273
  }
256903
257274
  };
@@ -257343,12 +257714,14 @@ function blockscoutInsightsCreateCommand() {
257343
257714
  return missingApplication();
257344
257715
  }
257345
257716
  let blockchainNodeUniqueName = loadBalancer ? undefined : blockchainNode ?? env2.SETTLEMINT_BLOCKCHAIN_NODE;
257346
- const loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC;
257717
+ const loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER;
257347
257718
  if (!blockchainNodeUniqueName && !loadBalancerUniqueName) {
257348
257719
  const blockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257349
- const node = await blockchainNodePrompt({
257720
+ const loadBalancers = await serviceSpinner("load balancer", () => settlemint.loadBalancer.list(applicationUniqueName));
257721
+ const node = await blockchainNodeOrLoadBalancerPrompt({
257350
257722
  env: env2,
257351
257723
  nodes: blockchainNodes,
257724
+ loadBalancers,
257352
257725
  accept: acceptDefaults,
257353
257726
  isRequired: true
257354
257727
  });
@@ -257461,6 +257834,107 @@ function integrationToolCreateCommand() {
257461
257834
  return cmd2;
257462
257835
  }
257463
257836
 
257837
+ // src/commands/platform/load-balancer/evm/create.ts
257838
+ function loadBalancerEvmCreateCommand() {
257839
+ return getCreateCommand({
257840
+ name: "evm",
257841
+ type: "load balancer",
257842
+ subType: "EVM",
257843
+ execute: (cmd2, baseAction) => {
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 }) => {
257845
+ return baseAction({
257846
+ ...defaultArgs,
257847
+ acceptDefaults,
257848
+ provider,
257849
+ region
257850
+ }, async ({ settlemint, env: env2, showSpinner, provider: provider2, region: region2 }) => {
257851
+ const applicationUniqueName = application ?? env2.SETTLEMINT_APPLICATION;
257852
+ if (!applicationUniqueName) {
257853
+ return missingApplication();
257854
+ }
257855
+ let networkUniqueName;
257856
+ let connectedNodesUniqueNames = blockchainNodes;
257857
+ if (!connectedNodesUniqueNames) {
257858
+ const networks = await serviceSpinner("blockchain network", () => settlemint.blockchainNetwork.list(applicationUniqueName));
257859
+ const network = await blockchainNetworkPrompt({
257860
+ env: env2,
257861
+ networks,
257862
+ accept: acceptDefaults,
257863
+ isRequired: true
257864
+ });
257865
+ if (!network) {
257866
+ return nothingSelectedError("blockchain network");
257867
+ }
257868
+ networkUniqueName = network.uniqueName;
257869
+ const blockchainNodes2 = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257870
+ const connectedNodes = await blockchainNodePrompt({
257871
+ env: env2,
257872
+ nodes: blockchainNodes2.filter((node) => node.blockchainNetwork?.uniqueName === network.uniqueName),
257873
+ accept: acceptDefaults,
257874
+ promptMessage: "Which blockchain node do you want to connect the load balancer to?",
257875
+ allowAll: true
257876
+ });
257877
+ connectedNodesUniqueNames = Array.isArray(connectedNodes) ? blockchainNodes2.map((node) => node.uniqueName) : connectedNodes ? [connectedNodes.uniqueName] : [];
257878
+ }
257879
+ if (connectedNodesUniqueNames.length === 0) {
257880
+ return cancel2("A load balancer must connect to at least one blockchain node");
257881
+ }
257882
+ if (!networkUniqueName) {
257883
+ const applicationBlockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257884
+ const selectedBlockchainNodes = applicationBlockchainNodes.filter((node) => connectedNodesUniqueNames.includes(node.uniqueName));
257885
+ if (selectedBlockchainNodes.length === 0) {
257886
+ return cancel2(`Blockchain node(s) '${connectedNodesUniqueNames.join(", ")}' are not part of the application '${applicationUniqueName}'`);
257887
+ }
257888
+ const onTheSameNetwork = selectedBlockchainNodes.every((node) => node.blockchainNetwork?.uniqueName === selectedBlockchainNodes[0].blockchainNetwork?.uniqueName);
257889
+ if (!onTheSameNetwork) {
257890
+ return cancel2("Blockchain nodes must be on the same network");
257891
+ }
257892
+ networkUniqueName = selectedBlockchainNodes[0].blockchainNetwork?.uniqueName;
257893
+ }
257894
+ const result = await showSpinner(() => settlemint.loadBalancer.create({
257895
+ applicationUniqueName,
257896
+ name: name3,
257897
+ blockchainNetworkUniqueName: networkUniqueName,
257898
+ provider: provider2,
257899
+ region: region2,
257900
+ size,
257901
+ type: type4,
257902
+ connectedNodesUniqueNames
257903
+ }));
257904
+ return {
257905
+ result,
257906
+ mapDefaultEnv: () => {
257907
+ return {
257908
+ SETTLEMINT_APPLICATION: applicationUniqueName,
257909
+ SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER: result.uniqueName
257910
+ };
257911
+ }
257912
+ };
257913
+ });
257914
+ });
257915
+ },
257916
+ examples: [
257917
+ {
257918
+ description: "Create an EVM load balancer and save as default",
257919
+ command: "platform create load-balancer evm my-lb --accept-defaults -d"
257920
+ },
257921
+ {
257922
+ description: "Create an EVM load balancer and connect to specific blockchain nodes",
257923
+ command: "platform create load-balancer evm my-lb --blockchain-network my-network --accept-defaults"
257924
+ },
257925
+ {
257926
+ description: "Create an EVM load balancer in a different application",
257927
+ command: "platform create load-balancer evm my-lb --application my-app --accept-defaults"
257928
+ }
257929
+ ]
257930
+ });
257931
+ }
257932
+
257933
+ // src/commands/platform/load-balancer/create.ts
257934
+ function loadBalancerCreateCommand() {
257935
+ return new Command("load-balancer").alias("lb").description("Create a load balancer in the SettleMint platform").addCommand(loadBalancerEvmCreateCommand());
257936
+ }
257937
+
257464
257938
  // src/commands/platform/middleware/graph/create.ts
257465
257939
  function graphMiddlewareCreateCommand() {
257466
257940
  return getCreateCommand({
@@ -257469,7 +257943,7 @@ function graphMiddlewareCreateCommand() {
257469
257943
  subType: "The Graph",
257470
257944
  alias: "gr",
257471
257945
  execute: (cmd2, baseAction) => {
257472
- addClusterServiceArgs(cmd2).option("--application <application>", "Application unique name").option("--blockchain-node <blockchainNode>", "Blockchain Node unique name").action(async (name3, { application, blockchainNode, provider, region, size, type: type4, acceptDefaults, ...defaultArgs }) => {
257946
+ addClusterServiceArgs(cmd2).option("--application <application>", "Application unique name").option("--blockchain-node <blockchainNode>", "Blockchain Node unique name (mutually exclusive with load-balancer)").option("--load-balancer <loadBalancer>", "Load Balancer unique name (mutually exclusive with blockchain-node)").action(async (name3, { application, blockchainNode, loadBalancer, provider, region, size, type: type4, acceptDefaults, ...defaultArgs }) => {
257473
257947
  return baseAction({
257474
257948
  ...defaultArgs,
257475
257949
  acceptDefaults,
@@ -257481,24 +257955,32 @@ function graphMiddlewareCreateCommand() {
257481
257955
  return missingApplication();
257482
257956
  }
257483
257957
  let blockchainNodeUniqueName = blockchainNode;
257484
- if (!blockchainNodeUniqueName) {
257958
+ let loadBalancerUniqueName = loadBalancer;
257959
+ if (!blockchainNodeUniqueName && !loadBalancerUniqueName) {
257485
257960
  const blockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257486
- const node = await blockchainNodePrompt({
257961
+ const loadBalancers = await serviceSpinner("load balancer", () => settlemint.loadBalancer.list(applicationUniqueName));
257962
+ const nodeOrLoadbalancer = await blockchainNodeOrLoadBalancerPrompt({
257487
257963
  env: env2,
257488
257964
  nodes: blockchainNodes,
257965
+ loadBalancers,
257489
257966
  accept: acceptDefaults,
257490
257967
  isRequired: true
257491
257968
  });
257492
- if (!node) {
257493
- return nothingSelectedError("blockchain node");
257969
+ if (!nodeOrLoadbalancer) {
257970
+ return nothingSelectedError("blockchain node or load balancer");
257971
+ }
257972
+ if (nodeOrLoadbalancer.__typename?.endsWith("LoadBalancer")) {
257973
+ loadBalancerUniqueName = nodeOrLoadbalancer.uniqueName;
257974
+ } else {
257975
+ blockchainNodeUniqueName = nodeOrLoadbalancer.uniqueName;
257494
257976
  }
257495
- blockchainNodeUniqueName = node.uniqueName;
257496
257977
  }
257497
257978
  const result = await showSpinner(() => settlemint.middleware.create({
257498
257979
  name: name3,
257499
257980
  applicationUniqueName,
257500
257981
  interface: "HA_GRAPH",
257501
257982
  blockchainNodeUniqueName,
257983
+ loadBalancerUniqueName,
257502
257984
  provider: provider2,
257503
257985
  region: region2,
257504
257986
  size,
@@ -257564,12 +258046,12 @@ function smartContractPortalMiddlewareCreateCommand() {
257564
258046
  return missingApplication();
257565
258047
  }
257566
258048
  let blockchainNodeUniqueName = loadBalancer ? undefined : blockchainNode ?? env2.SETTLEMINT_BLOCKCHAIN_NODE;
257567
- const loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER_PUBLIC;
258049
+ const loadBalancerUniqueName = blockchainNodeUniqueName ? undefined : loadBalancer ?? env2.SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER;
257568
258050
  if (!blockchainNodeUniqueName && !loadBalancerUniqueName) {
257569
258051
  const blockchainNodes = await serviceSpinner("blockchain node", () => settlemint.blockchainNode.list(applicationUniqueName));
257570
258052
  const node = await blockchainNodePrompt({
257571
258053
  env: env2,
257572
- nodes: blockchainNodes,
258054
+ nodes: blockchainNodes.filter(hasValidPrivateKey),
257573
258055
  accept: acceptDefaults,
257574
258056
  isRequired: true
257575
258057
  });
@@ -257947,7 +258429,7 @@ function storageCreateCommand() {
257947
258429
 
257948
258430
  // src/commands/platform/create.ts
257949
258431
  function createCommand3() {
257950
- return new Command("create").alias("c").description("Create a resource in the SettleMint platform").addCommand(workspaceCreateCommand()).addCommand(applicationCreateCommand()).addCommand(blockchainNetworkCreateCommand()).addCommand(blockchainNodeCreateCommand()).addCommand(privateKeyCreateCommand()).addCommand(middlewareCreateCommand()).addCommand(storageCreateCommand()).addCommand(integrationToolCreateCommand()).addCommand(insightsCreateCommand()).addCommand(applicationAccessTokenCreateCommand());
258432
+ return new Command("create").alias("c").description("Create a resource in the SettleMint platform").addCommand(workspaceCreateCommand()).addCommand(applicationCreateCommand()).addCommand(blockchainNetworkCreateCommand()).addCommand(blockchainNodeCreateCommand()).addCommand(privateKeyCreateCommand()).addCommand(middlewareCreateCommand()).addCommand(storageCreateCommand()).addCommand(integrationToolCreateCommand()).addCommand(insightsCreateCommand()).addCommand(applicationAccessTokenCreateCommand()).addCommand(loadBalancerCreateCommand());
257951
258433
  }
257952
258434
 
257953
258435
  // src/prompts/delete-confirmation.prompt.ts
@@ -258187,6 +258669,19 @@ function integrationToolRestartCommand() {
258187
258669
  return new Command("integration-tool").alias("it").description("Restart an integration tool service in the SettleMint platform").addCommand(hasuraRestartCommand());
258188
258670
  }
258189
258671
 
258672
+ // src/commands/platform/load-balancer/restart.ts
258673
+ function loadBalancerRestartCommand() {
258674
+ return getRestartCommand({
258675
+ name: "load-balancer",
258676
+ type: "load balancer",
258677
+ alias: "lb",
258678
+ envKey: "SETTLEMINT_BLOCKCHAIN_NODE_OR_LOAD_BALANCER",
258679
+ restartFunction: async (settlemint, id) => {
258680
+ return settlemint.loadBalancer.restart(id);
258681
+ }
258682
+ });
258683
+ }
258684
+
258190
258685
  // src/commands/platform/middleware/graph/restart.ts
258191
258686
  function graphRestartCommand() {
258192
258687
  return getRestartCommand({
@@ -258253,7 +258748,7 @@ function storageRestartCommand() {
258253
258748
 
258254
258749
  // src/commands/platform/restart.ts
258255
258750
  function restartCommand() {
258256
- const cmd2 = new Command("restart").description("Restart a resource in the SettleMint platform").addCommand(blockchainNetworkRestartCommand()).addCommand(customDeploymentRestartCommand()).addCommand(insightsRestartCommand()).addCommand(integrationToolRestartCommand()).addCommand(middlewareRestartCommand()).addCommand(storageRestartCommand());
258751
+ const cmd2 = new Command("restart").description("Restart a resource in the SettleMint platform").addCommand(blockchainNetworkRestartCommand()).addCommand(customDeploymentRestartCommand()).addCommand(insightsRestartCommand()).addCommand(integrationToolRestartCommand()).addCommand(middlewareRestartCommand()).addCommand(storageRestartCommand()).addCommand(loadBalancerRestartCommand());
258257
258752
  return cmd2;
258258
258753
  }
258259
258754
 
@@ -259096,38 +259591,6 @@ function getStatusAction(status) {
259096
259591
  return "Please try again later.";
259097
259592
  }
259098
259593
 
259099
- // src/prompts/smart-contract-set/address.prompt.ts
259100
- async function addressPrompt({
259101
- env: env2,
259102
- accept,
259103
- prod,
259104
- node,
259105
- hardhatConfig
259106
- }) {
259107
- const possiblePrivateKeys = node.privateKeys?.filter((privateKey) => validPrivateKey(privateKey)) ?? [];
259108
- const defaultAddress = hardhatConfig.networks?.btp?.from ?? possiblePrivateKeys[0]?.address;
259109
- const defaultPossible = accept && defaultAddress;
259110
- if (defaultPossible) {
259111
- if (possiblePrivateKeys.some((privateKey) => privateKey.address?.toLowerCase() === defaultAddress?.toLowerCase())) {
259112
- return defaultAddress;
259113
- }
259114
- note(`Private key with address '${defaultAddress}' is not activated on the node '${node.uniqueName}'.
259115
- Please select another key or activate this key on the node and try again.`, "warn");
259116
- }
259117
- const address = await esm_default3({
259118
- message: "Which private key do you want to deploy from?",
259119
- choices: possiblePrivateKeys.map(({ address: address2, name: name3 }) => ({
259120
- name: name3,
259121
- value: address2
259122
- })),
259123
- default: defaultAddress ?? possiblePrivateKeys[0]?.address
259124
- });
259125
- return address;
259126
- }
259127
- function validPrivateKey(privateKey) {
259128
- return privateKey.privateKeyType !== "HD_ECDSA_P256";
259129
- }
259130
-
259131
259594
  // src/commands/smart-contract-set/hardhat/utils/select-target-node.ts
259132
259595
  async function selectTargetNode({
259133
259596
  env: env2,
@@ -259173,7 +259636,7 @@ function validateNode(node, cancelOnError = true) {
259173
259636
  }
259174
259637
  return false;
259175
259638
  }
259176
- if (node.privateKeys?.filter((privateKey) => validPrivateKey(privateKey)).length === 0) {
259639
+ if (!hasValidPrivateKey(node)) {
259177
259640
  if (cancelOnError) {
259178
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.`);
259179
259642
  }
@@ -259188,6 +259651,33 @@ function validateNode(node, cancelOnError = true) {
259188
259651
  return true;
259189
259652
  }
259190
259653
 
259654
+ // src/prompts/smart-contract-set/address.prompt.ts
259655
+ async function addressPrompt({
259656
+ accept,
259657
+ node,
259658
+ hardhatConfig
259659
+ }) {
259660
+ const possiblePrivateKeys = node.privateKeys?.filter(isValidPrivateKey) ?? [];
259661
+ const defaultAddress = hardhatConfig.networks?.btp?.from ?? possiblePrivateKeys[0]?.address;
259662
+ const defaultPossible = accept && defaultAddress;
259663
+ if (defaultPossible) {
259664
+ if (possiblePrivateKeys.some((privateKey) => privateKey.address?.toLowerCase() === defaultAddress?.toLowerCase())) {
259665
+ return defaultAddress;
259666
+ }
259667
+ note(`Private key with address '${defaultAddress}' is not activated on the node '${node.uniqueName}'.
259668
+ Please select another key or activate this key on the node and try again.`, "warn");
259669
+ }
259670
+ const address = await esm_default3({
259671
+ message: "Which private key do you want to deploy from?",
259672
+ choices: possiblePrivateKeys.map(({ address: address2, name: name3 }) => ({
259673
+ name: name3,
259674
+ value: address2
259675
+ })),
259676
+ default: defaultAddress
259677
+ });
259678
+ return address;
259679
+ }
259680
+
259191
259681
  // src/utils/smart-contract-set/hardhat-config.ts
259192
259682
  async function getHardhatConfigData(envConfig) {
259193
259683
  try {
@@ -259277,7 +259767,7 @@ function hardhatDeployRemoteCommand() {
259277
259767
  }
259278
259768
  let address = defaultSender ?? null;
259279
259769
  if (!defaultSender) {
259280
- address = await addressPrompt({ env: env2, accept: autoAccept, prod, node, hardhatConfig });
259770
+ address = await addressPrompt({ accept: autoAccept, node, hardhatConfig });
259281
259771
  }
259282
259772
  if (!address) {
259283
259773
  return nothingSelectedError("private key");
@@ -259923,4 +260413,4 @@ async function sdkCliCommand(argv = process.argv) {
259923
260413
  // src/cli.ts
259924
260414
  sdkCliCommand();
259925
260415
 
259926
- //# debugId=579B1D5EE52893B764756E2164756E21
260416
+ //# debugId=95F4205E6CFC3DAA64756E2164756E21