@ssv-labs/ssv-sdk 0.1.2 → 1.0.1

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 (59) hide show
  1. package/README.html +4 -7
  2. package/README.md +37 -26
  3. package/dist/{KeyShares-7biQfDev.js → KeyShares-Bk9uzOlK.js} +255 -75
  4. package/dist/{KeyShares-DEqBZits.mjs → KeyShares-Dlp4Pa3b.mjs} +259 -79
  5. package/dist/abi/mainnet/v4/getter.d.ts +699 -74
  6. package/dist/abi/mainnet/v4/setter.d.ts +939 -59
  7. package/dist/api/subgraph/index.d.ts +36 -1
  8. package/dist/config/create.d.ts +2 -2
  9. package/dist/config/globals.d.ts +3 -0
  10. package/dist/{globals-CDOcDUnk.mjs → config-BdEJjnYA.mjs} +107 -79
  11. package/dist/{globals-DsaKgq3v.js → config-ClGS9Tic.js} +73 -45
  12. package/dist/contract-interactions/create.d.ts +1 -1
  13. package/dist/contract-interactions/types.d.ts +9 -3
  14. package/dist/graphql/graphql.d.ts +4663 -922
  15. package/dist/keys.js +1 -1
  16. package/dist/keys.mjs +5 -5
  17. package/dist/libs/api/index.d.ts +2 -0
  18. package/dist/libs/cluster/index.d.ts +3 -1
  19. package/dist/libs/cluster/methods/deposit.d.ts +150 -5
  20. package/dist/libs/cluster/methods/exit-validators.d.ts +149 -0
  21. package/dist/libs/cluster/methods/index.d.ts +3 -1
  22. package/dist/libs/cluster/methods/liquidate-cluster.d.ts +149 -0
  23. package/dist/libs/cluster/methods/liquidate-ssv.d.ts +430 -0
  24. package/dist/libs/cluster/methods/migrate-cluster-to-eth.d.ts +431 -0
  25. package/dist/libs/cluster/methods/reactivate-cluster.d.ts +149 -0
  26. package/dist/libs/cluster/methods/register-validators.d.ts +2222 -309
  27. package/dist/libs/cluster/methods/remove-validators.d.ts +149 -0
  28. package/dist/libs/cluster/methods/set-fee-recipient.d.ts +149 -0
  29. package/dist/libs/cluster/methods/withdraw.d.ts +149 -0
  30. package/dist/libs/dao/index.d.ts +8 -0
  31. package/dist/libs/dao/methods/commit-root.d.ts +432 -0
  32. package/dist/libs/dao/methods/index.d.ts +3 -0
  33. package/dist/libs/dao/methods/update-network-fee-ssv.d.ts +430 -0
  34. package/dist/libs/dao/methods/withdraw-network-ssv-earnings.d.ts +430 -0
  35. package/dist/libs/operator/index.d.ts +1525 -32
  36. package/dist/libs/operator/methods.d.ts +1731 -2
  37. package/dist/libs/ssv-keys/Encryption/__test__/RsaKeys.d.ts +1 -1
  38. package/dist/libs/ssv-keys/KeyShares/KeySharesItem.d.ts +1 -1
  39. package/dist/libs/ssv-keys/SSVKeys.d.ts +1 -1
  40. package/dist/libs/ssv-keys/exceptions/index.d.ts +1 -1
  41. package/dist/libs/ssv-keys/index.d.ts +1 -1
  42. package/dist/libs/ssv-keys/interfaces/index.d.ts +2 -2
  43. package/dist/libs/utils/index.d.ts +6 -4
  44. package/dist/libs/utils/methods/calc-deposit-from-runway.d.ts +11 -0
  45. package/dist/libs/utils/methods/get-cluster-balance.d.ts +3 -1
  46. package/dist/libs/utils/methods/keyshares.d.ts +4 -2
  47. package/dist/libs/utils/methods/keystores.d.ts +4 -4
  48. package/dist/main.d.ts +1 -0
  49. package/dist/main.js +2714 -729
  50. package/dist/main.mjs +2746 -761
  51. package/dist/sdk.d.ts +8 -4
  52. package/dist/types/contract-interactions.d.ts +11 -0
  53. package/dist/types/methods.d.ts +4 -3
  54. package/dist/utils/cluster.d.ts +3 -3
  55. package/dist/utils/funding.d.ts +29 -0
  56. package/dist/utils/zod/config.d.ts +1 -1
  57. package/dist/utils.js +38 -38
  58. package/dist/utils.mjs +34 -34
  59. package/package.json +29 -17
