@ssv-labs/ssv-sdk 0.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 (64) hide show
  1. package/LICENSE +674 -0
  2. package/README.html +102 -0
  3. package/README.md +136 -0
  4. package/README.pdf +0 -0
  5. package/dist/abi/holesky/v4/getter.d.ts +824 -0
  6. package/dist/abi/holesky/v4/setter.d.ts +1662 -0
  7. package/dist/abi/mainnet/v4/getter.d.ts +824 -0
  8. package/dist/abi/mainnet/v4/setter.d.ts +1677 -0
  9. package/dist/abi/token.d.ts +292 -0
  10. package/dist/api/ssv-api/index.d.ts +16 -0
  11. package/dist/api/subgraph/index.d.ts +101 -0
  12. package/dist/config/chains.d.ts +94 -0
  13. package/dist/config/create.d.ts +45 -0
  14. package/dist/config/globals.d.ts +33 -0
  15. package/dist/config/index.d.ts +3 -0
  16. package/dist/config-DPI30L0i.js +5159 -0
  17. package/dist/config-DlwfpwZd.mjs +5161 -0
  18. package/dist/contract-interactions/create.d.ts +3 -0
  19. package/dist/contract-interactions/index.d.ts +1 -0
  20. package/dist/contract-interactions/types.d.ts +93 -0
  21. package/dist/graphql/graphql.d.ts +3249 -0
  22. package/dist/libs/api/index.d.ts +81 -0
  23. package/dist/libs/cluster/index.d.ts +5636 -0
  24. package/dist/libs/cluster/methods/deposit.d.ts +286 -0
  25. package/dist/libs/cluster/methods/exit-validators.d.ts +283 -0
  26. package/dist/libs/cluster/methods/index.d.ts +8 -0
  27. package/dist/libs/cluster/methods/liquidate-cluster.d.ts +281 -0
  28. package/dist/libs/cluster/methods/reactivate-cluster.d.ts +282 -0
  29. package/dist/libs/cluster/methods/register-validators.d.ts +3652 -0
  30. package/dist/libs/cluster/methods/remove-validators.d.ts +283 -0
  31. package/dist/libs/cluster/methods/set-fee-recipient.d.ts +282 -0
  32. package/dist/libs/cluster/methods/withdraw.d.ts +282 -0
  33. package/dist/libs/operator/index.d.ts +4005 -0
  34. package/dist/libs/operator/methods.d.ts +844 -0
  35. package/dist/libs/utils/index.d.ts +32 -0
  36. package/dist/libs/utils/methods/get-cluster-balance.d.ts +9 -0
  37. package/dist/libs/utils/methods/index.d.ts +4 -0
  38. package/dist/libs/utils/methods/keyshares.d.ts +21 -0
  39. package/dist/libs/utils/methods/keystores.d.ts +13 -0
  40. package/dist/libs/utils/methods/methods.d.ts +2 -0
  41. package/dist/main.d.ts +8 -0
  42. package/dist/main.js +36437 -0
  43. package/dist/main.mjs +36437 -0
  44. package/dist/mock/api.d.ts +3 -0
  45. package/dist/mock/config.d.ts +6 -0
  46. package/dist/mock/index.d.ts +8 -0
  47. package/dist/sdk.d.ts +14 -0
  48. package/dist/types/contract-interactions.d.ts +21 -0
  49. package/dist/types/methods.d.ts +3 -0
  50. package/dist/types/operator.d.ts +9 -0
  51. package/dist/types/utils.d.ts +3 -0
  52. package/dist/utils/bigint.d.ts +29 -0
  53. package/dist/utils/cluster.d.ts +8 -0
  54. package/dist/utils/contract.d.ts +3 -0
  55. package/dist/utils/index.d.ts +9 -0
  56. package/dist/utils/keyshares.d.ts +21 -0
  57. package/dist/utils/number.d.ts +21 -0
  58. package/dist/utils/operator.d.ts +5 -0
  59. package/dist/utils/try-catch.d.ts +1 -0
  60. package/dist/utils/url-join.d.ts +1 -0
  61. package/dist/utils/zod/config.d.ts +9 -0
  62. package/dist/utils.js +43 -0
  63. package/dist/utils.mjs +43 -0
  64. package/package.json +136 -0
