@lidofinance/lsv-cli 1.7.0 → 1.8.0

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 (182) hide show
  1. package/dist/abi/defi-wrapper/GenericStrategy.d.ts +308 -0
  2. package/dist/abi/defi-wrapper/GenericStrategy.js +409 -0
  3. package/dist/abi/defi-wrapper/GenericStrategy.js.map +1 -0
  4. package/dist/abi/defi-wrapper/index.d.ts +1 -0
  5. package/dist/abi/defi-wrapper/index.js +1 -0
  6. package/dist/abi/defi-wrapper/index.js.map +1 -1
  7. package/dist/abi/defi-wrapper/sources.d.ts +103 -0
  8. package/dist/abi/defi-wrapper/sources.js +104 -0
  9. package/dist/abi/defi-wrapper/sources.js.map +1 -0
  10. package/dist/configs/deployed.d.ts +5 -0
  11. package/dist/configs/deployed.js +20 -2
  12. package/dist/configs/deployed.js.map +1 -1
  13. package/dist/configs/envs.js +2 -0
  14. package/dist/configs/envs.js.map +1 -1
  15. package/dist/contracts/defi-wrapper/generic-strategy.d.ts +5 -0
  16. package/dist/contracts/defi-wrapper/generic-strategy.js +12 -0
  17. package/dist/contracts/defi-wrapper/generic-strategy.js.map +1 -0
  18. package/dist/contracts/defi-wrapper/index.d.ts +1 -0
  19. package/dist/contracts/defi-wrapper/index.js +1 -0
  20. package/dist/contracts/defi-wrapper/index.js.map +1 -1
  21. package/dist/features/defi-wrapper/defi-wrapper-factory.d.ts +3 -0
  22. package/dist/features/defi-wrapper/defi-wrapper-factory.js +4 -1
  23. package/dist/features/defi-wrapper/defi-wrapper-factory.js.map +1 -1
  24. package/dist/features/defi-wrapper/index.d.ts +1 -0
  25. package/dist/features/defi-wrapper/index.js +1 -0
  26. package/dist/features/defi-wrapper/index.js.map +1 -1
  27. package/dist/features/defi-wrapper/pool-info.d.ts +18 -1
  28. package/dist/features/defi-wrapper/pool-info.js +47 -3
  29. package/dist/features/defi-wrapper/pool-info.js.map +1 -1
  30. package/dist/features/defi-wrapper/timelock-roles.d.ts +5 -0
  31. package/dist/features/defi-wrapper/timelock-roles.js +43 -0
  32. package/dist/features/defi-wrapper/timelock-roles.js.map +1 -0
  33. package/dist/features/defi-wrapper/timelock.d.ts +1 -6
  34. package/dist/features/defi-wrapper/timelock.js +2 -45
  35. package/dist/features/defi-wrapper/timelock.js.map +1 -1
  36. package/dist/features/defi-wrapper/verify-contracts.d.ts +20 -0
  37. package/dist/features/defi-wrapper/verify-contracts.js +145 -0
  38. package/dist/features/defi-wrapper/verify-contracts.js.map +1 -0
  39. package/dist/features/utils/try-fetch.js +2 -0
  40. package/dist/features/utils/try-fetch.js.map +1 -1
  41. package/dist/programs/account/write.js +2 -1
  42. package/dist/programs/account/write.js.map +1 -1
  43. package/dist/programs/defi-wrapper/contracts/factory/write.js +77 -6
  44. package/dist/programs/defi-wrapper/contracts/factory/write.js.map +1 -1
  45. package/dist/programs/defi-wrapper/contracts/index.d.ts +1 -0
  46. package/dist/programs/defi-wrapper/contracts/index.js +1 -0
  47. package/dist/programs/defi-wrapper/contracts/index.js.map +1 -1
  48. package/dist/programs/defi-wrapper/contracts/strategy/config.d.ts +3 -0
  49. package/dist/programs/defi-wrapper/contracts/strategy/config.js +40 -0
  50. package/dist/programs/defi-wrapper/contracts/strategy/config.js.map +1 -0
  51. package/dist/programs/defi-wrapper/contracts/strategy/index.d.ts +3 -0
  52. package/dist/programs/defi-wrapper/contracts/strategy/index.js +4 -0
  53. package/dist/programs/defi-wrapper/contracts/strategy/index.js.map +1 -0
  54. package/dist/programs/defi-wrapper/contracts/strategy/main.d.ts +1 -0
  55. package/dist/programs/defi-wrapper/contracts/strategy/main.js +6 -0
  56. package/dist/programs/defi-wrapper/contracts/strategy/main.js.map +1 -0
  57. package/dist/programs/defi-wrapper/contracts/strategy/read.d.ts +1 -0
  58. package/dist/programs/defi-wrapper/contracts/strategy/read.js +30 -0
  59. package/dist/programs/defi-wrapper/contracts/strategy/read.js.map +1 -0
  60. package/dist/programs/defi-wrapper/contracts/strategy/write.d.ts +1 -0
  61. package/dist/programs/defi-wrapper/contracts/strategy/write.js +34 -0
  62. package/dist/programs/defi-wrapper/contracts/strategy/write.js.map +1 -0
  63. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js +25 -21
  64. package/dist/programs/defi-wrapper/contracts/stv-steth-pool/write.js.map +1 -1
  65. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js +3 -4
  66. package/dist/programs/defi-wrapper/contracts/withdrawal-queue/write.js.map +1 -1
  67. package/dist/programs/defi-wrapper/use-cases/distributor/write.js +1 -0
  68. package/dist/programs/defi-wrapper/use-cases/distributor/write.js.map +1 -1
  69. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js +3 -3
  70. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/read.js.map +1 -1
  71. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js +3 -3
  72. package/dist/programs/defi-wrapper/use-cases/timelock-governance/common/write.js.map +1 -1
  73. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js +3 -3
  74. package/dist/programs/defi-wrapper/use-cases/timelock-governance/dashboard/write.js.map +1 -1
  75. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.d.ts +1 -0
  76. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js +1 -0
  77. package/dist/programs/defi-wrapper/use-cases/timelock-governance/index.js.map +1 -1
  78. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js +4 -4
  79. package/dist/programs/defi-wrapper/use-cases/timelock-governance/pool/write.js.map +1 -1
  80. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js +3 -3
  81. package/dist/programs/defi-wrapper/use-cases/timelock-governance/proxy/write.js.map +1 -1
  82. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/index.d.ts +2 -0
  83. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/index.js +3 -0
  84. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/index.js.map +1 -0
  85. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/main.d.ts +1 -0
  86. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/main.js +6 -0
  87. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/main.js.map +1 -0
  88. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/write.d.ts +1 -0
  89. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/write.js +57 -0
  90. package/dist/programs/defi-wrapper/use-cases/timelock-governance/strategy/write.js.map +1 -0
  91. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js +4 -4
  92. package/dist/programs/defi-wrapper/use-cases/timelock-governance/withdrawal-queue/write.js.map +1 -1
  93. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js +32 -11
  94. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/read.js.map +1 -1
  95. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js +14 -12
  96. package/dist/programs/defi-wrapper/use-cases/wrapper-operations/write.js.map +1 -1
  97. package/dist/programs/use-cases/consolidation/write.js +2 -0
  98. package/dist/programs/use-cases/consolidation/write.js.map +1 -1
  99. package/dist/providers/wallet.d.ts +88 -72
  100. package/dist/providers/wallet.js +74 -2
  101. package/dist/providers/wallet.js.map +1 -1
  102. package/dist/tests/integration/gas-estimation.test.d.ts +1 -0
  103. package/dist/tests/integration/gas-estimation.test.js +76 -0
  104. package/dist/tests/integration/gas-estimation.test.js.map +1 -0
  105. package/dist/tests/integration/helpers/test-client.d.ts +52 -52
  106. package/dist/tests/utils/arguments-security.test.d.ts +1 -0
  107. package/dist/tests/utils/arguments-security.test.js +34 -0
  108. package/dist/tests/utils/arguments-security.test.js.map +1 -0
  109. package/dist/tests/utils/arguments.test.js +2 -20
  110. package/dist/tests/utils/arguments.test.js.map +1 -1
  111. package/dist/tests/utils/cache-security.test.d.ts +1 -0
  112. package/dist/tests/utils/cache-security.test.js +62 -0
  113. package/dist/tests/utils/cache-security.test.js.map +1 -0
  114. package/dist/tests/utils/contract-write-stateoverride.test.d.ts +1 -0
  115. package/dist/tests/utils/contract-write-stateoverride.test.js +135 -0
  116. package/dist/tests/utils/contract-write-stateoverride.test.js.map +1 -0
  117. package/dist/tests/utils/data-validators.test.js +21 -5
  118. package/dist/tests/utils/data-validators.test.js.map +1 -1
  119. package/dist/tests/utils/deployed-security.test.d.ts +1 -0
  120. package/dist/tests/utils/deployed-security.test.js +51 -0
  121. package/dist/tests/utils/deployed-security.test.js.map +1 -0
  122. package/dist/tests/utils/get-confirmations.test.d.ts +1 -0
  123. package/dist/tests/utils/get-confirmations.test.js +40 -0
  124. package/dist/tests/utils/get-confirmations.test.js.map +1 -0
  125. package/dist/tests/utils/ipfs-security.test.d.ts +1 -0
  126. package/dist/tests/utils/ipfs-security.test.js +105 -0
  127. package/dist/tests/utils/ipfs-security.test.js.map +1 -0
  128. package/dist/tests/utils/public-client-gas-estimation.test.d.ts +1 -0
  129. package/dist/tests/utils/public-client-gas-estimation.test.js +231 -0
  130. package/dist/tests/utils/public-client-gas-estimation.test.js.map +1 -0
  131. package/dist/tests/utils/rate-limit-security.test.d.ts +1 -0
  132. package/dist/tests/utils/rate-limit-security.test.js +82 -0
  133. package/dist/tests/utils/rate-limit-security.test.js.map +1 -0
  134. package/dist/tests/utils/salt.test.d.ts +1 -0
  135. package/dist/tests/utils/salt.test.js +20 -0
  136. package/dist/tests/utils/salt.test.js.map +1 -0
  137. package/dist/utils/arguments.d.ts +2 -7
  138. package/dist/utils/arguments.js +21 -17
  139. package/dist/utils/arguments.js.map +1 -1
  140. package/dist/utils/cache.js +15 -13
  141. package/dist/utils/cache.js.map +1 -1
  142. package/dist/utils/data-validators.d.ts +3 -2
  143. package/dist/utils/data-validators.js +8 -11
  144. package/dist/utils/data-validators.js.map +1 -1
  145. package/dist/utils/fetch-cl.js +2 -1
  146. package/dist/utils/fetch-cl.js.map +1 -1
  147. package/dist/utils/index.d.ts +6 -5
  148. package/dist/utils/index.js +6 -5
  149. package/dist/utils/index.js.map +1 -1
  150. package/dist/utils/ipfs.js +18 -1
  151. package/dist/utils/ipfs.js.map +1 -1
  152. package/dist/utils/logging/console.d.ts +1 -0
  153. package/dist/utils/logging/console.js +23 -2
  154. package/dist/utils/logging/console.js.map +1 -1
  155. package/dist/utils/prompts/account.d.ts +1 -0
  156. package/dist/utils/prompts/account.js +13 -0
  157. package/dist/utils/prompts/account.js.map +1 -0
  158. package/dist/utils/prompts/index.d.ts +3 -0
  159. package/dist/utils/prompts/index.js +3 -0
  160. package/dist/utils/prompts/index.js.map +1 -1
  161. package/dist/utils/prompts/strategy.d.ts +15398 -0
  162. package/dist/utils/prompts/strategy.js +10 -0
  163. package/dist/utils/prompts/strategy.js.map +1 -0
  164. package/dist/utils/prompts/timelock-roles.d.ts +1 -0
  165. package/dist/utils/prompts/timelock-roles.js +13 -0
  166. package/dist/utils/prompts/timelock-roles.js.map +1 -0
  167. package/dist/utils/rate-limit.d.ts +6 -9
  168. package/dist/utils/rate-limit.js +27 -5
  169. package/dist/utils/rate-limit.js.map +1 -1
  170. package/dist/utils/salt.d.ts +3 -0
  171. package/dist/utils/salt.js +8 -0
  172. package/dist/utils/salt.js.map +1 -0
  173. package/dist/utils/transactions/tx-private-key.d.ts +2 -1
  174. package/dist/utils/transactions/tx-private-key.js +5 -8
  175. package/dist/utils/transactions/tx-private-key.js.map +1 -1
  176. package/dist/utils/transactions/tx-wc.js +3 -7
  177. package/dist/utils/transactions/tx-wc.js.map +1 -1
  178. package/dist/utils/transactions/utils.d.ts +1 -0
  179. package/dist/utils/transactions/utils.js +12 -0
  180. package/dist/utils/transactions/utils.js.map +1 -1
  181. package/dist/version/index.js +1 -1
  182. package/package.json +3 -2