package/dist/sdk.d.ts CHANGED
@@ -1,14 +1,18 @@
1
1
  import { createClusterManager } from './libs/cluster';
2
+ import { createDaoManager } from './libs/dao';
2
3
  import { createOperatorManager } from './libs/operator';
3
4
  import { createUtils } from './libs/utils';
4
- import { ConfigReturnType } from './config/create';
5
- import { ConfigArgs } from './utils/zod/config';
5
+ import { WalletClient } from 'viem';
6
+ import { ConfigReturnType } from './config';
7
+ import { ConfigArgs } from './utils';
6
8
  export declare class SSVSDK {
7
9
  readonly config: ConfigReturnType;
8
10
  readonly clusters: ReturnType<typeof createClusterManager>;
9
- readonly operators: ReturnType<typeof createOperatorManager>;
11
+ readonly dao: ReturnType<typeof createDaoManager>;
12
+ operators: ReturnType<typeof createOperatorManager>;
10
13
  readonly api: ConfigReturnType['api'];
11
- readonly contract: ConfigReturnType['contract'];
14
+ contract: ConfigReturnType['contract'];
12
15
  readonly utils: ReturnType<typeof createUtils>;
13
16
  constructor(props: ConfigArgs | ConfigReturnType);
17
+ connectWallet(walletClient: WalletClient): this;
14
18
  }