@@ -0,0 +1,3 @@
1
+ import { ContractNames, ReadProps, ReaderFunctions, WriteProps, WriterFunctions } from './types';
2
+ export declare const createWriter: <T extends ContractNames>({ abi, publicClient, walletClient, contractAddress, }: WriteProps) => WriterFunctions<T>;
3
+ export declare const createReader: <T extends ContractNames>({ abi, publicClient, contractAddress, }: ReadProps) => ReaderFunctions<T>;
@@ -0,0 +1 @@
1
+ export * from './create';
@@ -0,0 +1,93 @@
1
+ import { MainnetV4GetterABI } from '../abi/mainnet/v4/getter';
2
+ import { MainnetV4SetterABI } from '../abi/mainnet/v4/setter';
3
+ import { TokenABI } from '../abi/token';
4
+ import { AbiInputsToParams } from '../types/contract-interactions';
5
+ import { Prettify } from '../types/utils';
6
+ import { Abi, Address, ExtractAbiFunctions } from 'abitype';
7
+ import { ContractFunctionArgs, ContractFunctionName, DecodeEventLogReturnType, Hash, PublicClient, ReadContractReturnType, SimulateContractParameters, SimulateContractReturnType, WaitForTransactionReceiptReturnType, WalletClient } from 'viem';
8
+ export type SupportedAbis = typeof TokenABI | typeof MainnetV4GetterABI | typeof MainnetV4SetterABI;
9
+ export type TokenEvents = DecodeEventLogReturnType<typeof TokenABI>;
10
+ export type MainnetEvents = DecodeEventLogReturnType<typeof MainnetV4SetterABI>;
11
+ export type SupportedEvents = TokenEvents | MainnetEvents;
12
+ export type Contracts = {
13
+ setter: {
14
+ events: MainnetEvents | TokenEvents;
15
+ abi: typeof MainnetV4SetterABI;
16
+ writeFnNames: ContractFunctionName<typeof MainnetV4SetterABI, 'nonpayable' | 'payable'>;
17
+ writeFunctions: ExtractAbiFunctions<typeof MainnetV4SetterABI, 'nonpayable' | 'payable'>;
18
+ readFnNames: ContractFunctionName<typeof MainnetV4SetterABI, 'view' | 'pure'>;
19
+ readFunctions: ExtractAbiFunctions<typeof MainnetV4SetterABI, 'view' | 'pure'>;
20
+ };
21
+ getter: {
22
+ events: MainnetEvents | TokenEvents;
23
+ abi: typeof MainnetV4GetterABI;
24
+ writeFnNames: ContractFunctionName<typeof MainnetV4GetterABI, 'view' | 'pure'>;
25
+ writeFunctions: ExtractAbiFunctions<typeof MainnetV4GetterABI, 'nonpayable' | 'payable'>;
26
+ readFnNames: ContractFunctionName<typeof MainnetV4GetterABI, 'view' | 'pure'>;
27
+ readFunctions: ExtractAbiFunctions<typeof MainnetV4GetterABI, 'view' | 'pure'>;
28
+ };
29
+ token: {
30
+ events: TokenEvents;
31
+ abi: typeof TokenABI;
32
+ writeFnNames: ContractFunctionName<typeof TokenABI, 'nonpayable' | 'payable'>;
33
+ writeFunctions: ExtractAbiFunctions<typeof TokenABI, 'nonpayable' | 'payable'>;
34
+ readFnNames: ContractFunctionName<typeof TokenABI, 'view' | 'pure'>;
35
+ readFunctions: ExtractAbiFunctions<typeof TokenABI, 'view' | 'pure'>;
36
+ };
37
+ };
38
+ export type WriteFns = Contracts[keyof Contracts]['writeFunctions'];
39
+ export type WriteFnNames = Contracts[keyof Contracts]['writeFnNames'];
40
+ export type WriteReturnType<T extends SupportedEvents> = Promise<{
41
+ hash: Hash;
42
+ wait: () => Promise<WaitForTransactionReceiptReturnType & {
43
+ events: T[];
44
+ }>;
45
+ }>;
46
+ export type WriteOptions<K extends WriteFns> = Omit<SimulateContractParameters<SupportedAbis, K['name']>, 'chain' | 'args' | 'value' | 'abi' | 'functionName' | 'address' | 'account' | 'value'>;
47
+ export type SmartFnWriteOptions<K extends Record<string, unknown>> = Omit<SimulateContractParameters, 'chain' | 'args' | 'value' | 'abi' | 'functionName' | 'address' | 'account' | 'value'> & {
48
+ args: K;
49
+ };
50
+ export type WriteProps = {
51
+ abi: Abi;
52
+ publicClient: PublicClient;
53
+ walletClient: WalletClient;
54
+ contractAddress: Address;
55
+ };
56
+ export type ReadProps = {
57
+ abi: SupportedAbis;
58
+ publicClient: PublicClient;
59
+ contractAddress: Address;
60
+ };
61
+ export type ContractNames = Prettify<keyof Contracts>;
62
+ export type WriterFunctions<ContractName extends ContractNames, Fns extends Contracts[ContractName]['writeFunctions'] = Contracts[ContractName]['writeFunctions']> = {
63
+ [K in Fns as K['name']]: K['inputs'] extends readonly [] ? {
64
+ (props?: Prettify<(K['stateMutability'] extends 'payable' ? {
65
+ value?: bigint;
66
+ } : object) & WriteOptions<K>>): WriteReturnType<Contracts[ContractName]['events']>;
67
+ simulate: (props?: Prettify<(K['stateMutability'] extends 'payable' ? {
68
+ value?: bigint;
69
+ } : object) & WriteOptions<K>>) => SimulateContractReturnType<SupportedAbis, K['name']>;
70
+ } : {
71
+ (props: Prettify<((K['stateMutability'] extends 'payable' ? {
72
+ value?: bigint;
73
+ } : object) & (K['inputs'] extends readonly [] ? object : {
74
+ args: Prettify<AbiInputsToParams<K['inputs']>>;
75
+ })) & WriteOptions<K>>): WriteReturnType<Contracts[ContractName]['events']>;
76
+ simulate: (props: Prettify<((K['stateMutability'] extends 'payable' ? {
77
+ value?: bigint;
78
+ } : object) & (K['inputs'] extends readonly [] ? object : {
79
+ args: Prettify<AbiInputsToParams<K['inputs']>>;
80
+ })) & WriteOptions<K>>) => SimulateContractReturnType<SupportedAbis, K['name']>;
81
+ };
82
+ };
83
+ export type ReaderFunctions<ContractName extends keyof Contracts, Fns extends Contracts[ContractName]['readFunctions'] = Contracts[ContractName]['readFunctions']> = {
84
+ [K in Fns as K['name']]: K['inputs'] extends readonly [] ? () => Promise<ReadContractReturnType<[
85
+ Fns
86
+ ], K['name'], ContractFunctionArgs<[Fns], 'pure' | 'view', K['name']>>> : (args: Prettify<AbiInputsToParams<K['inputs']>>) => Promise<ReadContractReturnType<[
87
+ Fns
88
+ ], K['name'], ContractFunctionArgs<[Fns], 'pure' | 'view', K['name']>>>;
89
+ };
90
+ export type ContractInteractions<ContractName extends ContractNames> = {
91
+ write: WriterFunctions<ContractName>;
92
+ read: ReaderFunctions<ContractName>;
93
+ };