@lidofinance/lsv-cli 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (96) hide show
  1. package/README.md +217 -1
  2. package/dist/abi/Dashboard.js +1383 -0
  3. package/dist/abi/Dashboard.js.map +1 -0
  4. package/dist/abi/Delegation.js +1658 -0
  5. package/dist/abi/Delegation.js.map +1 -0
  6. package/dist/abi/LidoLocator.js +388 -0
  7. package/dist/abi/LidoLocator.js.map +1 -0
  8. package/dist/abi/StEth.js +496 -0
  9. package/dist/abi/StEth.js.map +1 -0
  10. package/dist/abi/StakingVault.js +786 -0
  11. package/dist/abi/StakingVault.js.map +1 -0
  12. package/dist/abi/TokenManager.js +759 -0
  13. package/dist/abi/TokenManager.js.map +1 -0
  14. package/dist/abi/VaultFactory.js +229 -0
  15. package/dist/abi/VaultFactory.js.map +1 -0
  16. package/dist/abi/VaultHub.js +923 -586
  17. package/dist/abi/VaultHub.js.map +1 -1
  18. package/dist/abi/Voting.js +887 -0
  19. package/dist/abi/Voting.js.map +1 -0
  20. package/dist/abi/index.js +26 -0
  21. package/dist/abi/index.js.map +1 -0
  22. package/dist/command/index.js +16 -0
  23. package/dist/command/index.js.map +1 -1
  24. package/dist/configs/constants.js +6 -0
  25. package/dist/configs/constants.js.map +1 -0
  26. package/dist/configs/deployed.js +118 -24
  27. package/dist/configs/deployed.js.map +1 -1
  28. package/dist/configs/envs.js +24 -16
  29. package/dist/configs/envs.js.map +1 -1
  30. package/dist/configs/index.js +1 -0
  31. package/dist/configs/index.js.map +1 -1
  32. package/dist/configs/utils.js +32 -0
  33. package/dist/configs/utils.js.map +1 -0
  34. package/dist/contracts/dashboard.js +19 -0
  35. package/dist/contracts/dashboard.js.map +1 -0
  36. package/dist/contracts/delegation.js +19 -0
  37. package/dist/contracts/delegation.js.map +1 -0
  38. package/dist/contracts/index.js +8 -0
  39. package/dist/contracts/index.js.map +1 -1
  40. package/dist/contracts/locator.js +20 -0
  41. package/dist/contracts/locator.js.map +1 -0
  42. package/dist/contracts/steth.js +19 -0
  43. package/dist/contracts/steth.js.map +1 -0
  44. package/dist/contracts/token-manager.js +20 -0
  45. package/dist/contracts/token-manager.js.map +1 -0
  46. package/dist/contracts/vault-factory.js +22 -0
  47. package/dist/contracts/vault-factory.js.map +1 -0
  48. package/dist/contracts/vault-hub.js +10 -8
  49. package/dist/contracts/vault-hub.js.map +1 -1
  50. package/dist/contracts/vault.js +18 -0
  51. package/dist/contracts/vault.js.map +1 -0
  52. package/dist/contracts/voting.js +22 -0
  53. package/dist/contracts/voting.js.map +1 -0
  54. package/dist/features/advanced-config.js +21 -0
  55. package/dist/features/advanced-config.js.map +1 -0
  56. package/dist/features/index.js +20 -0
  57. package/dist/features/index.js.map +1 -0
  58. package/dist/features/token-manager.js +6 -0
  59. package/dist/features/token-manager.js.map +1 -0
  60. package/dist/features/vault-factory.js +36 -0
  61. package/dist/features/vault-factory.js.map +1 -0
  62. package/dist/features/voting.js +136 -0
  63. package/dist/features/voting.js.map +1 -0
  64. package/dist/programs/config.js +33 -0
  65. package/dist/programs/config.js.map +1 -0
  66. package/dist/programs/dashboard.js +688 -0
  67. package/dist/programs/dashboard.js.map +1 -0
  68. package/dist/programs/delegation.js +539 -0
  69. package/dist/programs/delegation.js.map +1 -0
  70. package/dist/programs/index.js +5 -0
  71. package/dist/programs/index.js.map +1 -1
  72. package/dist/programs/vault-factory.js +84 -0
  73. package/dist/programs/vault-factory.js.map +1 -0
  74. package/dist/programs/vault-hub.js +331 -116
  75. package/dist/programs/vault-hub.js.map +1 -1
  76. package/dist/programs/vault.js +378 -0
  77. package/dist/programs/vault.js.map +1 -0
  78. package/dist/programs/voting.js +53 -0
  79. package/dist/programs/voting.js.map +1 -0
  80. package/dist/providers/wallet.js +20 -18
  81. package/dist/providers/wallet.js.map +1 -1
  82. package/dist/types/common.js +3 -0
  83. package/dist/types/common.js.map +1 -0
  84. package/dist/types/config.js +3 -0
  85. package/dist/types/config.js.map +1 -0
  86. package/dist/types/index.js +19 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/utils/data-validators.js +51 -0
  89. package/dist/utils/data-validators.js.map +1 -0
  90. package/dist/utils/index.js +3 -0
  91. package/dist/utils/index.js.map +1 -1
  92. package/dist/utils/resolve-path.js +13 -0
  93. package/dist/utils/resolve-path.js.map +1 -0
  94. package/dist/utils/sleep.js +8 -0
  95. package/dist/utils/sleep.js.map +1 -0
  96. package/package.json +7 -10
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _command_1 = require("../command");
4
+ const _contracts_1 = require("../contracts");
5
+ const _providers_1 = require("../providers");
6
+ const viem_1 = require("viem");
7
+ const _configs_1 = require("../configs");
8
+ const vault = _command_1.program.command("vault").description("vault contract");
9
+ // Views
10
+ // info - get vault base info
11
+ // l-report - get latest vault report
12
+ // valuation - get vault valuation
13
+ // unlocked - get vault unlocked
14
+ // locked - get vault locked
15
+ // is-balanced - vault isBalanced
16
+ // withdrawal-c - get vault withdrawal credentials
17
+ // fund - fund vault
18
+ // withdraw - withdraw from vault
19
+ // no-deposit-beacon -deposit to beacon chain
20
+ // no-val-exit - request to exit validator
21
+ // delta - inOutDelta
22
+ // ? - change user permissions / roles by quorum of a pair of addresses
23
+ // Works
24
+ vault
25
+ .command("info")
26
+ .description("get vault base info")
27
+ .argument("<address>", "vault address")
28
+ .action(async (address) => {
29
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
30
+ try {
31
+ const withdrawalCredentials = await contract.read.withdrawalCredentials();
32
+ const latestReport = await contract.read.latestReport();
33
+ const inOutDelta = await contract.read.inOutDelta();
34
+ const version = await contract.read.version();
35
+ const initializedVersion = await contract.read.getInitializedVersion();
36
+ const depositContract = await contract.read.depositContract();
37
+ const nodeOperator = await contract.read.nodeOperator();
38
+ const isBalanced = await contract.read.isBalanced();
39
+ const payload = {
40
+ vault: address,
41
+ withdrawalCredentials,
42
+ latestReport,
43
+ inOutDelta,
44
+ version,
45
+ initializedVersion,
46
+ depositContract,
47
+ nodeOperator,
48
+ isBalanced,
49
+ };
50
+ console.table(payload);
51
+ }
52
+ catch (err) {
53
+ if (err instanceof Error) {
54
+ _command_1.program.error(err.message);
55
+ }
56
+ }
57
+ });
58
+ // Works
59
+ vault
60
+ .command("l-report")
61
+ .description("get latest vault report")
62
+ .argument("<address>", "vault address")
63
+ .action(async (address) => {
64
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
65
+ try {
66
+ const latestReport = await contract.read.latestReport();
67
+ console.table({ "latest report": latestReport });
68
+ }
69
+ catch (err) {
70
+ if (err instanceof Error) {
71
+ _command_1.program.error(err.message);
72
+ }
73
+ }
74
+ });
75
+ // Works
76
+ vault
77
+ .command("is-balanced")
78
+ .description("returns whether `StakingVault` is balanced, i.e. its valuation is greater than the locked amount")
79
+ .argument("<address>", "vault address")
80
+ .action(async (address) => {
81
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
82
+ try {
83
+ const isBalanced = await contract.read.isBalanced();
84
+ console.table({ "Is balanced": isBalanced });
85
+ }
86
+ catch (err) {
87
+ if (err instanceof Error) {
88
+ _command_1.program.error(err.message);
89
+ }
90
+ }
91
+ });
92
+ vault
93
+ .command("node-operator")
94
+ .description("Returns the address of the node operator")
95
+ .argument("<address>", "vault address")
96
+ .action(async (address) => {
97
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
98
+ try {
99
+ const nodeOperator = await contract.read.nodeOperator();
100
+ console.table({ "Node Operator": nodeOperator });
101
+ }
102
+ catch (err) {
103
+ if (err instanceof Error) {
104
+ _command_1.program.error(err.message);
105
+ }
106
+ }
107
+ });
108
+ // Works
109
+ vault
110
+ .command("valuation")
111
+ .description("get vault valuation")
112
+ .argument("<address>", "vault address")
113
+ .action(async (address) => {
114
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
115
+ try {
116
+ const valuation = await contract.read.valuation();
117
+ console.table({ valuation });
118
+ }
119
+ catch (err) {
120
+ if (err instanceof Error) {
121
+ _command_1.program.error(err.message);
122
+ }
123
+ }
124
+ });
125
+ // Works
126
+ vault
127
+ .command("unlocked")
128
+ .description("get vault unlocked")
129
+ .argument("<address>", "vault address")
130
+ .action(async (address) => {
131
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
132
+ try {
133
+ const unlocked = await contract.read.unlocked();
134
+ console.table({ unlocked });
135
+ }
136
+ catch (err) {
137
+ if (err instanceof Error) {
138
+ _command_1.program.error(err.message);
139
+ }
140
+ }
141
+ });
142
+ // Works
143
+ vault
144
+ .command("locked")
145
+ .description("get vault locked")
146
+ .argument("<address>", "vault address")
147
+ .action(async (address) => {
148
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
149
+ try {
150
+ const locked = await contract.read.locked();
151
+ console.table({ locked });
152
+ }
153
+ catch (err) {
154
+ if (err instanceof Error) {
155
+ _command_1.program.error(err.message);
156
+ }
157
+ }
158
+ });
159
+ // Works
160
+ vault
161
+ .command("withdrawal-c")
162
+ .description("get vault withdrawal credentials")
163
+ .argument("<address>", "vault address")
164
+ .action(async (address) => {
165
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
166
+ try {
167
+ const wc = await contract.read.withdrawalCredentials();
168
+ console.table({ wc });
169
+ }
170
+ catch (err) {
171
+ if (err instanceof Error) {
172
+ _command_1.program.error(err.message);
173
+ }
174
+ }
175
+ });
176
+ vault
177
+ .command("fund")
178
+ .description("fund vault")
179
+ .argument("<address>", "vault address")
180
+ .argument("<amount>", "amount to fund")
181
+ .action(async (address, amount) => {
182
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
183
+ try {
184
+ const tx = await contract.write.fund({
185
+ account: (0, _providers_1.getAccount)(),
186
+ chain: (0, _configs_1.getChain)(),
187
+ value: (0, viem_1.parseEther)(amount),
188
+ });
189
+ console.table({ Transaction: tx });
190
+ }
191
+ catch (err) {
192
+ if (err instanceof Error) {
193
+ _command_1.program.error(err.message);
194
+ }
195
+ }
196
+ });
197
+ // TODO: investigate why only owner can fund vault
198
+ vault
199
+ .command("withdraw")
200
+ .description("withdraw from vault")
201
+ .argument("<address>", "vault address")
202
+ .argument("<recipient>", "recipient address")
203
+ .argument("<amount>", "amount to withdraw")
204
+ .action(async (address, recipient, amount) => {
205
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
206
+ const tx = await contract.write.withdraw([recipient, (0, viem_1.parseEther)(amount)], {
207
+ account: (0, _providers_1.getAccount)(),
208
+ chain: (0, _configs_1.getChain)(),
209
+ });
210
+ console.table({ Transaction: tx });
211
+ });
212
+ // NOs
213
+ // TODO: get more details
214
+ vault
215
+ .command("no-deposit-beacon")
216
+ .description("deposit to beacon chain")
217
+ .argument("<address>", "vault address")
218
+ .argument("<amountOfDeposit>", "amount of deposits")
219
+ .argument("<pubkey>", "pubkey")
220
+ .argument("<signature>", "signature")
221
+ .argument("<depositDataRoot>", "depositDataRoot")
222
+ .action(async (vault, amountOfDeposit, pubkey, signature, depositDataRoot) => {
223
+ const amount = BigInt(amountOfDeposit);
224
+ const contract = (0, _contracts_1.getStakingVaultContract)(vault);
225
+ const payload = [{
226
+ pubkey,
227
+ signature,
228
+ amount,
229
+ depositDataRoot
230
+ }];
231
+ try {
232
+ const tx = await contract.write.depositToBeaconChain([payload], {
233
+ account: (0, _providers_1.getAccount)(),
234
+ chain: (0, _configs_1.getChain)(),
235
+ });
236
+ console.table({ Transaction: tx });
237
+ }
238
+ catch (err) {
239
+ if (err instanceof Error) {
240
+ _command_1.program.error(err.message);
241
+ }
242
+ }
243
+ });
244
+ // TODO: get more details
245
+ vault
246
+ .command("no-val-exit")
247
+ .description("request to exit validator")
248
+ .argument("<address>", "vault address")
249
+ .argument("<validatorPublicKey>", "validator public key")
250
+ .action(async (address, validatorPublicKey) => {
251
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
252
+ try {
253
+ const tx = await contract.write.requestValidatorExit([validatorPublicKey], {
254
+ account: (0, _providers_1.getAccount)(),
255
+ chain: (0, _configs_1.getChain)(),
256
+ });
257
+ console.table({ Transaction: tx });
258
+ }
259
+ catch (err) {
260
+ if (err instanceof Error) {
261
+ _command_1.program.error(err.message);
262
+ }
263
+ }
264
+ });
265
+ // Works
266
+ vault
267
+ .command("delta")
268
+ .description("the net difference between deposits and withdrawals")
269
+ .argument("<address>", "vault address")
270
+ .action(async (address) => {
271
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
272
+ try {
273
+ const inOutDelta = await contract.read.inOutDelta();
274
+ console.table({ 'In Out Delta': inOutDelta });
275
+ }
276
+ catch (err) {
277
+ if (err instanceof Error) {
278
+ _command_1.program.error(err.message);
279
+ }
280
+ }
281
+ });
282
+ vault
283
+ .command("is-paused")
284
+ .description("Returns whether deposits are paused by the vault owner")
285
+ .argument("<address>", "vault address")
286
+ .action(async (address) => {
287
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
288
+ try {
289
+ const isPaused = await contract.read.beaconChainDepositsPaused();
290
+ console.table({ 'Is paused': isPaused });
291
+ }
292
+ catch (err) {
293
+ if (err instanceof Error) {
294
+ _command_1.program.error(err.message);
295
+ }
296
+ }
297
+ });
298
+ vault
299
+ .command("bc-resume")
300
+ .description("Resumes deposits to beacon chain")
301
+ .argument("<address>", "vault address")
302
+ .action(async (address) => {
303
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
304
+ try {
305
+ const tx = await contract.write.resumeBeaconChainDeposits({
306
+ account: (0, _providers_1.getAccount)(),
307
+ chain: (0, _configs_1.getChain)(),
308
+ });
309
+ console.table({ Transaction: tx });
310
+ }
311
+ catch (err) {
312
+ if (err instanceof Error) {
313
+ _command_1.program.error(err.message);
314
+ }
315
+ }
316
+ });
317
+ vault
318
+ .command("bc-pause")
319
+ .description("Pauses deposits to beacon chain")
320
+ .argument("<address>", "vault address")
321
+ .action(async (address) => {
322
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
323
+ try {
324
+ const tx = await contract.write.pauseBeaconChainDeposits({
325
+ account: (0, _providers_1.getAccount)(),
326
+ chain: (0, _configs_1.getChain)(),
327
+ });
328
+ console.table({ Transaction: tx });
329
+ }
330
+ catch (err) {
331
+ if (err instanceof Error) {
332
+ _command_1.program.error(err.message);
333
+ }
334
+ }
335
+ });
336
+ vault
337
+ .command("report")
338
+ .description("Submits a report containing valuation, inOutDelta, and locked amount")
339
+ .argument("<address>", "vault address")
340
+ .argument("<valuation>", "New total valuation: validator balances + StakingVault balance")
341
+ .argument("<inOutDelta>", "New net difference between funded and withdrawn ether")
342
+ .argument("<locked>", "New amount of locked ether")
343
+ .action(async (address, valuation, inOutDelta, locked) => {
344
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
345
+ try {
346
+ const tx = await contract.write.report([BigInt(valuation), BigInt(inOutDelta), BigInt(locked)], {
347
+ account: (0, _providers_1.getAccount)(),
348
+ chain: (0, _configs_1.getChain)(),
349
+ });
350
+ console.table({ 'Transaction': tx });
351
+ }
352
+ catch (err) {
353
+ if (err instanceof Error) {
354
+ _command_1.program.error(err.message);
355
+ }
356
+ }
357
+ });
358
+ vault
359
+ .command("compute-deposit")
360
+ .description("Computes the deposit data root for a validator deposit")
361
+ .argument("<address>", "vault address")
362
+ .argument("<pubkey>", "Validator public key, 48 bytes")
363
+ .argument("<withdrawalCredentials>", "Withdrawal credentials, 32 bytes")
364
+ .argument("<signature>", "Signature of the deposit, 96 bytes")
365
+ .argument("<amount>", "Amount of ether to deposit, in wei")
366
+ .action(async (address, pubkey, withdrawalCredentials, signature, amount) => {
367
+ const contract = (0, _contracts_1.getStakingVaultContract)(address);
368
+ try {
369
+ const encodedData = await contract.read.computeDepositDataRoot([pubkey, withdrawalCredentials, signature, BigInt(amount)]);
370
+ console.table({ 'Encoded data': encodedData });
371
+ }
372
+ catch (err) {
373
+ if (err instanceof Error) {
374
+ _command_1.program.error(err.message);
375
+ }
376
+ }
377
+ });
378
+ //# sourceMappingURL=vault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../programs/vault.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const _command_1 = require("../command");
4
+ const _contracts_1 = require("../contracts");
5
+ const _providers_1 = require("../providers");
6
+ const _configs_1 = require("../configs");
7
+ const _features_1 = require("../features");
8
+ const voting = _command_1.program.command("vote").description("voting contract");
9
+ voting
10
+ .command("connect-vault")
11
+ .description("vote and connect vault to the hub")
12
+ .description("connects a vault to the hub (vault master role needed)")
13
+ .argument("<address>", "vault address")
14
+ .argument("<shareLimit>", "maximum number of stETH shares that can be minted by the vault")
15
+ .argument("<reserveRatio>", "minimum Reserve ratio in basis points")
16
+ .argument("<reserveRatioThreshold>", "reserve ratio that makes possible to force rebalance on the vault (in basis points)")
17
+ .argument("<treasuryFeeBP>", "treasury fee in basis points")
18
+ .action(async (address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP) => {
19
+ try {
20
+ const contract = await (0, _contracts_1.getVaultHubContract)();
21
+ // const tmContract = getTokenManagerContract();
22
+ // const vContract = getVotingContract();
23
+ const account = (0, _providers_1.getAccount)();
24
+ const tx = await contract.write.connectVault([address, shareLimit, reserveRatio, reserveRatioThreshold, treasuryFeeBP], {
25
+ account,
26
+ chain: (0, _configs_1.getChain)(),
27
+ });
28
+ console.table({ Transaction: tx });
29
+ }
30
+ catch (err) {
31
+ if (err instanceof Error) {
32
+ _command_1.program.error(err.message);
33
+ }
34
+ }
35
+ });
36
+ voting
37
+ .command("get-lv")
38
+ .action(async () => {
39
+ const { contract } = (0, _contracts_1.getVotingContract)();
40
+ try {
41
+ const tx = await contract.read.votesLength();
42
+ console.log({ 'Votes length': tx });
43
+ }
44
+ catch (err) {
45
+ if (err instanceof Error) {
46
+ console.log('Error when getting votes length:\n', err.message);
47
+ }
48
+ }
49
+ });
50
+ voting
51
+ .command("connect-and-vote")
52
+ .action(async () => await (0, _features_1.voteLastVoting)());
53
+ //# sourceMappingURL=voting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting.js","sourceRoot":"","sources":["../../programs/voting.ts"],"names":[],"mappings":";;AACA,uCAAmC;AACnC,2CAIoB;AACpB,2CAAwC;AACxC,uCAAoC;AACpC,yCAAyC;AAEzC,MAAM,MAAM,GAAG,kBAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAEtE,MAAM;KACH,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,mCAAmC,CAAC;KAChD,WAAW,CAAC,wDAAwD,CAAC;KACrE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;KACtC,QAAQ,CACP,cAAc,EACd,gEAAgE,CACjE;KACA,QAAQ,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACnE,QAAQ,CACP,yBAAyB,EACzB,qFAAqF,CACtF;KACA,QAAQ,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CACL,KAAK,EACH,OAAgB,EAChB,UAAkB,EAClB,YAAoB,EACpB,qBAA6B,EAC7B,aAAqB,EACrB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,gCAAmB,GAAE,CAAC;QAC7C,gDAAgD;QAChD,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAA,uBAAU,GAAE,CAAC;QAE7B,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAC1C,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,qBAAqB,EAAE,aAAa,CAAC,EACzE;YACE,OAAO;YACP,KAAK,EAAE,IAAA,mBAAQ,GAAE;SAClB,CACF,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,kBAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,MAAM;KACH,OAAO,CAAC,QAAQ,CAAC;KACjB,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,8BAAiB,GAAE,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM;KACH,OAAO,CAAC,kBAAkB,CAAC;KAC3B,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,0BAAc,GAAE,CAAC,CAAC"}
@@ -4,33 +4,35 @@ exports.getWalletWithAccount = exports.getAccount = exports.getWalletClient = vo
4
4
  const viem_1 = require("viem");