@@ -14,6 +14,17 @@ export type ClusterSnapshot = AbiParameterToPrimitiveType<Extract<DepositFN['inp
14
14
  export type AbiInputsToParams<T extends readonly AbiParameter[]> = {
15
15
  [K in T[number] as K['name'] extends string ? K['name'] : never]: AbiParameterToPrimitiveType<K>;
16
16
  };
17
+ export declare class MissingAbiParameterError extends Error {
18
+ readonly code = "MISSING_ABI_PARAMETER";
19
+ readonly functionName: string;
20
+ readonly parameterName: string;
21
+ readonly parameterIndex: number;
22
+ constructor({ functionName, parameterName, parameterIndex, }: {
23
+ functionName: string;
24
+ parameterName: string;
25
+ parameterIndex: number;
26
+ });
27
+ }
17
28
  export declare const paramsToArray: <Fn extends AbiFunction, Params extends Record<string, AbiTypeToPrimitiveType<AbiType>>>({ params, abiFunction, }: {
18
29
  params: Params;
19
30
  abiFunction: Fn;
@@ -1,3 +1,4 @@
1
- import { Prettify } from 'viem';
2
- export type RemoveConfigArg<T extends (...args: any[]) => any> = (props: Prettify<Omit<Parameters<T>[1], 'config'>>) => ReturnType<T>;
3
- export type RemoveClientArg<T extends (...args: any[]) => any> = (props: Prettify<Omit<Parameters<T>[1], 'client'>>) => ReturnType<T>;
1
+ type Tail<T extends any[]> = T extends [any, ...infer R] ? R : never;
2
+ export type RemoveConfigArg<T extends (...args: any[]) => any> = (...args: Tail<Parameters<T>>) => ReturnType<T>;
3
+ export type RemoveClientArg<T extends (...args: any[]) => any> = (...args: Tail<Parameters<T>>) => ReturnType<T>;
4
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { GetClusterQuery } from '../graphql/graphql';
2
- import { ClusterSnapshot } from '../types/contract-interactions';
2
+ import { ClusterSnapshot as SolidityCluster } from '../types/contract-interactions';
3
3
  import { Hex } from 'viem';
4
4
  export declare const createClusterId: (ownerAddress: string, operatorIds: number[]) => string;
5
5
  export declare const isClusterId: (clusterId: string) => boolean;
6
- export declare const getClusterSnapshot: (cluster: NonNullable<GetClusterQuery["cluster"]>) => ClusterSnapshot;
7
- export declare const createEmptyCluster: (cluster?: Partial<ClusterSnapshot>) => ClusterSnapshot;
6
+ export declare const toSolidityCluster: (cluster: Pick<NonNullable<GetClusterQuery["cluster"]>, "active" | "balance" | "index" | "networkFeeIndex" | "validatorCount">) => SolidityCluster;
7
+ export declare const createEmptyCluster: (cluster?: Partial<SolidityCluster>) => SolidityCluster;
8
8
  export declare const add0x: (value: string | Hex) => Hex;
@@ -0,0 +1,29 @@
1
+ import { Prettify } from '../types/utils';
2
+ export declare const computeDailyAmount: (value: bigint, days: number) => bigint;
3
+ type LiquidationCollateralCostArgs = {
4
+ networkFee: bigint;
5
+ operatorsFee: bigint;
6
+ liquidationCollateralPeriod: bigint;
7
+ minimumLiquidationCollateral: bigint;
8
+ effectiveBalance: bigint;
9
+ };
10
+ export declare const computeLiquidationCollateralCostPerValidator: ({ networkFee, operatorsFee, liquidationCollateralPeriod, minimumLiquidationCollateral, effectiveBalance, }: LiquidationCollateralCostArgs) => bigint;
11
+ type ComputeFundingCostArgs = Prettify<{
12
+ fundingDays: number;
13
+ effectiveBalance?: bigint;
14
+ } & LiquidationCollateralCostArgs>;
15
+ export declare const computeFundingCost: (args: ComputeFundingCostArgs) => {
16
+ perValidator: {
17
+ networkCost: bigint;
18
+ operatorsCost: bigint;
19
+ liquidationCollateral: bigint;
20
+ };
21
+ subtotal: {
22
+ networkCost: bigint;
23
+ operatorsCost: bigint;
24
+ liquidationCollateral: bigint;
25
+ };
26
+ total: bigint;
27
+ effectiveBalance: bigint;
28
+ };
29
+ export {};
@@ -2,7 +2,7 @@ import { Address, PublicClient, WalletClient } from 'viem';
2
2
  import { z } from 'zod';
3
3
  export declare const configArgsSchema: z.ZodType<ConfigArgs>;
4
4
  export type ConfigArgs = {
5
- walletClient: WalletClient;
5
+ walletClient?: WalletClient;
6
6
  publicClient: PublicClient;
7
7
  extendedConfig?: {
8
8
  subgraph?: {
package/dist/utils.js CHANGED
@@ -1,43 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const globals = require("./globals-DsaKgq3v.js");
4
- const waitForTransaction = async (config, fn) => {
3
+ const config = require("./config-ClGS9Tic.js");
4
+ const waitForTransaction = async (config2, fn) => {
5
5
  const hash = await fn;
6
- return config.publicClient.waitForTransactionReceipt({ hash });
6
+ return config2.publicClient.waitForTransactionReceipt({ hash });
7
7
  };
8
- exports.KeysharesValidationError = globals.KeysharesValidationError;
9
- exports.KeysharesValidationErrors = globals.KeysharesValidationErrors;
10
- exports.KeysharesValidationErrorsMessages = globals.KeysharesValidationErrorsMessages;
11
- exports._percentageFormatter = globals._percentageFormatter;
12
- exports.add0x = globals.add0x;
13
- exports.bigintAbs = globals.bigintAbs;
14
- exports.bigintFloor = globals.bigintFloor;
15
- exports.bigintFormatter = globals.bigintFormatter;
16
- exports.bigintMax = globals.bigintMax;
17
- exports.bigintMin = globals.bigintMin;
18
- exports.bigintRound = globals.bigintRound;
19
- exports.bigintifyNumbers = globals.bigintifyNumbers;
20
- exports.configArgsSchema = globals.configArgsSchema;
21
- exports.createClusterId = globals.createClusterId;
22
- exports.createEmptyCluster = globals.createEmptyCluster;
23
- exports.decodeOperatorPublicKey = globals.decodeOperatorPublicKey;
24
- exports.ensureNoKeysharesErrors = globals.ensureNoKeysharesErrors;
25
- exports.ensureValidatorsUniqueness = globals.ensureValidatorsUniqueness;
26
- exports.ethFormatter = globals.ethFormatter;
27
- exports.formatBigintInput = globals.formatBigintInput;
28
- exports.formatSSV = globals.formatSSV;
29
- exports.getClusterSnapshot = globals.getClusterSnapshot;
30
- exports.getOperatorIds = globals.getOperatorIds;
31
- exports.isBigIntChanged = globals.isBigIntChanged;
32
- exports.isClusterId = globals.isClusterId;
33
- exports.isKeySharesItem = globals.isKeySharesItem;
34
- exports.ms = globals.ms;
35
- exports.numberFormatter = globals.numberFormatter;
36
- exports.percentageFormatter = globals.percentageFormatter;
37
- exports.roundOperatorFee = globals.roundOperatorFee;
38
- exports.sortNumbers = globals.sortNumbers;
39
- exports.stringifyBigints = globals.stringifyBigints;
40
- exports.tryCatch = globals.tryCatch;
41
- exports.validateConsistentOperatorIds = globals.validateConsistentOperatorIds;
42
- exports.validateConsistentOperatorPublicKeys = globals.validateConsistentOperatorPublicKeys;
8
+ exports.KeysharesValidationError = config.KeysharesValidationError;
9
+ exports.KeysharesValidationErrors = config.KeysharesValidationErrors;
10
+ exports.KeysharesValidationErrorsMessages = config.KeysharesValidationErrorsMessages;
11
+ exports._percentageFormatter = config._percentageFormatter;
12
+ exports.add0x = config.add0x;
13
+ exports.bigintAbs = config.bigintAbs;
14
+ exports.bigintFloor = config.bigintFloor;
15
+ exports.bigintFormatter = config.bigintFormatter;
16
+ exports.bigintMax = config.bigintMax;
17
+ exports.bigintMin = config.bigintMin;
18
+ exports.bigintRound = config.bigintRound;
19
+ exports.bigintifyNumbers = config.bigintifyNumbers;
20
+ exports.configArgsSchema = config.configArgsSchema;
21
+ exports.createClusterId = config.createClusterId;
22
+ exports.createEmptyCluster = config.createEmptyCluster;
23
+ exports.decodeOperatorPublicKey = config.decodeOperatorPublicKey;
24
+ exports.ensureNoKeysharesErrors = config.ensureNoKeysharesErrors;
25
+ exports.ensureValidatorsUniqueness = config.ensureValidatorsUniqueness;
26
+ exports.ethFormatter = config.ethFormatter;
27
+ exports.formatBigintInput = config.formatBigintInput;
28
+ exports.formatSSV = config.formatSSV;
29
+ exports.getOperatorIds = config.getOperatorIds;
30
+ exports.isBigIntChanged = config.isBigIntChanged;
31
+ exports.isClusterId = config.isClusterId;
32
+ exports.isKeySharesItem = config.isKeySharesItem;
33
+ exports.ms = config.ms;
34
+ exports.numberFormatter = config.numberFormatter;
35
+ exports.percentageFormatter = config.percentageFormatter;
36
+ exports.roundOperatorFee = config.roundOperatorFee;
37
+ exports.sortNumbers = config.sortNumbers;
38
+ exports.stringifyBigints = config.stringifyBigints;
39
+ exports.toSolidityCluster = config.toSolidityCluster;
40
+ exports.tryCatch = config.tryCatch;
41
+ exports.validateConsistentOperatorIds = config.validateConsistentOperatorIds;
42
+ exports.validateConsistentOperatorPublicKeys = config.validateConsistentOperatorPublicKeys;
43
43
  exports.waitForTransaction = waitForTransaction;
package/dist/utils.mjs CHANGED
@@ -1,43 +1,43 @@
1
- import { o, K, n, _, l, e, d, x, b, a, c, f, G, g, k, E, t, p, y, A, z, j, D, i, h, m, B, u, w, r, C, s, F, v, q } from "./globals-CDOcDUnk.mjs";
1
+ import { K, a, b, _, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G } from "./config-BdEJjnYA.mjs";
2
2
  const waitForTransaction = async (config, fn) => {
3
3
  const hash = await fn;
4
4
  return config.publicClient.waitForTransactionReceipt({ hash });
5
5
  };
6
6
  export {
7
- o as KeysharesValidationError,
8
- K as KeysharesValidationErrors,
9
- n as KeysharesValidationErrorsMessages,
7
+ K as KeysharesValidationError,
8
+ a as KeysharesValidationErrors,
9
+ b as KeysharesValidationErrorsMessages,
10
10
  _ as _percentageFormatter,
11
- l as add0x,
12
- e as bigintAbs,
13
- d as bigintFloor,
14
- x as bigintFormatter,
15
- b as bigintMax,
16
- a as bigintMin,
17
- c as bigintRound,
18
- f as bigintifyNumbers,
19
- G as configArgsSchema,
20
- g as createClusterId,
21
- k as createEmptyCluster,
22
- E as decodeOperatorPublicKey,
23
- t as ensureNoKeysharesErrors,
11
+ c as add0x,
12
+ d as bigintAbs,
13
+ e as bigintFloor,
14
+ f as bigintFormatter,
15
+ g as bigintMax,
16
+ h as bigintMin,
17
+ i as bigintRound,
18
+ j as bigintifyNumbers,
19
+ k as configArgsSchema,
20
+ l as createClusterId,
21
+ m as createEmptyCluster,
22
+ n as decodeOperatorPublicKey,
23
+ o as ensureNoKeysharesErrors,
24
24
  p as ensureValidatorsUniqueness,
25
- y as ethFormatter,
26
- A as formatBigintInput,
27
- z as formatSSV,
28
- j as getClusterSnapshot,
29
- D as getOperatorIds,
30
- i as isBigIntChanged,
31
- h as isClusterId,
32
- m as isKeySharesItem,
33
- B as ms,
34
- u as numberFormatter,
35
- w as percentageFormatter,
36
- r as roundOperatorFee,
37
- C as sortNumbers,
38
- s as stringifyBigints,
39
- F as tryCatch,
40
- v as validateConsistentOperatorIds,
41
- q as validateConsistentOperatorPublicKeys,
25
+ q as ethFormatter,
26
+ r as formatBigintInput,
27
+ s as formatSSV,
28
+ t as getOperatorIds,
29
+ u as isBigIntChanged,
30
+ v as isClusterId,
31
+ w as isKeySharesItem,
32
+ x as ms,
33
+ y as numberFormatter,
34
+ z as percentageFormatter,
35
+ A as roundOperatorFee,
36
+ B as sortNumbers,
37
+ C as stringifyBigints,
38
+ D as toSolidityCluster,
39
+ E as tryCatch,
40
+ F as validateConsistentOperatorIds,
41
+ G as validateConsistentOperatorPublicKeys,
42
42
  waitForTransaction
43
43
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssv-labs/ssv-sdk",
3
- "version": "0.1.2",
3
+ "version": "1.0.1",
4
4
  "author": "SSV.Labs",
5
5
  "description": "ssv labs sdk",
6
6
  "keywords": [
@@ -55,7 +55,7 @@
55
55
  ]
56
56
  },
57
57
  "devDependencies": {
58
- "@0no-co/graphqlsp": "1.15.0",
58
+ "@0no-co/graphqlsp": "1.15.2",
59
59
  "@chainsafe/bls-keystore": "3.1.0",
60
60
  "@commitlint/cli": "19.8.1",
61
61
  "@commitlint/config-conventional": "19.8.1",
@@ -65,15 +65,14 @@
65
65
  "@graphql-codegen/typescript": "4.1.6",
66
66
  "@graphql-codegen/typescript-graphql-request": "6.3.0",
67
67
  "@graphql-codegen/typescript-operations": "4.6.1",
68
- "@nomicfoundation/hardhat-toolbox": "6.0.0",
69
68
  "@nomicfoundation/hardhat-viem": "2.0.6",
70
69
  "@openzeppelin/contracts": "4.9.6",
71
70
  "@openzeppelin/contracts-upgradeable": "4.9.6",
72
71
  "@openzeppelin/hardhat-upgrades": "3.9.1",
73
72
  "@parcel/watcher": "2.5.1",
74
- "@release-it/conventional-changelog": "10.0.1",
73
+ "@release-it/conventional-changelog": "10.0.2",
75
74
  "@rollup/plugin-alias": "5.1.1",
76
- "@rollup/plugin-commonjs": "28.0.6",
75
+ "@rollup/plugin-commonjs": "28.0.9",
77
76
  "@rollup/plugin-json": "6.1.0",
78
77
  "@rollup/plugin-node-resolve": "16.0.3",
79
78
  "@rollup/plugin-terser": "0.4.4",
@@ -81,27 +80,28 @@
81
80
  "@types/eslint-plugin-prettier": "3.1.3",
82
81
  "@types/lodash-es": "4.17.12",
83
82
  "@types/node": "22.17.0",
84
- "@types/node-forge": "1.3.13",
83
+ "@types/node-forge": "1.3.14",
85
84
  "@types/semver": "7.7.0",
86
85
  "@typescript-eslint/eslint-plugin": "7.18.0",
87
86
  "@typescript-eslint/parser": "7.18.0",
88
87
  "@vitest/coverage-v8": "1.6.1",
89
88
  "@vitest/ui": "1.6.1",
90
89
  "commitizen": "4.3.1",
91
- "concurrently": "9.2.0",
90
+ "concurrently": "9.2.1",
92
91
  "cz-git": "1.12.0",
93
92
  "eslint": "8.57.1",
94
93
  "eslint-config-prettier": "9.1.2",
95
94
  "eslint-plugin-prettier": "5.5.4",
96
95
  "eslint-plugin-unused-imports": "4.1.4",
97
- "hardhat": "2.27.0",
96
+ "dotenv": "^16.4.5",
97
+ "hardhat": "2.27.2",
98
98
  "husky": "9.1.7",
99
99
  "lint-staged": "15.5.2",
100
100
  "prettier": "3.6.2",
101
101
  "release-it": "19.0.6",
102
- "rollup": "4.52.5",
102
+ "rollup": "4.59.0",
103
103
  "rollup-plugin-delete": "2.2.0",
104
- "rollup-plugin-dts": "6.2.1",
104
+ "rollup-plugin-dts": "6.3.0",
105
105
  "rollup-plugin-tsconfig-paths": "1.5.2",
106
106
  "rollup-plugin-typescript2": "0.36.0",
107
107
  "semantic-release": "23.1.1",
@@ -110,7 +110,6 @@
110
110
  "vite": "5.4.21",
111
111
  "vite-plugin-dts": "4.5.4",
112
112
  "vite-plugin-glob": "0.3.2",
113
- "vite-plugin-node-polyfills": "0.24.0",
114
113
  "vitest": "1.6.1"
115
114
  },
116
115
  "config": {
@@ -118,19 +117,32 @@
118
117
  "path": "node_modules/cz-git"
119
118
  }
120
119
  },
120
+ "pnpm": {
121
+ "overrides": {
122
+ "ajv@>=7.0.0 <8.18.0": "8.18.0",
123
+ "cookie@<0.7.0": "0.7.0",
124
+ "esbuild@<=0.24.2": "0.25.0",
125
+ "fast-xml-parser@>=5.0.0 <5.3.8": "5.3.8",
126
+ "immutable@<3.8.3": "3.8.3",
127
+ "lodash@<4.17.23": "4.17.23",
128
+ "minimatch@>=10.0.0 <10.2.3": "10.2.3",
129
+ "serialize-javascript@<=7.0.2": "7.0.3",
130
+ "tmp@<=0.2.3": "0.2.4",
131
+ "undici@<6.23.0": "6.23.0"
132
+ }
133
+ },
121
134
  "engines": {
122
135
  "node": ">=22"
123
136
  },
124
137
  "dependencies": {
125
138
  "@graphql-typed-document-node/core": "^3.2.0",
126
- "@safe-global/protocol-kit": "^5.2.18",
139
+ "@safe-global/protocol-kit": "5.2.22",
127
140
  "abitype": "^1.0.6",
128
141
  "bls-eth-wasm": "^1.4.0",
129
- "class-validator": "^0.14.2",
130
- "dotenv": "^16.4.5",
131
- "graphql-request": "^7.2.0",
132
- "lodash-es": "^4.17.21",
133
- "node-forge": "^1.3.1",
142
+ "class-validator": "0.14.3",
143
+ "graphql-request": "7.3.5",
144
+ "lodash-es": "^4.17.23",
145
+ "node-forge": "1.3.3",
134
146
  "scrypt-js": "^3.0.1",
135
147
  "tslib": "^2.8.1",
136
148
  "viem": "^2.21.30",