@@ -0,0 +1,145 @@
1
+ import { DefiWrapperSources } from '../../abi/defi-wrapper/sources.js';
2
+ import { logInfo, RateLimitedFetch } from '../../index.js';
3
+ import { getPublicClient } from '../../providers/wallet.js';
4
+ const EtherscanApi = new RateLimitedFetch(500); // at least 500ms delay between requests to avoid hitting rate limits
5
+ export const checkExistingVerification = async (address, etherscanApiKey) => {
6
+ const chainId = (await getPublicClient()).chain.id;
7
+ const params = new URLSearchParams({
8
+ chainid: chainId.toString(),
9
+ module: 'contract',
10
+ action: 'getsourcecode',
11
+ address,
12
+ apikey: etherscanApiKey,
13
+ });
14
+ const url = `https://api.etherscan.io/v2/api?${params}`;
15
+ const response = await EtherscanApi.fetch(url);
16
+ if (!response.ok) {
17
+ throw new Error(`Failed to fetch verification data: ${response.statusText}`);
18
+ }
19
+ const data = await response.json();
20
+ if (data.status !== '1' || !data.result || data.result.length === 0) {
21
+ throw new Error(`No verification data found for address: ${address}`);
22
+ }
23
+ return data.result[0].SourceCode !== ''; // Already verified
24
+ };
25
+ export const checkVerificationStatus = async (guid, etherscanApiKey) => {
26
+ const chainId = (await getPublicClient()).chain.id;
27
+ const params = new URLSearchParams({
28
+ guid,
29
+ action: 'checkverifystatus',
30
+ module: 'contract',
31
+ chainid: chainId.toString(),
32
+ apikey: etherscanApiKey,
33
+ });
34
+ const url = `https://api.etherscan.io/v2/api?${params}`;
35
+ const response = await EtherscanApi.fetch(url);
36
+ if (!response.ok) {
37
+ throw new Error(`Failed to fetch verification status: ${response.statusText}`);
38
+ }
39
+ const data = await response.json();
40
+ if (data.status !== '1' || !data.result || data.result.length === 0) {
41
+ throw new Error(`No verification status found for GUID: ${guid}`);
42
+ }
43
+ return data.result[0].result; // "Pass - Verified" or "Fail - Unable to verify"
44
+ };
45
+ export const verifyContract = async (contract, address, etherscanApiKey) => {
46
+ const chainId = (await getPublicClient()).chain.id;
47
+ const sourceData = DefiWrapperSources[contract];
48
+ if (!sourceData) {
49
+ throw new Error(`No source data found for contract: ${contract}. Available contracts: ${Object.keys(DefiWrapperSources).join(', ')}`);
50
+ }
51
+ const alreadyVerified = await checkExistingVerification(address, etherscanApiKey);
52
+ if (alreadyVerified) {
53
+ logInfo('Contract is already verified.');
54
+ return;
55
+ }
56
+ const body = new URLSearchParams({
57
+ apikey: etherscanApiKey,
58
+ chainid: chainId.toString(),
59
+ module: 'contract',
60
+ action: 'verifysourcecode',
61
+ contractaddress: address,
62
+ sourceCode: JSON.stringify(JSON.parse(sourceData.SourceCode)),
63
+ codeformat: sourceData.codeformat,
64
+ contractname: `${sourceData.ContractFileName}:${sourceData.ContractName}`,
65
+ compilerversion: sourceData.CompilerVersion,
66
+ optimizationUsed: sourceData.OptimizationUsed,
67
+ runs: sourceData.Runs,
68
+ evmVersion: sourceData.EVMVersion,
69
+ });
70
+ const res = await EtherscanApi.fetch(`https://api.etherscan.io/v2/api?chainid=${chainId}`, {
71
+ method: 'POST',
72
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
73
+ body: body.toString(),
74
+ });
75
+ if (!res.ok) {
76
+ throw new Error(`Failed to submit verification: ${res.statusText}`);
77
+ }
78
+ const result = await res.json();
79
+ if (result.status !== '1') {
80
+ throw new Error(`Verification failed: ${result.result}`);
81
+ }
82
+ const guid = result.result;
83
+ logInfo(`Verification submitted. GUID: ${guid}`);
84
+ for (let i = 0; i < 10; i++) {
85
+ logInfo(`Checking verification status (attempt ${i + 1}/10)...`);
86
+ const status = await checkVerificationStatus(guid, etherscanApiKey);
87
+ logInfo(`Current status: ${status}`);
88
+ if (status === 'Pass - Verified') {
89
+ logInfo('Contract verified successfully!');
90
+ return;
91
+ }
92
+ else if (status === 'Fail - Unable to verify') {
93
+ throw new Error('Verification failed after submission.');
94
+ }
95
+ await new Promise((resolve) => setTimeout(resolve, 10000)); // Wait 10 seconds before retrying
96
+ }
97
+ throw new Error('Verification status check timed out.');
98
+ };
99
+ const POOL_TYPE_CONTRACT = {
100
+ '0x537476506f6f6c00000000000000000000000000000000000000000000000007': 'stvPoolImpl',
101
+ // stvStethPool and stvStetStrategy have same implementation
102
+ '0x5374765374455448506f6f6c000000000000000000000000000000000000000c': 'stvStethPoolImpl',
103
+ '0x5374765374726174656779506f6f6c000000000000000000000000000000000f': 'stvStethPoolImpl',
104
+ };
105
+ const STRATEGY_TYPE_CONTRACT = {
106
+ '0x3b0e47226370dd0daa4b28feb910df52f3fa507a32622521ef348962830e24cd': 'mellowStrategyImpl',
107
+ };
108
+ export const verifyDefiWrapperDeployment = async ({ etherscanApiKey, poolProxy, poolImpl, poolType, withdrawalQueue, withdrawalQueueImpl, timelock, strategyType, strategyImpl, strategyProxy, }) => {
109
+ logInfo('Verifying Pool Proxy...');
110
+ await verifyContract('proxy', poolProxy, etherscanApiKey);
111
+ logInfo('Pool Proxy verified successfully!');
112
+ logInfo('Verifying Pool Implementation...');
113
+ const poolContract = POOL_TYPE_CONTRACT[poolType];
114
+ if (!poolContract) {
115
+ throw new Error(`Unknown pool type for proxy: ${poolProxy}`);
116
+ }
117
+ await verifyContract(poolContract, poolImpl, etherscanApiKey);
118
+ logInfo('Pool Implementation verified successfully!');
119
+ logInfo('Verifying Withdrawal Queue Proxy...');
120
+ await verifyContract('proxy', withdrawalQueue, etherscanApiKey);
121
+ logInfo('Withdrawal Queue Proxy verified successfully!');
122
+ logInfo('Verifying Withdrawal Queue Implementation...');
123
+ await verifyContract('wqImpl', withdrawalQueueImpl, etherscanApiKey);
124
+ logInfo('Withdrawal Queue Implementation verified successfully!');
125
+ logInfo('Verifying TimeLock...');
126
+ await verifyContract('timelock', timelock, etherscanApiKey);
127
+ logInfo('TimeLock verified successfully!');
128
+ if (strategyType) {
129
+ if (!strategyImpl || !strategyProxy) {
130
+ throw new Error('Strategy type is set but strategy implementation or proxy address is missing');
131
+ }
132
+ logInfo('Verifying Strategy Proxy...');
133
+ await verifyContract('proxy', strategyProxy, etherscanApiKey);
134
+ logInfo('Strategy Proxy verified successfully!');
135
+ const strategyContract = STRATEGY_TYPE_CONTRACT[strategyType];
136
+ if (!strategyContract) {
137
+ throw new Error(`Unknown strategy type for proxy: ${strategyProxy}`);
138
+ }
139
+ logInfo('Verifying Strategy Implementation...');
140
+ await verifyContract(strategyContract, strategyImpl, etherscanApiKey);
141
+ logInfo('Strategy Implementation verified successfully!');
142
+ }
143
+ logInfo('All contracts verified successfully!');
144
+ };
145
+ //# sourceMappingURL=verify-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-contracts.js","sourceRoot":"","sources":["../../../features/defi-wrapper/verify-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,qEAAqE;AAIrH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC5C,OAAgB,EAChB,eAAuB,EACvB,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,eAAe;QACvB,OAAO;QACP,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,mCAAmC,MAAM,EAAE,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,UAAU,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,mBAAmB;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,IAAY,EACZ,eAAuB,EACT,EAAE;IAChB,MAAM,OAAO,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,IAAI;QACJ,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,UAAU;QAClB,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,mCAAmC,MAAM,EAAE,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,wCAAwC,QAAQ,CAAC,UAAU,EAAE,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,iDAAiD;AACjF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,QAAsB,EACtB,OAAgB,EAChB,eAAuB,EACvB,EAAE;IACF,MAAM,OAAO,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,0BAA0B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrH,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,yBAAyB,CACrD,OAAO,EACP,eAAe,CAChB,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;QAC/B,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,kBAAkB;QAC1B,eAAe,EAAE,OAAO;QACxB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7D,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,YAAY,EAAE,GAAG,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,YAAY,EAAE;QACzE,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;QAC7C,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,KAAK,CAClC,2CAA2C,OAAO,EAAE,EACpD;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;QAChE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;KACtB,CACF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,OAAO,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACpE,OAAO,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACjC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;aAAM,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,kCAAkC;IAChG,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,oEAAoE,EAClE,aAAa;IACf,4DAA4D;IAC5D,oEAAoE,EAClE,kBAAkB;IACpB,oEAAoE,EAClE,kBAAkB;CACiC,CAAC;AAExD,MAAM,sBAAsB,GAAG;IAC7B,oEAAoE,EAClE,oBAAoB;CAGvB,CAAC;AAmBF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,EAChD,eAAe,EACf,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,aAAa,GACqB,EAAE,EAAE;IACtC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACnC,MAAM,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAE7C,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC9D,OAAO,CAAC,4CAA4C,CAAC,CAAC;IAEtD,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC/C,MAAM,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAChE,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAEzD,OAAO,CAAC,8CAA8C,CAAC,CAAC;IACxD,MAAM,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACrE,OAAO,CAAC,wDAAwD,CAAC,CAAC;IAElE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACjC,MAAM,cAAc,CAAC,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC5D,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAE3C,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,6BAA6B,CAAC,CAAC;QACvC,MAAM,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAC9D,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAEjD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,oCAAoC,aAAa,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAChD,MAAM,cAAc,CAAC,gBAAgB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QACtE,OAAO,CAAC,gDAAgD,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,sCAAsC,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -1,8 +1,10 @@
1
+ import { assertSafeUrl } from '../../utils/index.js';
1
2
  export const tryFetchPost = async (url, body) => {
2
3
  let success = false;
3
4
  let result = null;
4
5
  let error = null;
5
6
  try {
7
+ assertSafeUrl(url, 'callback URL');
6
8
  const response = await fetch(url, {
7
9
  method: 'POST',
8
10
  headers: { 'Content-Type': 'application/json' },
@@ -1 +1 @@
1
- {"version":3,"file":"try-fetch.js","sourceRoot":"","sources":["../../../features/utils/try-fetch.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAW,EACX,IAAa,EACb,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACtC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACrD;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,CAAC,MAAM,iBAAiB,QAAQ,CAAC,UAAU,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"try-fetch.js","sourceRoot":"","sources":["../../../features/utils/try-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,GAAW,EACX,IAAa,EACb,EAAE;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QACH,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CACtC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACrD;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,uBAAuB,QAAQ,CAAC,MAAM,iBAAiB,QAAQ,CAAC,UAAU,EAAE,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM;QACN,KAAK;KACN,CAAC;AACJ,CAAC,CAAC"}
@@ -27,7 +27,8 @@ accountWrite
27
27
  return;
28
28
  }
29
29
  const privateKey = generatePrivateKey();
30
- logInfo(`Private key: ${privateKey}`);
30
+ // Write to stderr so pipes/redirects cannot capture the key
31
+ process.stderr.write(`Private key: ${privateKey}\n`);
31
32
  });
32
33
  accountWrite
33
34
  .command('generate-encrypted-account')
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/account/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../programs/account/write.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
- import { encodeAbiParameters, keccak256, toBytes, zeroAddress, } from 'viem';
1
+ import { encodeAbiParameters, isAddressEqual, zeroAddress, } from 'viem';
2
2
  import { getTransactionReceipt } from 'viem/actions';
3
3
  import { Option } from 'commander';
4
4
  import { logInfo, getCommandsJson, stringToAddress, callWriteMethodWithReceipt, confirmOperation, stringToNumber, stringToBoolean, stringToHash, withError, } from '../../../../utils/index.js';
5
- import { getFactoryContract, getStrategyFactoryContract, } from '../../../../contracts/defi-wrapper/index.js';
6
- import { getCreatePoolEventData, getReserveRatioGapBP, promptBaseVaultConfiguration, logCreatePoolEventData, finalizePoolCreation, prepareCreationConfigrationText, simulatePoolCreation, promptAllowListConfiguration, MELLOW_VAULTS_STRATEGY_ID, } from '../../../../features/index.js';
5
+ import { getFactoryContract, getOssifiableProxyContract, getStrategyFactoryContract, getStvPoolContract, } from '../../../../contracts/defi-wrapper/index.js';
6
+ import { getCreatePoolEventData, getReserveRatioGapBP, promptBaseVaultConfiguration, logCreatePoolEventData, finalizePoolCreation, prepareCreationConfigrationText, simulatePoolCreation, promptAllowListConfiguration, MELLOW_VAULTS_STRATEGY_ID, getFinalizePoolEventData, getBoolean, KNOWN_STRATEGIES, } from '../../../../features/index.js';
7
7
  import { factory } from './main.js';
8
8
  import { getPublicClient } from '../../../../providers/index.js';
9
+ import { verifyContract, verifyDefiWrapperDeployment, } from '../../../../features/defi-wrapper/verify-contracts.js';
10
+ import { envs } from '../../../../configs/index.js';
11
+ import { getGenericStrategyContract } from '../../../../contracts/defi-wrapper/generic-strategy.js';
9
12
  // CONSTANTS & HELPERS
10
13
  const FIRST_STEP_MESSAGE = 'Transaction has been sent. Use "dw contracts factory write create-pool-finalize" command to finalize the pool creation after the transaction is signed and executed';
11
14
  // adds common options for all wrapper creation commands
@@ -200,12 +203,18 @@ applyCommonOptions(factoryWrite
200
203
  throw new Error('StvStrategyPool creation with custom strategy factory does not support setting AllowList Manager. This role will be able to manage list of allowed strategies and should only be set via Timelock Governance after the pool creation.');
201
204
  }
202
205
  }
206
+ if (strategyFactory && mintingEnabled != undefined && !mintingEnabled) {
207
+ throw new Error('Minting must always be enabled for strategy pools');
208
+ }
209
+ const mintingEnabledValue = strategyFactory
210
+ ? true
211
+ : await getBoolean(mintingEnabled, 'mintingEnabled');
203
212
  const reserveRatioGapBPValue = await getReserveRatioGapBP(reserveRatioGapBP);
204
213
  const confirmationMessage = `Are you sure you want to create a new custom pool?\n
205
214
  ${prepareCreationConfigrationText(vaultConfig, timelockConfig, commonPoolConfig)}
206
215
  strategyFactory: ${strategyFactory ?? '<none>'}
207
216
  strategyFactoryDeployBytes: ${strategyFactoryDeployBytes ?? '<none>'}
208
- mintingEnabled: ${mintingEnabled !== undefined ? mintingEnabled : true}
217
+ mintingEnabled: ${mintingEnabledValue}
209
218
  allowListEnabled: ${allowListConfig.allowListEnabled}
210
219
  allowListManager: ${allowListConfig.allowListManager === zeroAddress ? '<none>' : allowListConfig.allowListManager}
211
220
  reserveRatioGapBP: ${reserveRatioGapBPValue}\n`;
@@ -221,7 +230,7 @@ applyCommonOptions(factoryWrite
221
230
  allowListEnabled: allowListConfig.allowListEnabled,
222
231
  allowListManager: allowListConfig.allowListManager,
223
232
  reserveRatioGapBP: BigInt(reserveRatioGapBPValue),
224
- mintingEnabled: true,
233
+ mintingEnabled: mintingEnabledValue,
225
234
  },
226
235
  strategyFactory ?? zeroAddress,
227
236
  strategyFactoryDeployBytes ?? '0x',
@@ -262,7 +271,7 @@ applyCommonOptions(factoryWrite
262
271
  if (error || !STRATEGY_ID) {
263
272
  throw new Error(`Error reading STRATEGY_ID from the strategy factory contract: ${error}. Make sure the provided address is correct and the contract is properly deployed.`);
264
273
  }
265
- if (STRATEGY_ID !== keccak256(toBytes(MELLOW_VAULTS_STRATEGY_ID))) {
274
+ if (KNOWN_STRATEGIES[STRATEGY_ID] !== MELLOW_VAULTS_STRATEGY_ID) {
266
275
  throw new Error(`The provided strategy factory contract has an incompatible STRATEGY_ID. Check that the contract at address ${strategyFactoryAddress} is the correct one.`);
267
276
  }
268
277
  const { vaultConfig, timelockConfig, commonPoolConfig } = await promptBaseVaultConfiguration(baseOptions);
@@ -333,4 +342,66 @@ factoryWrite
333
342
  logCreatePoolEventData(eventData);
334
343
  await finalizePoolCreation(contract, eventData);
335
344
  });
345
+ factoryWrite
346
+ .command('verify-contract')
347
+ .description('verifies single deployed contract of defi-wrapper set on Etherscan')
348
+ .argument('<contractName>', 'contract type, can be one of "wqImpl", "timelock", "proxy", "stvPoolImpl", "stvStethPoolImpl", "dashboardImpl", "mellowStrategyImpl"')
349
+ .argument('<contractAddress>', 'contract address', stringToAddress)
350
+ .option('--etherscanApiKey [etherscanApiKey]', 'Etherscan API Key, can also be set in .env file as ETHERSCAN_API_KEY', envs?.ETHERSCAN_API_KEY)
351
+ .action(async (contractName, contractAddress, options) => {
352
+ const { etherscanApiKey } = options;
353
+ if (!etherscanApiKey) {
354
+ throw new Error('Etherscan API key is required for contract verification. Please provide it in .env or via --etherscanApiKey option.');
355
+ }
356
+ await verifyContract(contractName, contractAddress, etherscanApiKey);
357
+ });
358
+ factoryWrite
359
+ .command('verify-deployment')
360
+ .description('verifies all contracts deployed by the defi wrapper factory on Etherscan')
361
+ .argument('<txHashStart>', 'first transaction hash of the factory deployment', stringToHash)
362
+ .argument('<txHashFinish>', 'final transaction hash of the factory deployment', stringToHash)
363
+ .option('--etherscanApiKey [etherscanApiKey]', 'Etherscan API Key, can also be set in .env file as ETHERSCAN_API_KEY', envs?.ETHERSCAN_API_KEY)
364
+ .action(async (txHashStart, txHashFinish, options) => {
365
+ const { etherscanApiKey } = options;
366
+ if (!etherscanApiKey) {
367
+ throw new Error('Etherscan API key is required for contract verification. Please provide it in .env or via --etherscanApiKey option.');
368
+ }
369
+ const publicClient = await getPublicClient();
370
+ const receiptStart = await publicClient.getTransactionReceipt({
371
+ hash: txHashStart,
372
+ });
373
+ const deployDataStart = await getCreatePoolEventData(receiptStart, txHashStart);
374
+ const receiptFinish = await publicClient.getTransactionReceipt({
375
+ hash: txHashFinish,
376
+ });
377
+ const deployDataFinish = await getFinalizePoolEventData(receiptFinish, txHashFinish);
378
+ if (!deployDataStart.intermediate) {
379
+ throw new Error('Invalid start transaction hash or the transaction does not contain expected events');
380
+ }
381
+ if (!deployDataFinish.vault) {
382
+ throw new Error('Invalid finish transaction hash or the transaction does not contain expected events');
383
+ }
384
+ const strategy = deployDataFinish.strategy &&
385
+ !isAddressEqual(deployDataFinish.strategy, zeroAddress)
386
+ ? await getGenericStrategyContract(deployDataFinish.strategy)
387
+ : null;
388
+ const strategyImpl = strategy
389
+ ? await (await getOssifiableProxyContract(strategy.address)).read.proxy__getImplementation()
390
+ : null;
391
+ const pool = await getStvPoolContract(deployDataStart.intermediate.poolProxy);
392
+ const poolType = await pool.read.poolType();
393
+ const strategyType = strategy ? await strategy.read.STRATEGY_ID() : null;
394
+ await verifyDefiWrapperDeployment({
395
+ etherscanApiKey,
396
+ poolProxy: deployDataStart.intermediate.poolProxy,
397
+ poolImpl: deployDataStart.intermediate.poolImpl,
398
+ poolType,
399
+ withdrawalQueue: deployDataStart.intermediate.withdrawalQueueProxy,
400
+ withdrawalQueueImpl: deployDataStart.intermediate.wqImpl,
401
+ timelock: deployDataStart.intermediate.timelock,
402
+ strategyProxy: strategy ? strategy.address : null,
403
+ strategyImpl: strategyImpl,
404
+ strategyType,
405
+ });
406
+ });
336
407
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/factory/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/factory/write.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export * from './withdrawal-queue/index.js';
4
4
  export * from './stv-pool/index.js';
5
5
  export * from './stv-steth-pool/index.js';
6
6
  export * from './factory/index.js';
7
+ export * from './strategy/index.js';
@@ -4,4 +4,5 @@ export * from './withdrawal-queue/index.js';
4
4
  export * from './stv-pool/index.js';
5
5
  export * from './stv-steth-pool/index.js';
6
6
  export * from './factory/index.js';
7
+ export * from './strategy/index.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../programs/defi-wrapper/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../programs/defi-wrapper/contracts/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GenericStrategyAbi } from '../../../../abi/defi-wrapper/index.js';
2
+ import { ReadProgramCommandConfig } from '../../../../utils/index.js';
3
+ export declare const readCommandConfig: ReadProgramCommandConfig<typeof GenericStrategyAbi>;
@@ -0,0 +1,40 @@
1
+ import { stringToAddress } from '../../../../utils/index.js';
2
+ export const readCommandConfig = {
3
+ getStrategyCallForwarderAddress: {
4
+ hidden: true,
5
+ },
6
+ isAllowListed: {
7
+ name: 'is-allow-listed',
8
+ description: 'get whether the address is allow listed',
9
+ arguments: {
10
+ _user: {
11
+ name: 'user',
12
+ description: 'user address',
13
+ modifier: stringToAddress,
14
+ },
15
+ },
16
+ },
17
+ mintedStethSharesOf: {
18
+ name: 'minted-steth-shares-of',
19
+ description: 'get the minted stETH shares for a user',
20
+ arguments: {
21
+ _user: {
22
+ name: 'user',
23
+ description: 'user address',
24
+ modifier: stringToAddress,
25
+ },
26
+ },
27
+ },
28
+ wstethOf: {
29
+ name: 'wsteth-of',
30
+ description: 'get the wstETH balance of a user',
31
+ arguments: {
32
+ _user: {
33
+ name: 'user',
34
+ description: 'user address',
35
+ modifier: stringToAddress,
36
+ },
37
+ },
38
+ },
39
+ };
40
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/strategy/config.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,eAAe,EAAE,MAAM,OAAO,CAAC;AAElE,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,+BAA+B,EAAE;QAC/B,MAAM,EAAE,IAAI;KACb;IACD,aAAa,EAAE;QACb,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yCAAyC;QACtD,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,wCAAwC;QACrD,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,kCAAkC;QAC/C,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,cAAc;gBAC3B,QAAQ,EAAE,eAAe;aAC1B;SACF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
@@ -0,0 +1,4 @@
1
+ export * from './main.js';
2
+ export * from './read.js';
3
+ export * from './write.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/strategy/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const strategy: import("node_modules/commander/typings/index.js").Command;
@@ -0,0 +1,6 @@
1
+ import { defiWrapperContracts } from '../main.js';
2
+ export const strategy = defiWrapperContracts
3
+ .command('strategy')
4
+ .alias('str')
5
+ .description('strategy contract');
6
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/strategy/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG,oBAAoB;KACzC,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,KAAK,CAAC;KACZ,WAAW,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Option } from 'commander';
2
+ import { logInfo, getCommandsJson, stringToAddress, callReadMethod, generateReadCommands, } from '../../../../utils/index.js';
3
+ import { GenericStrategyAbi } from '../../../../abi/defi-wrapper/index.js';
4
+ import { getGenericStrategyContract } from '../../../../contracts/defi-wrapper/generic-strategy.js';
5
+ import { strategy } from './main.js';
6
+ import { readCommandConfig } from './config.js';
7
+ const strategyRead = strategy
8
+ .command('read')
9
+ .alias('r')
10
+ .description('read commands');
11
+ strategyRead.addOption(new Option('-cmd2json'));
12
+ strategyRead.on('option:-cmd2json', function () {
13
+ logInfo(getCommandsJson(strategyRead));
14
+ process.exit();
15
+ });
16
+ strategyRead
17
+ .command('proxy-of')
18
+ .description('get the strategy call forwarder (proxy) address for a user')
19
+ .argument('<address>', 'strategy contract address', stringToAddress)
20
+ .argument('<user>', 'user address', stringToAddress)
21
+ .action(async (address, user) => {
22
+ const contract = await getGenericStrategyContract(address);
23
+ await callReadMethod({
24
+ contract,
25
+ methodName: 'getStrategyCallForwarderAddress',
26
+ payload: [[user]],
27
+ });
28
+ });
29
+ generateReadCommands(GenericStrategyAbi, getGenericStrategyContract, strategyRead, readCommandConfig);
30
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/strategy/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,YAAY,GAAG,QAAQ;KAC1B,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,eAAe,CAAC,CAAC;AAEhC,YAAY,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAChD,YAAY,CAAC,EAAE,CAAC,kBAAkB,EAAE;IAClC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,YAAY;KACT,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,4DAA4D,CAAC;KACzE,QAAQ,CAAC,WAAW,EAAE,2BAA2B,EAAE,eAAe,CAAC;KACnE,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC;KACnD,MAAM,CAAC,KAAK,EAAE,OAAgB,EAAE,IAAa,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,cAAc,CAAC;QACnB,QAAQ;QACR,UAAU,EAAE,iCAAiC;QAC7C,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,oBAAoB,CAClB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,iBAAiB,CAClB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { Option } from 'commander';
2
+ import { formatEther } from 'viem';
3
+ import { logInfo, getCommandsJson, stringToAddress, callWriteMethodWithReceipt, confirmOperation, etherToWei, } from '../../../../utils/index.js';
4
+ import { getGenericStrategyContract } from '../../../../contracts/defi-wrapper/generic-strategy.js';
5
+ import { strategy } from './main.js';
6
+ const strategyWrite = strategy
7
+ .command('write')
8
+ .alias('w')
9
+ .description('write commands');
10
+ strategyWrite.addOption(new Option('-cmd2json'));
11
+ strategyWrite.on('option:-cmd2json', function () {
12
+ logInfo(getCommandsJson(strategyWrite));
13
+ process.exit();
14
+ });
15
+ strategyWrite
16
+ .command('safe-transfer-erc20')
17
+ .description('transfer ERC20 tokens from strategy proxy to a recipient')
18
+ .argument('<address>', 'strategy address', stringToAddress)
19
+ .argument('<token>', 'ERC20 token address', stringToAddress)
20
+ .argument('<recipient>', 'recipient address', stringToAddress)
21
+ .argument('<amount>', 'amount of tokens to transfer (in ETH)', etherToWei)
22
+ .action(async (address, token, recipient, amount) => {
23
+ const contract = await getGenericStrategyContract(address);
24
+ const confirmationMessage = `Are you sure you want to transfer tokens from strategy proxy ${address}? (token: ${token}, recipient: ${recipient}, amount: ${formatEther(amount)})`;
25
+ const confirm = await confirmOperation(confirmationMessage);
26
+ if (!confirm)
27
+ return;
28
+ await callWriteMethodWithReceipt({
29
+ contract,
30
+ methodName: 'safeTransferERC20',
31
+ payload: [token, recipient, amount],
32
+ });
33
+ });
34
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../../programs/defi-wrapper/contracts/strategy/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAW,WAAW,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,UAAU,GACX,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,aAAa,GAAG,QAAQ;KAC3B,OAAO,CAAC,OAAO,CAAC;KAChB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAEjC,aAAa,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AACjD,aAAa,CAAC,EAAE,CAAC,kBAAkB,EAAE;IACnC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,aAAa;KACV,OAAO,CAAC,qBAAqB,CAAC;KAC9B,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,eAAe,CAAC;KAC1D,QAAQ,CAAC,SAAS,EAAE,qBAAqB,EAAE,eAAe,CAAC;KAC3D,QAAQ,CAAC,aAAa,EAAE,mBAAmB,EAAE,eAAe,CAAC;KAC7D,QAAQ,CAAC,UAAU,EAAE,uCAAuC,EAAE,UAAU,CAAC;KACzE,MAAM,CACL,KAAK,EACH,OAAgB,EAChB,KAAc,EACd,SAAkB,EAClB,MAAc,EACd,EAAE;IACF,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,mBAAmB,GAAG,gEAAgE,OAAO,aAAa,KAAK,gBAAgB,SAAS,aAAa,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IAClL,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,UAAU,EAAE,mBAAmB;QAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC;KACpC,CAAC,CAAC;AACL,CAAC,CACF,CAAC"}