@gearbox-protocol/sdk 12.4.0-next.1 → 12.4.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.
- package/dist/cjs/abi/errors.js +10 -1
- package/dist/cjs/dev/AccountOpener.js +2 -1
- package/dist/cjs/dev/RevolverTransport.js +4 -6
- package/dist/cjs/dev/ltUtils.js +2 -1
- package/dist/cjs/dev/migrateFaucet.js +2 -1
- package/dist/cjs/dev/providers.js +6 -2
- package/dist/cjs/dev/transports.js +3 -3
- package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +7 -4
- package/dist/cjs/permissionless/bindings/governance/governor.js +3 -4
- package/dist/cjs/permissionless/bindings/market-configurator.js +4 -2
- package/dist/cjs/permissionless/bindings/price-feed-store.js +2 -1
- package/dist/cjs/permissionless/bindings/treasury-splitter.js +12 -1
- package/dist/cjs/permissionless/utils/format.js +0 -8
- package/dist/cjs/plugins/accounts-counter/AccountsCounterPlugin.js +2 -1
- package/dist/cjs/plugins/bots/BotsPlugin.js +4 -2
- package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +13 -7
- package/dist/cjs/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +2 -1
- package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +2 -1
- package/dist/cjs/plugins/zappers/ZappersPlugin.js +2 -1
- package/dist/cjs/sdk/GearboxSDK.js +9 -5
- package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +71 -38
- package/dist/cjs/sdk/base/TokensMeta.js +2 -1
- package/dist/cjs/sdk/core/address-provider/createAddressProvider.js +11 -5
- package/dist/cjs/sdk/gauges/GaugeStakingService.js +2 -1
- package/dist/cjs/sdk/index.js +2 -0
- package/dist/cjs/sdk/market/MarketConfiguratorContract.js +15 -0
- package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +1 -1
- package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +1 -1
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +6 -0
- package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
- package/dist/cjs/sdk/pools/PoolServiceV300.js +30 -0
- package/dist/cjs/sdk/pools/PoolServiceV310.js +30 -0
- package/dist/cjs/sdk/pools/createPoolService.js +39 -0
- package/dist/cjs/sdk/pools/index.js +26 -0
- package/dist/cjs/sdk/pools/types.js +16 -0
- package/dist/cjs/sdk/sdk-legacy/core/endpoint.js +3 -9
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/api.js +2 -1
- package/dist/cjs/sdk/utils/formatter.js +8 -0
- package/dist/esm/abi/errors.js +9 -1
- package/dist/esm/dev/AccountOpener.js +2 -1
- package/dist/esm/dev/RevolverTransport.js +5 -7
- package/dist/esm/dev/ltUtils.js +2 -1
- package/dist/esm/dev/migrateFaucet.js +2 -1
- package/dist/esm/dev/providers.js +4 -1
- package/dist/esm/dev/transports.js +2 -2
- package/dist/esm/permissionless/bindings/compressors/token-compressor.js +7 -4
- package/dist/esm/permissionless/bindings/governance/governor.js +5 -2
- package/dist/esm/permissionless/bindings/market-configurator.js +4 -2
- package/dist/esm/permissionless/bindings/price-feed-store.js +2 -1
- package/dist/esm/permissionless/bindings/treasury-splitter.js +13 -2
- package/dist/esm/permissionless/utils/format.js +0 -7
- package/dist/esm/plugins/accounts-counter/AccountsCounterPlugin.js +2 -1
- package/dist/esm/plugins/bots/BotsPlugin.js +4 -2
- package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +13 -7
- package/dist/esm/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +2 -1
- package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +2 -1
- package/dist/esm/plugins/zappers/ZappersPlugin.js +2 -1
- package/dist/esm/sdk/GearboxSDK.js +9 -5
- package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +71 -38
- package/dist/esm/sdk/base/TokensMeta.js +2 -1
- package/dist/esm/sdk/core/address-provider/createAddressProvider.js +16 -6
- package/dist/esm/sdk/gauges/GaugeStakingService.js +2 -1
- package/dist/esm/sdk/index.js +1 -0
- package/dist/esm/sdk/market/MarketConfiguratorContract.js +15 -0
- package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +6 -2
- package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +6 -2
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +6 -0
- package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
- package/dist/esm/sdk/pools/PoolServiceV300.js +6 -0
- package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
- package/dist/esm/sdk/pools/createPoolService.js +15 -0
- package/dist/esm/sdk/pools/index.js +3 -0
- package/dist/esm/sdk/pools/types.js +0 -0
- package/dist/esm/sdk/sdk-legacy/core/endpoint.js +3 -9
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/api.js +2 -1
- package/dist/esm/sdk/utils/formatter.js +7 -0
- package/dist/types/abi/errors.d.ts +33 -0
- package/dist/types/dev/RevolverTransport.d.ts +2 -20
- package/dist/types/dev/providers.d.ts +8 -1
- package/dist/types/dev/transports.d.ts +1 -1
- package/dist/types/permissionless/utils/format.d.ts +0 -1
- package/dist/types/sdk/GearboxSDK.d.ts +1 -1
- package/dist/types/sdk/index.d.ts +1 -0
- package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +9 -0
- package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
- package/dist/types/sdk/pools/PoolServiceV300.d.ts +4 -0
- package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
- package/dist/types/sdk/pools/createPoolService.d.ts +8 -0
- package/dist/types/sdk/pools/index.d.ts +3 -0
- package/dist/types/sdk/pools/types.d.ts +92 -0
- package/dist/types/sdk/sdk-legacy/core/endpoint.d.ts +1 -3
- package/dist/types/sdk/types/state-human.d.ts +1 -1
- package/dist/types/sdk/utils/formatter.d.ts +1 -0
- package/package.json +6 -6
|
@@ -47,6 +47,21 @@ class MarketConfiguratorContract extends import_base.BaseContract {
|
|
|
47
47
|
`Market configurator ${this.#curatorName}`
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
|
+
static async getPeripheryContractBatch(configurators, client, contract) {
|
|
51
|
+
const resp = await client.multicall({
|
|
52
|
+
allowFailure: true,
|
|
53
|
+
contracts: configurators.map(
|
|
54
|
+
(cfg) => ({
|
|
55
|
+
address: cfg.address,
|
|
56
|
+
abi: cfg.abi,
|
|
57
|
+
functionName: "getPeripheryContracts",
|
|
58
|
+
args: [(0, import_viem.stringToHex)(contract, { size: 32 })]
|
|
59
|
+
})
|
|
60
|
+
),
|
|
61
|
+
batchSize: 0
|
|
62
|
+
});
|
|
63
|
+
return resp;
|
|
64
|
+
}
|
|
50
65
|
async getPeripheryContract(contract) {
|
|
51
66
|
const resp = await this.client.readContract({
|
|
52
67
|
address: this.address,
|
|
@@ -50,7 +50,7 @@ class CreditFacadeV300Contract extends import_base.BaseContract {
|
|
|
50
50
|
expirable: this.expirable,
|
|
51
51
|
isDegenMode: this.degenNFT !== import_constants.ADDRESS_0X0,
|
|
52
52
|
degenNFT: this.labelAddress(this.degenNFT),
|
|
53
|
-
expirationDate: this.expirationDate,
|
|
53
|
+
expirationDate: (0, import_utils.formatTimestamp)(this.expirationDate),
|
|
54
54
|
maxDebtPerBlockMultiplier: this.maxDebtPerBlockMultiplier,
|
|
55
55
|
botList: this.labelAddress(this.botList),
|
|
56
56
|
minDebt: (0, import_utils.formatBNvalue)(this.minDebt, decimals),
|
|
@@ -50,7 +50,7 @@ class CreditFacadeV310Contract extends import_base.BaseContract {
|
|
|
50
50
|
expirable: this.expirable,
|
|
51
51
|
isDegenMode: this.degenNFT !== import_constants.ADDRESS_0X0,
|
|
52
52
|
degenNFT: this.labelAddress(this.degenNFT),
|
|
53
|
-
expirationDate: this.expirationDate,
|
|
53
|
+
expirationDate: (0, import_utils.formatTimestamp)(this.expirationDate),
|
|
54
54
|
maxDebtPerBlockMultiplier: this.maxDebtPerBlockMultiplier,
|
|
55
55
|
botList: this.labelAddress(this.botList),
|
|
56
56
|
minDebt: (0, import_utils.formatBNvalue)(this.minDebt, decimals),
|
|
@@ -142,6 +142,9 @@ class PriceOracleBaseContract extends import_base.BaseContract {
|
|
|
142
142
|
* @param reserve use reserve price feed instead of main
|
|
143
143
|
*/
|
|
144
144
|
convertToUSD(from, amount, reserve = false) {
|
|
145
|
+
if (amount === 0n) {
|
|
146
|
+
return 0n;
|
|
147
|
+
}
|
|
145
148
|
const price = reserve ? this.reservePrice(from) : this.mainPrice(from);
|
|
146
149
|
const scale = 10n ** BigInt(this.tokensMeta.decimals(from));
|
|
147
150
|
return amount * price / scale;
|
|
@@ -153,6 +156,9 @@ class PriceOracleBaseContract extends import_base.BaseContract {
|
|
|
153
156
|
* @param reserve use reserve price feed instead of main
|
|
154
157
|
*/
|
|
155
158
|
convertFromUSD(to, amount, reserve = false) {
|
|
159
|
+
if (amount === 0n) {
|
|
160
|
+
return 0n;
|
|
161
|
+
}
|
|
156
162
|
const price = reserve ? this.reservePrice(to) : this.mainPrice(to);
|
|
157
163
|
const scale = 10n ** BigInt(this.tokensMeta.decimals(to));
|
|
158
164
|
return amount * scale / price;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var AbstractPoolService_exports = {};
|
|
20
|
+
__export(AbstractPoolService_exports, {
|
|
21
|
+
AbstractPoolService: () => AbstractPoolService
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(AbstractPoolService_exports);
|
|
24
|
+
var import_iERC20ZapperDeposits = require("../../abi/iERC20ZapperDeposits.js");
|
|
25
|
+
var import_iETHZapperDeposits = require("../../abi/iETHZapperDeposits.js");
|
|
26
|
+
var import_iZapper = require("../../abi/iZapper.js");
|
|
27
|
+
var import_v300 = require("../../abi/v300.js");
|
|
28
|
+
var import_base = require("../base/index.js");
|
|
29
|
+
class AbstractPoolService extends import_base.SDKConstruct {
|
|
30
|
+
#version;
|
|
31
|
+
constructor(sdk, version) {
|
|
32
|
+
super(sdk);
|
|
33
|
+
this.#version = version;
|
|
34
|
+
this.logger?.debug(`Created PoolService with version: ${this.#version}`);
|
|
35
|
+
}
|
|
36
|
+
addLiquidity({
|
|
37
|
+
collateral,
|
|
38
|
+
pool,
|
|
39
|
+
account,
|
|
40
|
+
zapper,
|
|
41
|
+
permit,
|
|
42
|
+
nativeTokenAddress,
|
|
43
|
+
referralCode = 0n,
|
|
44
|
+
migrate
|
|
45
|
+
}) {
|
|
46
|
+
if (zapper?.tokenIn === nativeTokenAddress) {
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
target: zapper.zapper,
|
|
50
|
+
abi: import_iETHZapperDeposits.iethZapperDepositsAbi,
|
|
51
|
+
functionName: "depositWithReferral",
|
|
52
|
+
args: [account, referralCode],
|
|
53
|
+
value: collateral.balance
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
} else if (zapper) {
|
|
57
|
+
return permit ? [
|
|
58
|
+
{
|
|
59
|
+
target: zapper.zapper,
|
|
60
|
+
abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
|
|
61
|
+
functionName: "depositWithReferralAndPermit",
|
|
62
|
+
args: [
|
|
63
|
+
collateral.balance,
|
|
64
|
+
account,
|
|
65
|
+
referralCode,
|
|
66
|
+
permit.deadline,
|
|
67
|
+
permit.v,
|
|
68
|
+
permit.r,
|
|
69
|
+
permit.s
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
] : [
|
|
73
|
+
{
|
|
74
|
+
target: zapper.zapper,
|
|
75
|
+
abi: import_iERC20ZapperDeposits.ierc20ZapperDepositsAbi,
|
|
76
|
+
functionName: "depositWithReferral",
|
|
77
|
+
args: [collateral.balance, account, referralCode]
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
} else {
|
|
81
|
+
if (migrate) throw Error("No zapper for migration");
|
|
82
|
+
return [
|
|
83
|
+
{
|
|
84
|
+
target: pool,
|
|
85
|
+
abi: import_v300.iPoolV300Abi,
|
|
86
|
+
functionName: "depositWithReferral",
|
|
87
|
+
args: [collateral.balance, account, referralCode]
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
removeLiquidity({
|
|
93
|
+
pool,
|
|
94
|
+
amount,
|
|
95
|
+
account,
|
|
96
|
+
zapper,
|
|
97
|
+
permit
|
|
98
|
+
}) {
|
|
99
|
+
if (zapper) {
|
|
100
|
+
return permit ? [
|
|
101
|
+
{
|
|
102
|
+
target: zapper.zapper,
|
|
103
|
+
abi: import_iZapper.iZapperAbi,
|
|
104
|
+
functionName: "redeemWithPermit",
|
|
105
|
+
args: [
|
|
106
|
+
amount,
|
|
107
|
+
account,
|
|
108
|
+
permit.deadline,
|
|
109
|
+
permit.v,
|
|
110
|
+
permit.r,
|
|
111
|
+
permit.s
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
] : [
|
|
115
|
+
{
|
|
116
|
+
target: zapper.zapper,
|
|
117
|
+
abi: import_iZapper.iZapperAbi,
|
|
118
|
+
functionName: "redeem",
|
|
119
|
+
args: [amount, account]
|
|
120
|
+
}
|
|
121
|
+
];
|
|
122
|
+
} else {
|
|
123
|
+
return [
|
|
124
|
+
{
|
|
125
|
+
target: pool,
|
|
126
|
+
abi: import_v300.iPoolV300Abi,
|
|
127
|
+
functionName: "redeem",
|
|
128
|
+
args: [amount, account, account]
|
|
129
|
+
}
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
AbstractPoolService
|
|
137
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var PoolServiceV300_exports = {};
|
|
20
|
+
__export(PoolServiceV300_exports, {
|
|
21
|
+
PoolServiceV300: () => PoolServiceV300
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(PoolServiceV300_exports);
|
|
24
|
+
var import_AbstractPoolService = require("./AbstractPoolService.js");
|
|
25
|
+
class PoolServiceV300 extends import_AbstractPoolService.AbstractPoolService {
|
|
26
|
+
}
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
PoolServiceV300
|
|
30
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var PoolServiceV310_exports = {};
|
|
20
|
+
__export(PoolServiceV310_exports, {
|
|
21
|
+
PoolServiceV310: () => PoolServiceV310
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(PoolServiceV310_exports);
|
|
24
|
+
var import_AbstractPoolService = require("./AbstractPoolService.js");
|
|
25
|
+
class PoolServiceV310 extends import_AbstractPoolService.AbstractPoolService {
|
|
26
|
+
}
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
PoolServiceV310
|
|
30
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var createPoolService_exports = {};
|
|
20
|
+
__export(createPoolService_exports, {
|
|
21
|
+
createPoolService: () => createPoolService
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(createPoolService_exports);
|
|
24
|
+
var import_constants = require("../constants/index.js");
|
|
25
|
+
var import_PoolServiceV300 = require("./PoolServiceV300.js");
|
|
26
|
+
var import_PoolServiceV310 = require("./PoolServiceV310.js");
|
|
27
|
+
function createPoolService(sdk, version) {
|
|
28
|
+
if ((0, import_constants.isV300)(version)) {
|
|
29
|
+
return new import_PoolServiceV300.PoolServiceV300(sdk, version);
|
|
30
|
+
}
|
|
31
|
+
if ((0, import_constants.isV310)(version)) {
|
|
32
|
+
return new import_PoolServiceV310.PoolServiceV310(sdk, version);
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Unsupported Pool Service version ${version}`);
|
|
35
|
+
}
|
|
36
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
37
|
+
0 && (module.exports = {
|
|
38
|
+
createPoolService
|
|
39
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var pools_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(pools_exports);
|
|
18
|
+
__reExport(pools_exports, require("./AbstractPoolService.js"), module.exports);
|
|
19
|
+
__reExport(pools_exports, require("./createPoolService.js"), module.exports);
|
|
20
|
+
__reExport(pools_exports, require("./types.js"), module.exports);
|
|
21
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
22
|
+
0 && (module.exports = {
|
|
23
|
+
...require("./AbstractPoolService.js"),
|
|
24
|
+
...require("./createPoolService.js"),
|
|
25
|
+
...require("./types.js")
|
|
26
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -114,15 +114,9 @@ class GearboxBackendApi {
|
|
|
114
114
|
return `${LEADERBOARD_APIS[chainId]}${url}`;
|
|
115
115
|
};
|
|
116
116
|
static getReferralUrl = () => REFERRAL_API;
|
|
117
|
-
static
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
static apyServerGearAPY = (chainId) => URLApi.getRelativeUrl("https://apy-server.fly.dev/api/rewards/gear-apy", {
|
|
121
|
-
params: { chain_id: chainId }
|
|
122
|
-
});
|
|
123
|
-
static apyServerAllPoolRewards = (chainId) => URLApi.getRelativeUrl("https://apy-server.fly.dev/api/rewards/pools/all", {
|
|
124
|
-
params: { chain_id: chainId }
|
|
125
|
-
});
|
|
117
|
+
static apyAllRewards = () => URLApi.getRelativeUrl(
|
|
118
|
+
"https://state-cache.gearbox.foundation/apy-server/latest.json"
|
|
119
|
+
);
|
|
126
120
|
}
|
|
127
121
|
class URLApi {
|
|
128
122
|
static getRelativeUrl = (url, options) => {
|
|
@@ -128,7 +128,8 @@ class GearboxRewardsApi {
|
|
|
128
128
|
const [response] = await Promise.allSettled([
|
|
129
129
|
provider.multicall({
|
|
130
130
|
allowFailure: false,
|
|
131
|
-
contracts: [...farmInfoCalls, ...rewardTokenCalls, ...farmedCalls]
|
|
131
|
+
contracts: [...farmInfoCalls, ...rewardTokenCalls, ...farmedCalls],
|
|
132
|
+
batchSize: 0
|
|
132
133
|
})
|
|
133
134
|
]);
|
|
134
135
|
const safeResponse = GearboxRewardsApi.extractFulfilled(response, reportError, "v3Rewards") || [];
|
|
@@ -23,6 +23,7 @@ __export(formatter_exports, {
|
|
|
23
23
|
formatBNvalue: () => formatBNvalue,
|
|
24
24
|
formatDuration: () => formatDuration,
|
|
25
25
|
formatNumberToString_: () => formatNumberToString_,
|
|
26
|
+
formatTimestamp: () => formatTimestamp,
|
|
26
27
|
numberWithCommas: () => numberWithCommas,
|
|
27
28
|
percentFmt: () => percentFmt,
|
|
28
29
|
toBigInt: () => toBigInt
|
|
@@ -121,6 +122,12 @@ function formatDuration(seconds, raw = true) {
|
|
|
121
122
|
function formatNumberToString_(value) {
|
|
122
123
|
return value.toLocaleString("en-US", { minimumIntegerDigits: 1, useGrouping: true }).replaceAll(",", "_");
|
|
123
124
|
}
|
|
125
|
+
function formatTimestamp(timestamp) {
|
|
126
|
+
return new Date(timestamp * 1e3).toLocaleString("en-GB", {
|
|
127
|
+
dateStyle: "short",
|
|
128
|
+
timeStyle: "short"
|
|
129
|
+
});
|
|
130
|
+
}
|
|
124
131
|
// Annotate the CommonJS export names for ESM import in node:
|
|
125
132
|
0 && (module.exports = {
|
|
126
133
|
fmtBinaryMask,
|
|
@@ -128,6 +135,7 @@ function formatNumberToString_(value) {
|
|
|
128
135
|
formatBNvalue,
|
|
129
136
|
formatDuration,
|
|
130
137
|
formatNumberToString_,
|
|
138
|
+
formatTimestamp,
|
|
131
139
|
numberWithCommas,
|
|
132
140
|
percentFmt,
|
|
133
141
|
toBigInt
|
package/dist/esm/abi/errors.js
CHANGED
|
@@ -369,6 +369,12 @@ const iExceptionsV310Abi = [
|
|
|
369
369
|
{ type: "error", name: "VotingContractNotAllowedException", inputs: [] },
|
|
370
370
|
{ type: "error", name: "ZeroAddressException", inputs: [] }
|
|
371
371
|
];
|
|
372
|
+
const iPartialLiquidationBotV310ErrorsAbi = [
|
|
373
|
+
{ type: "error", name: "LiquidatedLessThanNeededException", inputs: [] },
|
|
374
|
+
{ type: "error", name: "LiquidatedMoreThanNeededException", inputs: [] },
|
|
375
|
+
{ type: "error", name: "SeizedLessThanRequiredException", inputs: [] },
|
|
376
|
+
{ type: "error", name: "UnderlyingNotLiquidatableException", inputs: [] }
|
|
377
|
+
];
|
|
372
378
|
const errorAbis = [
|
|
373
379
|
...iExceptionsV300Abi,
|
|
374
380
|
...iExceptionsV310Abi,
|
|
@@ -376,12 +382,14 @@ const errorAbis = [
|
|
|
376
382
|
...iRedstoneErrorsAbi,
|
|
377
383
|
...ilpPriceFeedExceptionsAbi,
|
|
378
384
|
...iRouterErrorsV300Abi,
|
|
379
|
-
...iRouterErrorsV310Abi
|
|
385
|
+
...iRouterErrorsV310Abi,
|
|
386
|
+
...iPartialLiquidationBotV310ErrorsAbi
|
|
380
387
|
];
|
|
381
388
|
export {
|
|
382
389
|
errorAbis,
|
|
383
390
|
iExceptionsV300Abi,
|
|
384
391
|
iExceptionsV310Abi,
|
|
392
|
+
iPartialLiquidationBotV310ErrorsAbi,
|
|
385
393
|
iRedstoneErrorsAbi,
|
|
386
394
|
iRedstonePriceFeedExceptionsAbi,
|
|
387
395
|
iRouterErrorsV300Abi,
|
|
@@ -704,7 +704,8 @@ class AccountOpener extends SDKConstruct {
|
|
|
704
704
|
args: [distributor.address]
|
|
705
705
|
})
|
|
706
706
|
),
|
|
707
|
-
allowFailure: false
|
|
707
|
+
allowFailure: false,
|
|
708
|
+
batchSize: 0
|
|
708
709
|
});
|
|
709
710
|
const tokensArr = tokens.asArray();
|
|
710
711
|
for (let i = 0; i < tokensArr.length; i++) {
|
|
@@ -11,8 +11,7 @@ import {
|
|
|
11
11
|
withRetry
|
|
12
12
|
} from "viem";
|
|
13
13
|
import { z } from "zod/v4";
|
|
14
|
-
import {
|
|
15
|
-
import { httpTransportConfigSchema } from "./transports.js";
|
|
14
|
+
import { httpTransportOptionsSchema } from "./transports.js";
|
|
16
15
|
const providerConfigSchema = z.object({
|
|
17
16
|
/**
|
|
18
17
|
* Provider name for display purposes
|
|
@@ -29,11 +28,10 @@ const providerConfigSchema = z.object({
|
|
|
29
28
|
/**
|
|
30
29
|
* HTTP transport options to use for this provider
|
|
31
30
|
*/
|
|
32
|
-
|
|
31
|
+
httpTransportOptions: httpTransportOptionsSchema.optional()
|
|
33
32
|
});
|
|
34
33
|
const SelectionStrategy = z.enum(["simple", "ordered"]);
|
|
35
34
|
const revolverTransportConfigSchema = z.object({
|
|
36
|
-
network: NetworkType,
|
|
37
35
|
/**
|
|
38
36
|
* Providers to use
|
|
39
37
|
*/
|
|
@@ -50,7 +48,7 @@ const revolverTransportConfigSchema = z.object({
|
|
|
50
48
|
/**
|
|
51
49
|
* Default HTTP options to use for all providers, can be overridden by provider config
|
|
52
50
|
*/
|
|
53
|
-
defaultHTTPOptions:
|
|
51
|
+
defaultHTTPOptions: httpTransportOptionsSchema.optional(),
|
|
54
52
|
/**
|
|
55
53
|
* Default cooldown, in milliseconds, to wait before try this transport again
|
|
56
54
|
*/
|
|
@@ -91,11 +89,11 @@ class RevolverTransport {
|
|
|
91
89
|
shouldRetry: config.shouldRetry ?? defaultShouldRetry
|
|
92
90
|
};
|
|
93
91
|
const transports = config.providers.map(
|
|
94
|
-
({ url, name, cooldown,
|
|
92
|
+
({ url, name, cooldown, httpTransportOptions }) => ({
|
|
95
93
|
name,
|
|
96
94
|
transport: http(url, {
|
|
97
95
|
...config.defaultHTTPOptions,
|
|
98
|
-
...
|
|
96
|
+
...httpTransportOptions,
|
|
99
97
|
key: name,
|
|
100
98
|
name,
|
|
101
99
|
onFetchRequest: this.#config.onRequest ? (...args) => this.#config.onRequest?.(name, ...args) : void 0,
|
package/dist/esm/dev/ltUtils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
1
2
|
import { chains, getChain } from "../sdk/index.js";
|
|
2
3
|
const SUPPORTED_RPC_PROVIDERS = [
|
|
3
4
|
"alchemy",
|
|
@@ -5,6 +6,7 @@ const SUPPORTED_RPC_PROVIDERS = [
|
|
|
5
6
|
"thirdweb",
|
|
6
7
|
"ankr"
|
|
7
8
|
];
|
|
9
|
+
const rpcProvidersSchema = z.enum(SUPPORTED_RPC_PROVIDERS);
|
|
8
10
|
function getRpcProviderUrl(provider, network, apiKey, protocol = "http") {
|
|
9
11
|
switch (provider) {
|
|
10
12
|
case "alchemy":
|
|
@@ -128,5 +130,6 @@ export {
|
|
|
128
130
|
getDrpcUrl,
|
|
129
131
|
getErpcKey,
|
|
130
132
|
getRpcProviderUrl,
|
|
131
|
-
getThirdWebUrl
|
|
133
|
+
getThirdWebUrl,
|
|
134
|
+
rpcProvidersSchema
|
|
132
135
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
const
|
|
2
|
+
const httpTransportOptionsSchema = z.object({
|
|
3
3
|
/**
|
|
4
4
|
* Whether to enable Batch JSON-RPC.
|
|
5
5
|
* @link https://www.jsonrpc.org/specification#batch
|
|
@@ -43,5 +43,5 @@ const httpTransportConfigSchema = z.object({
|
|
|
43
43
|
timeout: z.number().optional()
|
|
44
44
|
});
|
|
45
45
|
export {
|
|
46
|
-
|
|
46
|
+
httpTransportOptionsSchema
|
|
47
47
|
};
|
|
@@ -25,7 +25,8 @@ class TokenCompressorContract extends BaseContract {
|
|
|
25
25
|
args: []
|
|
26
26
|
}));
|
|
27
27
|
const results = await this.client.multicall({
|
|
28
|
-
contracts
|
|
28
|
+
contracts,
|
|
29
|
+
batchSize: 0
|
|
29
30
|
});
|
|
30
31
|
const multivaultToToken = /* @__PURE__ */ new Map();
|
|
31
32
|
const multivaults = [];
|
|
@@ -44,7 +45,8 @@ class TokenCompressorContract extends BaseContract {
|
|
|
44
45
|
functionName: "symbol",
|
|
45
46
|
args: []
|
|
46
47
|
})),
|
|
47
|
-
allowFailure: true
|
|
48
|
+
allowFailure: true,
|
|
49
|
+
batchSize: 0
|
|
48
50
|
});
|
|
49
51
|
const tokenToSymbol = /* @__PURE__ */ new Map();
|
|
50
52
|
for (let i = 0; i < resultsSymbols.length; i++) {
|
|
@@ -66,7 +68,8 @@ class TokenCompressorContract extends BaseContract {
|
|
|
66
68
|
abi,
|
|
67
69
|
functionName: "getTokenInfo",
|
|
68
70
|
args: [token]
|
|
69
|
-
}))
|
|
71
|
+
})),
|
|
72
|
+
batchSize: 0
|
|
70
73
|
});
|
|
71
74
|
const tokenInfos = results.map((result, index) => {
|
|
72
75
|
if (result.status === "failure") {
|
|
@@ -78,7 +81,7 @@ class TokenCompressorContract extends BaseContract {
|
|
|
78
81
|
const postfix = multivaultSymbol ? `[${multivaultSymbol}]` : "";
|
|
79
82
|
return {
|
|
80
83
|
...tokenInfo,
|
|
81
|
-
symbol: `${tokenInfo.symbol} ${postfix}`
|
|
84
|
+
symbol: !postfix ? tokenInfo.symbol : `${tokenInfo.symbol} ${postfix}`
|
|
82
85
|
};
|
|
83
86
|
});
|
|
84
87
|
return tokenInfos;
|
|
@@ -6,8 +6,11 @@ import {
|
|
|
6
6
|
} from "viem";
|
|
7
7
|
import { formatAbiItem } from "viem/utils";
|
|
8
8
|
import { governorAbi } from "../../../abi/governance/governor.js";
|
|
9
|
-
import {
|
|
10
|
-
|
|
9
|
+
import {
|
|
10
|
+
BaseContract,
|
|
11
|
+
formatTimestamp,
|
|
12
|
+
json_stringify
|
|
13
|
+
} from "../../../sdk/index.js";
|
|
11
14
|
import { MarketConfiguratorContract } from "../market-configurator.js";
|
|
12
15
|
import { TreasurySplitterContract } from "../treasury-splitter.js";
|
|
13
16
|
import { BatchesChainContract } from "./batches-chain.js";
|
|
@@ -413,7 +413,8 @@ class MarketConfiguratorContract extends BaseContract {
|
|
|
413
413
|
functionName: "getRoleHolders",
|
|
414
414
|
args: [stringToHex("EMERGENCY_LIQUIDATOR", { size: 32 })]
|
|
415
415
|
}
|
|
416
|
-
]
|
|
416
|
+
],
|
|
417
|
+
batchSize: 0
|
|
417
418
|
});
|
|
418
419
|
return {
|
|
419
420
|
admin,
|
|
@@ -442,7 +443,8 @@ class MarketConfiguratorContract extends BaseContract {
|
|
|
442
443
|
address: admin,
|
|
443
444
|
abi: parseAbi(["function contractType() view returns (bytes32)"]),
|
|
444
445
|
functionName: "contractType"
|
|
445
|
-
}))
|
|
446
|
+
})),
|
|
447
|
+
batchSize: 0
|
|
446
448
|
});
|
|
447
449
|
const pause = result.map((r, i) => ({
|
|
448
450
|
...r,
|
|
@@ -310,7 +310,8 @@ class PriceFeedStoreContract extends BaseContract {
|
|
|
310
310
|
args: [priceFeed]
|
|
311
311
|
}));
|
|
312
312
|
const results = await this.client.multicall({
|
|
313
|
-
contracts: multicallCalls
|
|
313
|
+
contracts: multicallCalls,
|
|
314
|
+
batchSize: 0
|
|
314
315
|
});
|
|
315
316
|
return results.map((result, index) => {
|
|
316
317
|
if (result.status === "failure") {
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
decodeFunctionData
|
|
3
3
|
} from "viem";
|
|
4
4
|
import { ITreasurySplitterAbi } from "../../abi/310/iTreasurySplitter.js";
|
|
5
|
-
import { BaseContract } from "../../sdk/index.js";
|
|
5
|
+
import { BaseContract, json_stringify } from "../../sdk/index.js";
|
|
6
6
|
const abi = ITreasurySplitterAbi;
|
|
7
7
|
class TreasurySplitterContract extends BaseContract {
|
|
8
8
|
constructor(addr, client) {
|
|
@@ -78,7 +78,18 @@ class TreasurySplitterContract extends BaseContract {
|
|
|
78
78
|
});
|
|
79
79
|
return {
|
|
80
80
|
functionName: decoded.functionName,
|
|
81
|
-
...
|
|
81
|
+
...this.parseFunctionParams(decoded)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
case "setDefaultSplit": {
|
|
85
|
+
const [receivers, proportions] = args;
|
|
86
|
+
return {
|
|
87
|
+
receivers: json_stringify(receivers),
|
|
88
|
+
proportions: json_stringify(
|
|
89
|
+
proportions.map(
|
|
90
|
+
(proportion) => `${proportion / 100}% [${proportion}]`
|
|
91
|
+
)
|
|
92
|
+
)
|
|
82
93
|
};
|
|
83
94
|
}
|
|
84
95
|
default:
|