@gearbox-protocol/sdk 11.0.0-next.2 → 11.0.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.
@@ -1,16 +1,70 @@
1
1
  import { ITreasurySplitterAbi } from "../../abi/310/iTreasurySplitter.js";
2
+ import { decodeFunctionWithNamedArgs } from "../utils/abi-decoder.js";
2
3
  import { BaseContract } from "./base-contract.js";
3
4
  const abi = ITreasurySplitterAbi;
4
5
  class TreasurySplitterContract extends BaseContract {
5
6
  constructor(address, client) {
6
7
  super(abi, address, client, "TreasurySplitter");
7
8
  }
9
+ async defaultSplit() {
10
+ return await this.contract.read.defaultSplit();
11
+ }
12
+ async activeProposals() {
13
+ return this.contract.read.activeProposals();
14
+ }
8
15
  distribute(token) {
9
16
  return this.createRawTx({
10
17
  functionName: "distribute",
11
18
  args: [token]
12
19
  });
13
20
  }
21
+ setDefaultSplitTx(receivers, proportions) {
22
+ const rawTx = this.createRawTx({
23
+ functionName: "setDefaultSplit",
24
+ args: [receivers, proportions]
25
+ });
26
+ return this.wrapConfigure(rawTx);
27
+ }
28
+ setTokenSplitTx(token, receivers, proportions, distributeBefore) {
29
+ const rawTx = this.createRawTx({
30
+ functionName: "setTokenSplit",
31
+ args: [token, receivers, proportions, distributeBefore]
32
+ });
33
+ return this.wrapConfigure(rawTx);
34
+ }
35
+ setTokenInsuranceAmountTx(token, amount) {
36
+ const rawTx = this.createRawTx({
37
+ functionName: "setTokenInsuranceAmount",
38
+ args: [token, amount]
39
+ });
40
+ return this.wrapConfigure(rawTx);
41
+ }
42
+ withdrawTokenTx(token, to, amount) {
43
+ const rawTx = this.createRawTx({
44
+ functionName: "withdrawToken",
45
+ args: [token, to, amount]
46
+ });
47
+ return this.wrapConfigure(rawTx);
48
+ }
49
+ configureTx(callData) {
50
+ return this.createRawTx({
51
+ functionName: "configure",
52
+ args: [callData]
53
+ });
54
+ }
55
+ cancelConfigureTx(callData) {
56
+ const rawTx = this.createRawTx({
57
+ functionName: "cancelConfigure",
58
+ args: [callData]
59
+ });
60
+ return rawTx;
61
+ }
62
+ wrapConfigure(rawTx) {
63
+ return this.createRawTx({
64
+ functionName: "configure",
65
+ args: [rawTx.callData]
66
+ });
67
+ }
14
68
  parseFunctionParams(params) {
15
69
  const { functionName, args } = params;
16
70
  switch (functionName) {
@@ -26,6 +80,23 @@ class TreasurySplitterContract extends BaseContract {
26
80
  }
27
81
  };
28
82
  }
83
+ case "configure": {
84
+ const [callData] = args;
85
+ const decoded = decodeFunctionWithNamedArgs(abi, callData);
86
+ if (decoded) {
87
+ return {
88
+ chainId: 0,
89
+ target: this.address,
90
+ label: this.name,
91
+ functionName,
92
+ args: {
93
+ functionName: decoded.functionName,
94
+ ...decoded.args
95
+ }
96
+ };
97
+ }
98
+ return void 0;
99
+ }
29
100
  default:
30
101
  return void 0;
31
102
  }
