@ssv-labs/ssv-sdk 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,13 +29,13 @@ The SDK consists of four main modules:
29
29
 
30
30
  ```bash
31
31
  # Using npm
32
- npm install ssv-sdk ssv-keys viem
32
+ npm i @ssv-labs/ssv-sdk
33
33
 
34
34
  # Using yarn
35
- yarn add ssv-sdk ssv-keys viem
35
+ yarn add @ssv-labs/ssv-sdk
36
36
 
37
37
  # Using pnpm
38
- pnpm install ssv-sdk ssv-keys viem
38
+ pnpm install @ssv-labs/ssv-sdk
39
39
  ```
40
40
 
41
41
  ## Quick Start
@@ -43,7 +43,7 @@ pnpm install ssv-sdk ssv-keys viem
43
43
  ### Initialize the SDK
44
44
 
45
45
  ```typescript
46
- import { SSVSDK, chains } from 'ssv-sdk'
46
+ import { SSVSDK, chains } from '@ssv-labs/ssv-sdk'
47
47
  import { createPublicClient, createWalletClient, http } from 'viem'
48
48
  import { privateKeyToAccount } from 'viem/accounts'
49
49
 
@@ -1,7 +1,7 @@
1
1
  import { RemoveConfigArg } from '../../types/methods';
2
2
  import { GraphQLClient } from 'graphql-request';
3
3
  import { GetClusterBalanceQueryVariables, GetClusterQueryVariables, GetClusterSnapshotQueryVariables, GetClustersQueryVariables, GetOperatorQueryVariables, GetOperatorsQueryVariables, GetOwnerNonceByBlockQueryVariables, GetValidatorQueryVariables, GetValidatorsQueryVariables } from '../../graphql/graphql';
4
- export declare const getOwnerNonce: (client: GraphQLClient, args: GetOwnerNonceByBlockQueryVariables) => Promise<string | undefined>;
4
+ export declare const getOwnerNonce: (client: GraphQLClient, args: GetOwnerNonceByBlockQueryVariables) => Promise<string>;
5
5
  export declare const getClusterSnapshot: (client: GraphQLClient, args: GetClusterSnapshotQueryVariables) => Promise<{
6
6
  active: boolean;
7
7
  validatorCount: string;
@@ -50,7 +50,7 @@ export declare const getValidator: (client: GraphQLClient, args: GetValidatorQue
50
50
  } | null | undefined>;
51
51
  export declare const getClusterBalance: (client: GraphQLClient, args: GetClusterBalanceQueryVariables) => Promise<import('../../graphql/graphql').GetClusterBalanceQuery>;
52
52
  export declare const getQueries: (client: GraphQLClient) => {
53
- getOwnerNonce: RemoveConfigArg<(client: GraphQLClient, args: GetOwnerNonceByBlockQueryVariables) => Promise<string | undefined>>;
53
+ getOwnerNonce: RemoveConfigArg<(client: GraphQLClient, args: GetOwnerNonceByBlockQueryVariables) => Promise<string>>;
54
54
  getClusterSnapshot: RemoveConfigArg<(client: GraphQLClient, args: GetClusterSnapshotQueryVariables) => Promise<{
55
55
  active: boolean;
56
56
  validatorCount: string;
@@ -1,4 +1,45 @@
1
1
  import { Address } from 'abitype';
2
+ export declare const hoodi: {
3
+ blockExplorers?: {
4
+ [key: string]: {
5
+ name: string;
6
+ url: string;
7
+ apiUrl?: string | undefined;
8
+ };
9
+ default: {
10
+ name: string;
11
+ url: string;
12
+ apiUrl?: string | undefined;
13
+ };
14
+ } | undefined;
15
+ contracts?: {
16
+ [x: string]: import('viem').ChainContract | {
17
+ [sourceId: number]: import('viem').ChainContract | undefined;
18
+ } | undefined;
19
+ ensRegistry?: import('viem').ChainContract | undefined;
20
+ ensUniversalResolver?: import('viem').ChainContract | undefined;
21
+ multicall3?: import('viem').ChainContract | undefined;
22
+ universalSignatureVerifier?: import('viem').ChainContract | undefined;
23
+ } | undefined;
24
+ id: 560048;
25
+ name: "Hoodi";
26
+ nativeCurrency: {
27
+ readonly name: "Hoodi Ether";
28
+ readonly symbol: "ETH";
29
+ readonly decimals: 18;
30
+ };
31
+ rpcUrls: {
32
+ readonly default: {
33
+ readonly http: readonly ["https://rpc.hoodi.ethpandaops.io"];
34
+ };
35
+ };
36
+ sourceId?: number | undefined;
37
+ testnet: true;
38
+ custom?: Record<string, unknown> | undefined;
39
+ fees?: import('viem').ChainFees<undefined> | undefined;
40
+ formatters?: undefined;
41
+ serializers?: import('viem').ChainSerializers<undefined, import('viem').TransactionSerializable> | undefined;
42
+ };
2
43
  export declare const chains: {
3
44
  readonly mainnet: {
4
45
  blockExplorers: {
@@ -81,8 +122,49 @@ export declare const chains: {
81
122
  formatters?: undefined;
82
123
  serializers?: import('viem').ChainSerializers<undefined, import('viem').TransactionSerializable<bigint, number>> | undefined;
83
124
  };
125
+ readonly hoodi: {
126
+ blockExplorers?: {
127
+ [key: string]: {
128
+ name: string;
129
+ url: string;
130
+ apiUrl?: string | undefined;
131
+ };
132
+ default: {
133
+ name: string;
134
+ url: string;
135
+ apiUrl?: string | undefined;
136
+ };
137
+ } | undefined;
138
+ contracts?: {
139
+ [x: string]: import('viem').ChainContract | {
140
+ [sourceId: number]: import('viem').ChainContract | undefined;
141
+ } | undefined;
142
+ ensRegistry?: import('viem').ChainContract | undefined;
143
+ ensUniversalResolver?: import('viem').ChainContract | undefined;
144
+ multicall3?: import('viem').ChainContract | undefined;
145
+ universalSignatureVerifier?: import('viem').ChainContract | undefined;
146
+ } | undefined;
147
+ id: 560048;
148
+ name: "Hoodi";
149
+ nativeCurrency: {
150
+ readonly name: "Hoodi Ether";
151
+ readonly symbol: "ETH";
152
+ readonly decimals: 18;
153
+ };
154
+ rpcUrls: {
155
+ readonly default: {
156
+ readonly http: readonly ["https://rpc.hoodi.ethpandaops.io"];
157
+ };
158
+ };
159
+ sourceId?: number | undefined;
160
+ testnet: true;
161
+ custom?: Record<string, unknown> | undefined;
162
+ fees?: import('viem').ChainFees<undefined> | undefined;
163
+ formatters?: undefined;
164
+ serializers?: import('viem').ChainSerializers<undefined, import('viem').TransactionSerializable> | undefined;
165
+ };
84
166
  };
85
- export declare const chainIds: (1 | 17000)[];
167
+ export declare const chainIds: (1 | 560048 | 17000)[];
86
168
  export type SupportedChainsIDs = (typeof chainIds)[number];
87
169
  export declare const graph_endpoints: Record<SupportedChainsIDs, string>;
88
170
  export declare const rest_endpoints: Record<SupportedChainsIDs, string>;
@@ -3,7 +3,7 @@ export declare const createQueries: (graphqlClient: GraphQLClient) => {
3
3
  getOwnerNonce: import('../../types/methods').RemoveConfigArg<(client: GraphQLClient, args: import('../../graphql/graphql').Exact<{
4
4
  owner: string;
5
5
  block?: import('../../graphql/graphql').InputMaybe<number> | undefined;
6
- }>) => Promise<string | undefined>>;
6
+ }>) => Promise<string>>;
7
7
  getClusterSnapshot: import('../../types/methods').RemoveConfigArg<(client: GraphQLClient, args: import('../../graphql/graphql').Exact<{
8
8
  id: string;
9
9
  }>) => Promise<{
package/dist/main.js CHANGED
@@ -27124,7 +27124,7 @@ const GetValidatorDocument = { "kind": "Document", "definitions": [{ "kind": "Op
27124
27124
  const GetClusterBalanceDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "GetClusterBalance" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "clusterId" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }, { "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "daoAddress" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }, { "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "operatorIds" } }, "type": { "kind": "NonNullType", "type": { "kind": "ListType", "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "String" } } } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "_meta" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "block" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "number" } }] } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "daovalues" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "daoAddress" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "networkFee" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndexBlockNumber" } }, { "kind": "Field", "name": { "kind": "Name", "value": "liquidationThreshold" } }, { "kind": "Field", "name": { "kind": "Name", "value": "minimumLiquidationCollateral" } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "operators" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "where" }, "value": { "kind": "ObjectValue", "fields": [{ "kind": "ObjectField", "name": { "kind": "Name", "value": "id_in" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "operatorIds" } } }] } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "fee" } }, { "kind": "Field", "name": { "kind": "Name", "value": "feeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "feeIndexBlockNumber" } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "cluster" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "clusterId" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "validatorCount" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "index" } }, { "kind": "Field", "name": { "kind": "Name", "value": "balance" } }] } }] } }] };
27125
27125
  const getOwnerNonce = (client, args) => {
27126
27126
  const document2 = typeof args.block === "number" ? GetOwnerNonceByBlockDocument : GetOwnerNonceDocument;
27127
- return client.request(document2, args).then((r2) => r2.account?.nonce);
27127
+ return client.request(document2, args).then((r2) => r2.account?.nonce || "0").catch(() => "0");
27128
27128
  };
27129
27129
  const getClusterSnapshot = (client, args) => client.request(GetClusterSnapshotDocument, args).then((res) => res.cluster);
27130
27130
  const getCluster = (client, args) => client.request(GetClusterDocument, args).then((res) => res.cluster);
@@ -27228,18 +27228,36 @@ const mainnet = /* @__PURE__ */ defineChain({
27228
27228
  }
27229
27229
  }
27230
27230
  });
27231
+ const hoodi = viem.defineChain({
27232
+ id: 560048,
27233
+ name: "Hoodi",
27234
+ rpcUrls: {
27235
+ default: {
27236
+ http: ["https://rpc.hoodi.ethpandaops.io"]
27237
+ }
27238
+ },
27239
+ nativeCurrency: {
27240
+ name: "Hoodi Ether",
27241
+ symbol: "ETH",
27242
+ decimals: 18
27243
+ },
27244
+ testnet: true
27245
+ });
27231
27246
  const chains = {
27232
27247
  mainnet,
27233
- holesky
27248
+ holesky,
27249
+ hoodi
27234
27250
  };
27235
27251
  const chainIds = Object.values(chains).map((chain) => chain.id);
27236
27252
  const graph_endpoints = {
27237
27253
  [mainnet.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-ethereum/version/latest",
27238
- [holesky.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-holesky/version/latest"
27254
+ [holesky.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-holesky/version/latest",
27255
+ [hoodi.id]: "https://graph-node-hoodi.stage.ops.ssvlabsinternal.com/subgraphs/name/ssv-bapps-hoodi/graphql"
27239
27256
  };
27240
27257
  const rest_endpoints = {
27241
27258
  [mainnet.id]: "https://api.ssv.network/api/v4/mainnet",
27242
- [holesky.id]: "https://api.ssv.network/api/v4/holesky"
27259
+ [holesky.id]: "https://api.ssv.network/api/v4/holesky",
27260
+ [hoodi.id]: "https://api.stage.ops.ssvlabsinternal.com/api/v4/hoodi"
27243
27261
  };
27244
27262
  const contracts = {
27245
27263
  [mainnet.id]: {
@@ -27251,6 +27269,11 @@ const contracts = {
27251
27269
  setter: "0x38A4794cCEd47d3baf7370CcC43B560D3a1beEFA",
27252
27270
  getter: "0x352A18AEe90cdcd825d1E37d9939dCA86C00e281",
27253
27271
  token: "0xad45A78180961079BFaeEe349704F411dfF947C6"
27272
+ },
27273
+ [hoodi.id]: {
27274
+ setter: "0x58410Bef803ECd7E63B23664C586A6DB72DAf59c",
27275
+ getter: "0x5AdDb3f1529C5ec70D77400499eE4bbF328368fe",
27276
+ token: "0x9F5d4Ec84fC4785788aB44F9de973cF34F7A038e"
27254
27277
  }
27255
27278
  };
27256
27279
  const MainnetV4GetterABI = [
@@ -36432,6 +36455,7 @@ exports.getValidator = getValidator;
36432
36455
  exports.getValidators = getValidators;
36433
36456
  exports.globals = globals;
36434
36457
  exports.graph_endpoints = graph_endpoints;
36458
+ exports.hoodi = hoodi;
36435
36459
  exports.isConfig = isConfig;
36436
36460
  exports.registerValidatorsByClusterSizeLimits = registerValidatorsByClusterSizeLimits;
36437
36461
  exports.rest_endpoints = rest_endpoints;
package/dist/main.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { d as decodeOperatorPublicKey, M as MapCache, S as Symbol$1, e as eq, U as Uint8Array$1, g as getAllKeys, a as getTag, i as isBuffer, b as Stack, c as isTypedArray$1, f as isArray$1, h as isObjectLike$1, s as stringifyBigints, j as isUndefined$1, t as tryCatch$1, k as configArgsSchema, l as getClusterSnapshot$1, m as isKeySharesItem, n as createClusterId, o as createEmptyCluster, r as roundOperatorFee, p as bigintMax, q as ensureNoKeysharesErrors, u as ensureValidatorsUniqueness, v as validateConsistentOperatorPublicKeys, w as validateConsistentOperatorIds, x as sortNumbers, K as KeysharesValidationError, y as KeysharesValidationErrors } from "./config-DlwfpwZd.mjs";
2
- import { decodeEventLog, encodeAbiParameters, parseAbiParameters, isAddressEqual, zeroAddress } from "viem";
2
+ import { defineChain as defineChain$1, decodeEventLog, encodeAbiParameters, parseAbiParameters, isAddressEqual, zeroAddress } from "viem";
3
3
  import { SSVKeys, KeyShares, KeySharesItem } from "ssv-keys";
4
4
  function getDefaultExportFromCjs$1(x) {
5
5
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
@@ -27122,7 +27122,7 @@ const GetValidatorDocument = { "kind": "Document", "definitions": [{ "kind": "Op
27122
27122
  const GetClusterBalanceDocument = { "kind": "Document", "definitions": [{ "kind": "OperationDefinition", "operation": "query", "name": { "kind": "Name", "value": "GetClusterBalance" }, "variableDefinitions": [{ "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "clusterId" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }, { "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "daoAddress" } }, "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "ID" } } } }, { "kind": "VariableDefinition", "variable": { "kind": "Variable", "name": { "kind": "Name", "value": "operatorIds" } }, "type": { "kind": "NonNullType", "type": { "kind": "ListType", "type": { "kind": "NonNullType", "type": { "kind": "NamedType", "name": { "kind": "Name", "value": "String" } } } } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "_meta" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "block" }, "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "number" } }] } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "daovalues" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "daoAddress" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "networkFee" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndexBlockNumber" } }, { "kind": "Field", "name": { "kind": "Name", "value": "liquidationThreshold" } }, { "kind": "Field", "name": { "kind": "Name", "value": "minimumLiquidationCollateral" } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "operators" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "where" }, "value": { "kind": "ObjectValue", "fields": [{ "kind": "ObjectField", "name": { "kind": "Name", "value": "id_in" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "operatorIds" } } }] } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "fee" } }, { "kind": "Field", "name": { "kind": "Name", "value": "feeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "feeIndexBlockNumber" } }] } }, { "kind": "Field", "name": { "kind": "Name", "value": "cluster" }, "arguments": [{ "kind": "Argument", "name": { "kind": "Name", "value": "id" }, "value": { "kind": "Variable", "name": { "kind": "Name", "value": "clusterId" } } }], "selectionSet": { "kind": "SelectionSet", "selections": [{ "kind": "Field", "name": { "kind": "Name", "value": "validatorCount" } }, { "kind": "Field", "name": { "kind": "Name", "value": "networkFeeIndex" } }, { "kind": "Field", "name": { "kind": "Name", "value": "index" } }, { "kind": "Field", "name": { "kind": "Name", "value": "balance" } }] } }] } }] };
27123
27123
  const getOwnerNonce = (client, args) => {
27124
27124
  const document2 = typeof args.block === "number" ? GetOwnerNonceByBlockDocument : GetOwnerNonceDocument;
27125
- return client.request(document2, args).then((r2) => r2.account?.nonce);
27125
+ return client.request(document2, args).then((r2) => r2.account?.nonce || "0").catch(() => "0");
27126
27126
  };
27127
27127
  const getClusterSnapshot = (client, args) => client.request(GetClusterSnapshotDocument, args).then((res) => res.cluster);
27128
27128
  const getCluster = (client, args) => client.request(GetClusterDocument, args).then((res) => res.cluster);
@@ -27226,18 +27226,36 @@ const mainnet = /* @__PURE__ */ defineChain({
27226
27226
  }
27227
27227
  }
27228
27228
  });
27229
+ const hoodi = defineChain$1({
27230
+ id: 560048,
27231
+ name: "Hoodi",
27232
+ rpcUrls: {
27233
+ default: {
27234
+ http: ["https://rpc.hoodi.ethpandaops.io"]
27235
+ }
27236
+ },
27237
+ nativeCurrency: {
27238
+ name: "Hoodi Ether",
27239
+ symbol: "ETH",
27240
+ decimals: 18
27241
+ },
27242
+ testnet: true
27243
+ });
27229
27244
  const chains = {
27230
27245
  mainnet,
27231
- holesky
27246
+ holesky,
27247
+ hoodi
27232
27248
  };
27233
27249
  const chainIds = Object.values(chains).map((chain) => chain.id);
27234
27250
  const graph_endpoints = {
27235
27251
  [mainnet.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-ethereum/version/latest",
27236
- [holesky.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-holesky/version/latest"
27252
+ [holesky.id]: "https://api.studio.thegraph.com/query/71118/ssv-network-holesky/version/latest",
27253
+ [hoodi.id]: "https://graph-node-hoodi.stage.ops.ssvlabsinternal.com/subgraphs/name/ssv-bapps-hoodi/graphql"
27237
27254
  };
27238
27255
  const rest_endpoints = {
27239
27256
  [mainnet.id]: "https://api.ssv.network/api/v4/mainnet",
27240
- [holesky.id]: "https://api.ssv.network/api/v4/holesky"
27257
+ [holesky.id]: "https://api.ssv.network/api/v4/holesky",
27258
+ [hoodi.id]: "https://api.stage.ops.ssvlabsinternal.com/api/v4/hoodi"
27241
27259
  };
27242
27260
  const contracts = {
27243
27261
  [mainnet.id]: {
@@ -27249,6 +27267,11 @@ const contracts = {
27249
27267
  setter: "0x38A4794cCEd47d3baf7370CcC43B560D3a1beEFA",
27250
27268
  getter: "0x352A18AEe90cdcd825d1E37d9939dCA86C00e281",
27251
27269
  token: "0xad45A78180961079BFaeEe349704F411dfF947C6"
27270
+ },
27271
+ [hoodi.id]: {
27272
+ setter: "0x58410Bef803ECd7E63B23664C586A6DB72DAf59c",
27273
+ getter: "0x5AdDb3f1529C5ec70D77400499eE4bbF328368fe",
27274
+ token: "0x9F5d4Ec84fC4785788aB44F9de973cF34F7A038e"
27252
27275
  }
27253
27276
  };
27254
27277
  const MainnetV4GetterABI = [
@@ -36431,6 +36454,7 @@ export {
36431
36454
  getValidators,
36432
36455
  globals,
36433
36456
  graph_endpoints,
36457
+ hoodi,
36434
36458
  isConfig,
36435
36459
  registerValidatorsByClusterSizeLimits,
36436
36460
  rest_endpoints
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssv-labs/ssv-sdk",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "author": "SSV.Labs",
5
5
  "description": "ssv labs sdk",
6
6
  "keywords": [