@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 +4 -4
- package/dist/api/subgraph/index.d.ts +2 -2
- package/dist/config/chains.d.ts +83 -1
- package/dist/libs/api/index.d.ts +1 -1
- package/dist/main.js +28 -4
- package/dist/main.mjs +29 -5
- package/package.json +1 -1
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
|
|
32
|
+
npm i @ssv-labs/ssv-sdk
|
|
33
33
|
|
|
34
34
|
# Using yarn
|
|
35
|
-
yarn add ssv-
|
|
35
|
+
yarn add @ssv-labs/ssv-sdk
|
|
36
36
|
|
|
37
37
|
# Using pnpm
|
|
38
|
-
pnpm install ssv-
|
|
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
|
|
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
|
|
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;
|
package/dist/config/chains.d.ts
CHANGED
|
@@ -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>;
|
package/dist/libs/api/index.d.ts
CHANGED
|
@@ -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
|
|
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
|