@@ -1,4 +1,90 @@
1
1
  export declare const ITreasurySplitterAbi: readonly [{
2
+ readonly type: "function";
3
+ readonly name: "activeProposals";
4
+ readonly inputs: readonly [];
5
+ readonly outputs: readonly [{
6
+ readonly name: "";
7
+ readonly type: "tuple[]";
8
+ readonly internalType: "struct TwoAdminProposal[]";
9
+ readonly components: readonly [{
10
+ readonly name: "callData";
11
+ readonly type: "bytes";
12
+ readonly internalType: "bytes";
13
+ }, {
14
+ readonly name: "confirmedByAdmin";
15
+ readonly type: "bool";
16
+ readonly internalType: "bool";
17
+ }, {
18
+ readonly name: "confirmedByTreasuryProxy";
19
+ readonly type: "bool";
20
+ readonly internalType: "bool";
21
+ }];
22
+ }];
23
+ readonly stateMutability: "view";
24
+ }, {
25
+ readonly type: "function";
26
+ readonly name: "admin";
27
+ readonly inputs: readonly [];
28
+ readonly outputs: readonly [{
29
+ readonly name: "";
30
+ readonly type: "address";
31
+ readonly internalType: "address";
32
+ }];
33
+ readonly stateMutability: "view";
34
+ }, {
35
+ readonly type: "function";
36
+ readonly name: "cancelConfigure";
37
+ readonly inputs: readonly [{
38
+ readonly name: "callData";
39
+ readonly type: "bytes";
40
+ readonly internalType: "bytes";
41
+ }];
42
+ readonly outputs: readonly [];
43
+ readonly stateMutability: "nonpayable";
44
+ }, {
45
+ readonly type: "function";
46
+ readonly name: "configure";
47
+ readonly inputs: readonly [{
48
+ readonly name: "callData";
49
+ readonly type: "bytes";
50
+ readonly internalType: "bytes";
51
+ }];
52
+ readonly outputs: readonly [];
53
+ readonly stateMutability: "nonpayable";
54
+ }, {
55
+ readonly type: "function";
56
+ readonly name: "contractType";
57
+ readonly inputs: readonly [];
58
+ readonly outputs: readonly [{
59
+ readonly name: "";
60
+ readonly type: "bytes32";
61
+ readonly internalType: "bytes32";
62
+ }];
63
+ readonly stateMutability: "view";
64
+ }, {
65
+ readonly type: "function";
66
+ readonly name: "defaultSplit";
67
+ readonly inputs: readonly [];
68
+ readonly outputs: readonly [{
69
+ readonly name: "";
70
+ readonly type: "tuple";
71
+ readonly internalType: "struct Split";
72
+ readonly components: readonly [{
73
+ readonly name: "initialized";
74
+ readonly type: "bool";
75
+ readonly internalType: "bool";
76
+ }, {
77
+ readonly name: "receivers";
78
+ readonly type: "address[]";
79
+ readonly internalType: "address[]";
80
+ }, {
81
+ readonly name: "proportions";
82
+ readonly type: "uint16[]";
83
+ readonly internalType: "uint16[]";
84
+ }];
85
+ }];
86
+ readonly stateMutability: "view";
87
+ }, {
2
88
  readonly type: "function";
3
89
  readonly name: "distribute";
4
90
  readonly inputs: readonly [{
@@ -8,4 +94,273 @@ export declare const ITreasurySplitterAbi: readonly [{
8
94
  }];
9
95
  readonly outputs: readonly [];
10
96
  readonly stateMutability: "nonpayable";
97
+ }, {
98
+ readonly type: "function";
99
+ readonly name: "getProposal";
100
+ readonly inputs: readonly [{
101
+ readonly name: "callDataHash";
102
+ readonly type: "bytes32";
103
+ readonly internalType: "bytes32";
104
+ }];
105
+ readonly outputs: readonly [{
106
+ readonly name: "";
107
+ readonly type: "tuple";
108
+ readonly internalType: "struct TwoAdminProposal";
109
+ readonly components: readonly [{
110
+ readonly name: "callData";
111
+ readonly type: "bytes";
112
+ readonly internalType: "bytes";
113
+ }, {
114
+ readonly name: "confirmedByAdmin";
115
+ readonly type: "bool";
116
+ readonly internalType: "bool";
117
+ }, {
118
+ readonly name: "confirmedByTreasuryProxy";
119
+ readonly type: "bool";
120
+ readonly internalType: "bool";
121
+ }];
122
+ }];
123
+ readonly stateMutability: "view";
124
+ }, {
125
+ readonly type: "function";
126
+ readonly name: "setDefaultSplit";
127
+ readonly inputs: readonly [{
128
+ readonly name: "receivers";
129
+ readonly type: "address[]";
130
+ readonly internalType: "address[]";
131
+ }, {
132
+ readonly name: "proportions";
133
+ readonly type: "uint16[]";
134
+ readonly internalType: "uint16[]";
135
+ }];
136
+ readonly outputs: readonly [];
137
+ readonly stateMutability: "nonpayable";
138
+ }, {
139
+ readonly type: "function";
140
+ readonly name: "setTokenInsuranceAmount";
141
+ readonly inputs: readonly [{
142
+ readonly name: "token";
143
+ readonly type: "address";
144
+ readonly internalType: "address";
145
+ }, {
146
+ readonly name: "amount";
147
+ readonly type: "uint256";
148
+ readonly internalType: "uint256";
149
+ }];
150
+ readonly outputs: readonly [];
151
+ readonly stateMutability: "nonpayable";
152
+ }, {
153
+ readonly type: "function";
154
+ readonly name: "setTokenSplit";
155
+ readonly inputs: readonly [{
156
+ readonly name: "token";
157
+ readonly type: "address";
158
+ readonly internalType: "address";
159
+ }, {
160
+ readonly name: "receivers";
161
+ readonly type: "address[]";
162
+ readonly internalType: "address[]";
163
+ }, {
164
+ readonly name: "proportions";
165
+ readonly type: "uint16[]";
166
+ readonly internalType: "uint16[]";
167
+ }, {
168
+ readonly name: "distribute";
169
+ readonly type: "bool";
170
+ readonly internalType: "bool";
171
+ }];
172
+ readonly outputs: readonly [];
173
+ readonly stateMutability: "nonpayable";
174
+ }, {
175
+ readonly type: "function";
176
+ readonly name: "tokenInsuranceAmount";
177
+ readonly inputs: readonly [{
178
+ readonly name: "token";
179
+ readonly type: "address";
180
+ readonly internalType: "address";
181
+ }];
182
+ readonly outputs: readonly [{
183
+ readonly name: "";
184
+ readonly type: "uint256";
185
+ readonly internalType: "uint256";
186
+ }];
187
+ readonly stateMutability: "view";
188
+ }, {
189
+ readonly type: "function";
190
+ readonly name: "tokenSplits";
191
+ readonly inputs: readonly [{
192
+ readonly name: "token";
193
+ readonly type: "address";
194
+ readonly internalType: "address";
195
+ }];
196
+ readonly outputs: readonly [{
197
+ readonly name: "";
198
+ readonly type: "tuple";
199
+ readonly internalType: "struct Split";
200
+ readonly components: readonly [{
201
+ readonly name: "initialized";
202
+ readonly type: "bool";
203
+ readonly internalType: "bool";
204
+ }, {
205
+ readonly name: "receivers";
206
+ readonly type: "address[]";
207
+ readonly internalType: "address[]";
208
+ }, {
209
+ readonly name: "proportions";
210
+ readonly type: "uint16[]";
211
+ readonly internalType: "uint16[]";
212
+ }];
213
+ }];
214
+ readonly stateMutability: "view";
215
+ }, {
216
+ readonly type: "function";
217
+ readonly name: "treasuryProxy";
218
+ readonly inputs: readonly [];
219
+ readonly outputs: readonly [{
220
+ readonly name: "";
221
+ readonly type: "address";
222
+ readonly internalType: "address";
223
+ }];
224
+ readonly stateMutability: "view";
225
+ }, {
226
+ readonly type: "function";
227
+ readonly name: "version";
228
+ readonly inputs: readonly [];
229
+ readonly outputs: readonly [{
230
+ readonly name: "";
231
+ readonly type: "uint256";
232
+ readonly internalType: "uint256";
233
+ }];
234
+ readonly stateMutability: "view";
235
+ }, {
236
+ readonly type: "function";
237
+ readonly name: "withdrawToken";
238
+ readonly inputs: readonly [{
239
+ readonly name: "token";
240
+ readonly type: "address";
241
+ readonly internalType: "address";
242
+ }, {
243
+ readonly name: "to";
244
+ readonly type: "address";
245
+ readonly internalType: "address";
246
+ }, {
247
+ readonly name: "amount";
248
+ readonly type: "uint256";
249
+ readonly internalType: "uint256";
250
+ }];
251
+ readonly outputs: readonly [];
252
+ readonly stateMutability: "nonpayable";
253
+ }, {
254
+ readonly type: "event";
255
+ readonly name: "DistributeToken";
256
+ readonly inputs: readonly [{
257
+ readonly name: "token";
258
+ readonly type: "address";
259
+ readonly indexed: true;
260
+ readonly internalType: "address";
261
+ }, {
262
+ readonly name: "distributedAmount";
263
+ readonly type: "uint256";
264
+ readonly indexed: false;
265
+ readonly internalType: "uint256";
266
+ }];
267
+ readonly anonymous: false;
268
+ }, {
269
+ readonly type: "event";
270
+ readonly name: "SetDefaultSplit";
271
+ readonly inputs: readonly [{
272
+ readonly name: "receivers";
273
+ readonly type: "address[]";
274
+ readonly indexed: false;
275
+ readonly internalType: "address[]";
276
+ }, {
277
+ readonly name: "proportions";
278
+ readonly type: "uint16[]";
279
+ readonly indexed: false;
280
+ readonly internalType: "uint16[]";
281
+ }];
282
+ readonly anonymous: false;
283
+ }, {
284
+ readonly type: "event";
285
+ readonly name: "SetTokenInsuranceAmount";
286
+ readonly inputs: readonly [{
287
+ readonly name: "token";
288
+ readonly type: "address";
289
+ readonly indexed: true;
290
+ readonly internalType: "address";
291
+ }, {
292
+ readonly name: "amount";
293
+ readonly type: "uint256";
294
+ readonly indexed: false;
295
+ readonly internalType: "uint256";
296
+ }];
297
+ readonly anonymous: false;
298
+ }, {
299
+ readonly type: "event";
300
+ readonly name: "SetTokenSplit";
301
+ readonly inputs: readonly [{
302
+ readonly name: "token";
303
+ readonly type: "address";
304
+ readonly indexed: true;
305
+ readonly internalType: "address";
306
+ }, {
307
+ readonly name: "receivers";
308
+ readonly type: "address[]";
309
+ readonly indexed: false;
310
+ readonly internalType: "address[]";
311
+ }, {
312
+ readonly name: "proportions";
313
+ readonly type: "uint16[]";
314
+ readonly indexed: false;
315
+ readonly internalType: "uint16[]";
316
+ }];
317
+ readonly anonymous: false;
318
+ }, {
319
+ readonly type: "event";
320
+ readonly name: "WithdrawToken";
321
+ readonly inputs: readonly [{
322
+ readonly name: "token";
323
+ readonly type: "address";
324
+ readonly indexed: true;
325
+ readonly internalType: "address";
326
+ }, {
327
+ readonly name: "to";
328
+ readonly type: "address";
329
+ readonly indexed: true;
330
+ readonly internalType: "address";
331
+ }, {
332
+ readonly name: "withdrawnAmount";
333
+ readonly type: "uint256";
334
+ readonly indexed: false;
335
+ readonly internalType: "uint256";
336
+ }];
337
+ readonly anonymous: false;
338
+ }, {
339
+ readonly type: "error";
340
+ readonly name: "IncorrectConfigureSelectorException";
341
+ readonly inputs: readonly [];
342
+ }, {
343
+ readonly type: "error";
344
+ readonly name: "OnlyAdminOrTreasuryProxyException";
345
+ readonly inputs: readonly [];
346
+ }, {
347
+ readonly type: "error";
348
+ readonly name: "OnlySelfException";
349
+ readonly inputs: readonly [];
350
+ }, {
351
+ readonly type: "error";
352
+ readonly name: "PropotionSumIncorrectException";
353
+ readonly inputs: readonly [];
354
+ }, {
355
+ readonly type: "error";
356
+ readonly name: "SplitArraysDifferentLengthException";
357
+ readonly inputs: readonly [];
358
+ }, {
359
+ readonly type: "error";
360
+ readonly name: "TreasurySplitterAsReceiverException";
361
+ readonly inputs: readonly [];
362
+ }, {
363
+ readonly type: "error";
364
+ readonly name: "UndefinedSplitException";
365
+ readonly inputs: readonly [];
11
366
  }];
@@ -10,4 +10,5 @@ export * from "./ltUtils.js";
10
10
  export * from "./migrateFaucet.js";
11
11
  export * from "./mint/index.js";
12
12
  export * from "./RevolverTransport.js";
13
+ export * from "./replaceStorage.js";
13
14
  export * from "./types.js";
@@ -0,0 +1,24 @@
1
+ import type { Abi } from "abitype";
2
+ import { type ContractFunctionArgs, type ContractFunctionName, type ContractFunctionParameters, type ReadContractReturnType } from "viem";
3
+ import type { AnvilClient } from "./createAnvilClient.js";
4
+ export type ReplaceStorageParams<abi extends Abi | readonly unknown[] = Abi, functionName extends ContractFunctionName<abi, "pure" | "view"> = ContractFunctionName<abi, "pure" | "view">, args extends ContractFunctionArgs<abi, "pure" | "view", functionName> = ContractFunctionArgs<abi, "pure" | "view", functionName>> = ContractFunctionParameters<abi, "pure" | "view", functionName, args, false> & {
5
+ /**
6
+ * New value to set
7
+ */
8
+ value: bigint;
9
+ /**
10
+ * Comparison function, that returns true if value read from contract matches new value
11
+ * @param readVal - value read by contract function, can be tuple, struct, etc...
12
+ * @param value - new value to be set
13
+ * @returns
14
+ */
15
+ slotMatch: (readVal: ReadContractReturnType<abi, functionName, args>, value: bigint) => boolean;
16
+ };
17
+ /**
18
+ * Replaces bigint value in contract storage
19
+ * Success is checked by reading contract function and asserting that its return contains new value
20
+ * @param client
21
+ * @param params
22
+ * @returns
23
+ */
24
+ export declare function replaceStorage<const abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, "pure" | "view">, const args extends ContractFunctionArgs<abi, "pure" | "view", functionName>>(client: AnvilClient, params: ReplaceStorageParams<abi, functionName, args>): Promise<void>;
@@ -336,6 +336,7 @@ export declare class InstanceManagerContract extends BaseContract<typeof abi> {
336
336
  getOwner(): Promise<Address>;
337
337
  wrapConfigureGlobal(rawTx: RawTx): RawTx;
338
338
  wrapConfigureLocal(rawTx: RawTx): RawTx;
339
+ wrapConfigureTreasury(rawTx: RawTx): RawTx;
339
340
  setLocalAddress(args: {
340
341
  key: string;
341
342
  address: Address;
@@ -1639,6 +1639,8 @@ export declare class MarketConfiguratorContract extends BaseContract<typeof abi>
1639
1639
  }>;
1640
1640
  multipause(): Promise<Address | undefined>;
1641
1641
  grantRole(role: string, address: Address): RawTx;
1642
+ revokeRole(role: string, address: Address): RawTx;
1643
+ setEmergencyAdmin(newEmergencyAdmin: Address): RawTx;
1642
1644
  syncSetEmergencyAdmin(fromBlock: bigint, toBlock: bigint): Promise<Array<{
1643
1645
  emergencyAdmin: Address;
1644
1646
  atBlock: number;