5
5
  const accounts_1 = require("viem/accounts");
6
6
  const _configs_1 = require("../configs");
7
- const getWalletClient = (chainId) => {
8
- const rpcUrl = _configs_1.envs?.[`RPC_URL_${chainId || process.env.CHAIN_ID}`];
9
- const client = (0, viem_1.createWalletClient)({
10
- chain: chainId,
11
- transport: (0, viem_1.http)(rpcUrl),
7
+ const getWalletClient = () => {
8
+ return (0, viem_1.createWalletClient)({
9
+ chain: (0, _configs_1.getChain)(),
10
+ transport: (0, viem_1.http)((0, _configs_1.getRpcUrl)()),
12
11
  });
13
- return client;
14
12
  };
15
13
  exports.getWalletClient = getWalletClient;
16
- const getAccount = (chainId) => {
17
- const privateKey = _configs_1.envs?.[`PRIVATE_KEY_${chainId || process.env.CHAIN_ID}`];
14
+ const getAccount = () => {
15
+ const config = (0, _configs_1.getConfig)();
16
+ const id = (0, _configs_1.getChainId)();
17
+ const privateKey = config?.privateKey ?? _configs_1.envs?.[`PRIVATE_KEY_${id}`];
18
18
  if (!privateKey) {
19
- throw new Error(`PRIVATE_KEY_${chainId} is not set`);
19
+ throw new Error(`Private key for ${id} chain is not set`);
20
20
  }
21
- const account = (0, accounts_1.privateKeyToAccount)(privateKey);
22
- return account;
21
+ return (0, accounts_1.privateKeyToAccount)(privateKey);
23
22
  };
24
23
  exports.getAccount = getAccount;
25
- const getWalletWithAccount = (chainId) => {
26
- const rpcUrl = _configs_1.envs?.[`RPC_URL_${chainId || process.env.CHAIN_ID}`];
27
- const account = (0, exports.getAccount)(chainId);
28
- const client = (0, viem_1.createWalletClient)({
24
+ const getWalletWithAccount = () => {
25
+ const account = (0, exports.getAccount)();
26
+ const walletClient = (0, viem_1.createWalletClient)({
29
27
  account,
30
- chain: chainId,
31
- transport: (0, viem_1.http)(rpcUrl),
28
+ chain: (0, _configs_1.getChain)(),
29
+ transport: (0, viem_1.http)((0, _configs_1.getRpcUrl)()),
32
30
  });
33
- return { client, account };
31
+ const client = (0, viem_1.createPublicClient)({
32
+ chain: (0, _configs_1.getChain)(),
33
+ transport: (0, viem_1.http)((0, _configs_1.getRpcUrl)()),
34
+ });
35
+ return { walletClient, client, account };
34
36
  };
35
37
  exports.getWalletWithAccount = getWalletWithAccount;
36
38
  //# sourceMappingURL=wallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../providers/wallet.ts"],"names":[],"mappings":";;;AAAA,+BAAgE;AAChE,4CAAoD;AACpD,uCAAgC;AAEzB,MAAM,eAAe,GAAG,CAAC,OAAe,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,eAAI,EAAE,CAAC,WAAW,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpE,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;QAChC,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC;KACxB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AATW,QAAA,eAAe,mBAS1B;AAEK,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE;IAC5C,MAAM,UAAU,GAAG,eAAI,EAAE,CAAC,eAAe,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE5E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,aAAa,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,UAAqB,CAAC,CAAC;IAE3D,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAAe,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,eAAI,EAAE,CAAC,WAAW,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;QAChC,OAAO;QACP,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,IAAA,WAAI,EAAC,MAAM,CAAC;KACxB,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../providers/wallet.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAC7E,4CAAoD;AACpD,uCAA4E;AAErE,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,OAAO,IAAA,yBAAkB,EAAC;QACxB,KAAK,EAAE,IAAA,mBAAQ,GAAE;QACjB,SAAS,EAAE,IAAA,WAAI,EAAC,IAAA,oBAAS,GAAE,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEK,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,MAAM,GAAG,IAAA,oBAAS,GAAE,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAA,qBAAU,GAAE,CAAC;IACxB,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,eAAI,EAAE,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,IAAA,8BAAmB,EAAC,UAAqB,CAAC,CAAC;AACpD,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEK,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,OAAO;QACP,KAAK,EAAE,IAAA,mBAAQ,GAAE;QACjB,SAAS,EAAE,IAAA,WAAI,EAAC,IAAA,oBAAS,GAAE,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAA,yBAAkB,EAAC;QAChC,KAAK,EAAE,IAAA,mBAAQ,GAAE;QACjB,SAAS,EAAE,IAAA,WAAI,EAAC,IAAA,oBAAS,GAAE,CAAC;KAC7B,CAAC,CAAC;IAEH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../types/common.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../types/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./config"), exports);
18
+ __exportStar(require("./common"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateAddressMap = exports.isValidUrl = exports.validateConfig = void 0;
4
+ const viem_1 = require("viem");
5
+ const validateConfig = (config) => {
6
+ const errors = {};
7
+ if (!(0, exports.isValidUrl)(config.rpcLink)) {
8
+ errors.rpcLink = 'Invalid rpcLink: must be a valid URL.';
9
+ }
10
+ if (typeof config.privateKey !== 'string' || !config.privateKey) {
11
+ errors.privateKey = 'Invalid privateKey: must be a non-empty string.';
12
+ }
13
+ if (typeof config.chainId !== 'number' || isNaN(config.chainId)) {
14
+ errors.chainId = 'Invalid chainId: must be a string representing a number.';
15
+ }
16
+ if (typeof config.lidoLocator !== 'string' || !(0, viem_1.isAddress)(config.lidoLocator)) {
17
+ errors.lidoLocator = 'Invalid lidoLocator: must be a valid Ethereum address.';
18
+ }
19
+ if (typeof config.accounting !== 'string' || !(0, viem_1.isAddress)(config.accounting)) {
20
+ errors.accounting = 'Invalid accounting: must be a valid Ethereum address.';
21
+ }
22
+ return errors;
23
+ };
24
+ exports.validateConfig = validateConfig;
25
+ const isValidUrl = (value) => {
26
+ if (!value) {
27
+ return false;
28
+ }
29
+ if ('canParse' in URL) {
30
+ return URL.canParse(value);
31
+ }
32
+ try {
33
+ // used global here to avid types issue
34
+ new global.URL(value);
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ };
41
+ exports.isValidUrl = isValidUrl;
42
+ const validateAddressMap = (payload) => {
43
+ return Object.keys(payload).reduce((acc, key) => {
44
+ if (!(0, viem_1.isAddress)(payload[key])) {
45
+ acc.push(`${key} is not a valid address`);
46
+ }
47
+ return acc;
48
+ }, []);
49
+ };
50
+ exports.validateAddressMap = validateAddressMap;
51
+ //# sourceMappingURL=data-validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-validators.js","sourceRoot":"","sources":["../../utils/data-validators.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAI1B,MAAM,cAAc,GAAG,CAAC,MAAkB,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,EAAsC,CAAC;IAEtD,IAAI,CAAC,IAAA,kBAAU,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,GAAG,uCAAuC,CAAC;IAC3D,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAChE,MAAM,CAAC,UAAU,GAAG,iDAAiD,CAAC;IACxE,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,OAAO,GAAG,0DAA0D,CAAC;IAC9E,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,WAAW,GAAG,wDAAwD,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,IAAA,gBAAS,EAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,UAAU,GAAG,uDAAuD,CAAC;IAC9E,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA;AAxBY,QAAA,cAAc,kBAwB1B;AAEM,MAAM,UAAU,GAAG,CAAC,KAAyB,EAAW,EAAE;IAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,uCAAuC;QACvC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAA;AAhBY,QAAA,UAAU,cAgBtB;AAEM,MAAM,kBAAkB,GAAG,CAAC,OAAyB,EAAE,EAAE;IAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,IAAI,CAAC,IAAA,gBAAS,EAAC,OAAO,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAc,CAAC,CAAC;AACrB,CAAC,CAAA;AARY,QAAA,kBAAkB,sBAQ9B"}
@@ -15,4 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-value"), exports);
18
+ __exportStar(require("./data-validators"), exports);
19
+ __exportStar(require("./resolve-path"), exports);
20
+ __exportStar(require("./sleep"), exports);
18
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,oDAAkC;AAClC,iDAA+B;AAC/B,0CAAwB"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolvePath = resolvePath;
4
+ const path_1 = require("path");
5
+ const os_1 = require("os");
6
+ function resolvePath(path) {
7
+ return path.startsWith('~')
8
+ ? (0, path_1.join)((0, os_1.homedir)(), path.slice(1))
9
+ : (0, path_1.isAbsolute)(path)
10
+ ? path
11
+ : (0, path_1.resolve)(path);
12
+ }
13
+ //# sourceMappingURL=resolve-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../utils/resolve-path.ts"],"names":[],"mappings":";;AAGA,kCAMC;AATD,+BAAiD;AACjD,2BAA6B;AAE7B,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QACzB,CAAC,CAAC,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,IAAA,iBAAU,EAAC,IAAI,CAAC;YAChB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}