@gearbox-protocol/sdk 11.0.0-next.3 → 11.1.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 (23) hide show
  1. package/dist/cjs/abi/310/iTreasurySplitter.js +465 -1
  2. package/dist/cjs/permissionless/bindings/instance-manager.js +38 -0
  3. package/dist/cjs/permissionless/bindings/market-configurator.js +12 -0
  4. package/dist/cjs/permissionless/bindings/treasury-splitter.js +71 -0
  5. package/dist/cjs/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +39 -0
  6. package/dist/cjs/sdk/market/loss-policy/constants.js +38 -0
  7. package/dist/cjs/sdk/market/loss-policy/createLossPolicy.js +3 -2
  8. package/dist/esm/abi/310/iTreasurySplitter.js +465 -1
  9. package/dist/esm/permissionless/bindings/instance-manager.js +38 -0
  10. package/dist/esm/permissionless/bindings/market-configurator.js +12 -0
  11. package/dist/esm/permissionless/bindings/treasury-splitter.js +71 -0
  12. package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +43 -1
  13. package/dist/esm/sdk/market/loss-policy/constants.js +12 -0
  14. package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +3 -2
  15. package/dist/types/abi/310/iTreasurySplitter.d.ts +355 -0
  16. package/dist/types/permissionless/bindings/instance-manager.d.ts +1 -0
  17. package/dist/types/permissionless/bindings/market-configurator.d.ts +2 -0
  18. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +373 -1
  19. package/dist/types/permissionless/utils/governance/types.d.ts +1 -0
  20. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +12 -0
  21. package/dist/types/sdk/market/loss-policy/constants.d.ts +4 -0
  22. package/dist/types/sdk/types/state-human.d.ts +14 -1
  23. package/package.json +1 -1
@@ -1,8 +1,17 @@
1
- import { encodeAbiParameters } from "viem";
1
+ import {
2
+ decodeAbiParameters,
3
+ encodeAbiParameters
4
+ } from "viem";
2
5
  import { iAliasedLossPolicyV310Abi } from "../../../abi/310/generated.js";
3
6
  import { BaseContract } from "../../base/index.js";
7
+ import { formatDuration } from "../../utils/index.js";
8
+ import { LOSS_POLICY_ACCESS_MODES, LOSS_POLICY_ALIASED } from "./constants.js";
4
9
  const abi = iAliasedLossPolicyV310Abi;
5
10
  class AliasLossPolicyV310Contract extends BaseContract {
11
+ accessMode;
12
+ checksEnabled;
13
+ tokens;
14
+ priceFeedParams;
6
15
  constructor(sdk, params) {
7
16
  super(sdk, {
8
17
  abi,
@@ -10,6 +19,24 @@ class AliasLossPolicyV310Contract extends BaseContract {
10
19
  contractType: params.contractType,
11
20
  version: params.version
12
21
  });
22
+ [this.accessMode, this.checksEnabled, this.tokens, this.priceFeedParams] = decodeAbiParameters(
23
+ [
24
+ { name: "accessMode", type: "uint8" },
25
+ { name: "checksEnabled", type: "bool" },
26
+ { name: "tokens", type: "address[]" },
27
+ {
28
+ name: "priceFeedParams",
29
+ type: "tuple[]",
30
+ components: [
31
+ { name: "priceFeed", type: "address" },
32
+ { name: "stalenessPeriod", type: "uint32" },
33
+ { name: "skipCheck", type: "bool" },
34
+ { name: "tokenDecimals", type: "uint8" }
35
+ ]
36
+ }
37
+ ],
38
+ params.serializedParams
39
+ );
13
40
  }
14
41
  async getLiquidationData(creditAccount, blockNumber) {
15
42
  const pfs = await this.sdk.client.readContract({
@@ -40,6 +67,21 @@ class AliasLossPolicyV310Contract extends BaseContract {
40
67
  [updates]
41
68
  );
42
69
  }
70
+ stateHuman(raw) {
71
+ return {
72
+ ...super.stateHuman(raw),
73
+ contractType: LOSS_POLICY_ALIASED,
74
+ checksEnabled: this.checksEnabled,
75
+ accessMode: LOSS_POLICY_ACCESS_MODES[this.accessMode] ?? this.accessMode.toString(),
76
+ tokens: this.tokens.map((t) => this.labelAddress(t)),
77
+ priceFeedParams: this.priceFeedParams.map((p) => ({
78
+ priceFeed: this.labelAddress(p.priceFeed),
79
+ stalenessPeriod: formatDuration(p.stalenessPeriod, raw),
80
+ skipCheck: p.skipCheck,
81
+ tokenDecimals: p.tokenDecimals
82
+ }))
83
+ };
84
+ }
43
85
  }
44
86
  export {
45
87
  AliasLossPolicyV310Contract
@@ -0,0 +1,12 @@
1
+ const LOSS_POLICY_ALIASED = "LOSS_POLICY::ALIASED";
2
+ const LOSS_POLICY_DEFAULT = "LOSS_POLICY::DEFAULT";
3
+ const LOSS_POLICY_ACCESS_MODES = [
4
+ "Permissionless",
5
+ "Permissioned",
6
+ "Forbidden"
7
+ ];
8
+ export {
9
+ LOSS_POLICY_ACCESS_MODES,
10
+ LOSS_POLICY_ALIASED,
11
+ LOSS_POLICY_DEFAULT
12
+ };
@@ -1,5 +1,6 @@
1
1
  import { bytes32ToString } from "../../index.js";
2
2
  import { AliasLossPolicyV310Contract } from "./AliasLossPolicyV310Contract.js";
3
+ import { LOSS_POLICY_ALIASED, LOSS_POLICY_DEFAULT } from "./constants.js";
3
4
  import { LossPolicyContract } from "./LossPolicyContract.js";
4
5
  function createLossPolicy(sdk, { baseParams }) {
5
6
  const existing = sdk.contracts.get(baseParams.addr);
@@ -8,9 +9,9 @@ function createLossPolicy(sdk, { baseParams }) {
8
9
  }
9
10
  const contractType = bytes32ToString(baseParams.contractType);
10
11
  switch (contractType) {
11
- case "LOSS_POLICY::ALIASED":
12
+ case LOSS_POLICY_ALIASED:
12
13
  return new AliasLossPolicyV310Contract(sdk, baseParams);
13
- case "LOSS_POLICY::DEFAULT":
14
+ case LOSS_POLICY_DEFAULT:
14
15
  return new LossPolicyContract(sdk, baseParams);
15
16
  default:
16
17
  if (sdk.strictContractTypes) {
@@ -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
  }];
@@ -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;