@gearbox-protocol/sdk 3.0.5 → 3.1.1
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/dev/migrateFaucet.js +36 -22
- package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +11 -0
- package/dist/esm/dev/migrateFaucet.js +34 -21
- package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +11 -0
- package/dist/types/dev/migrateFaucet.d.ts +6 -3
- package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +7 -0
- package/dist/types/sdk/market/oracle/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -18,7 +18,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var migrateFaucet_exports = {};
|
|
20
20
|
__export(migrateFaucet_exports, {
|
|
21
|
-
migrateFaucet: () => migrateFaucet
|
|
21
|
+
migrateFaucet: () => migrateFaucet,
|
|
22
|
+
unsafeMigrateFaucet: () => unsafeMigrateFaucet
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(migrateFaucet_exports);
|
|
24
25
|
var import_viem = require("viem");
|
|
@@ -26,28 +27,40 @@ var import_v300 = require("../abi/v300.js");
|
|
|
26
27
|
var import_v310 = require("../abi/v310.js");
|
|
27
28
|
var import_sdk = require("../sdk/index.js");
|
|
28
29
|
var import_createAnvilClient = require("./createAnvilClient.js");
|
|
29
|
-
async function unsafeMigrateFaucet(sdk) {
|
|
30
|
+
async function unsafeMigrateFaucet(sdk, faucet) {
|
|
30
31
|
const anvil = (0, import_createAnvilClient.createAnvilClient)({
|
|
31
32
|
chain: sdk.provider.chain,
|
|
32
33
|
transport: sdk.provider.transport
|
|
33
34
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
35
|
+
let faucetAddr;
|
|
36
|
+
let owner;
|
|
37
|
+
if (faucet) {
|
|
38
|
+
faucetAddr = faucet;
|
|
39
|
+
owner = await anvil.readContract({
|
|
40
|
+
abi: import_v310.iAddressProviderV310Abi,
|
|
41
|
+
address: sdk.addressProvider.address,
|
|
42
|
+
functionName: "owner",
|
|
43
|
+
args: []
|
|
44
|
+
});
|
|
45
|
+
} else {
|
|
46
|
+
[faucetAddr, owner] = await anvil.multicall({
|
|
47
|
+
contracts: [
|
|
48
|
+
{
|
|
49
|
+
abi: import_v300.iAddressProviderV300Abi,
|
|
50
|
+
address: import_sdk.ADDRESS_PROVIDER[sdk.provider.networkType],
|
|
51
|
+
functionName: "getAddressOrRevert",
|
|
52
|
+
args: [(0, import_viem.stringToHex)("FAUCET", { size: 32 }), 0n]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
abi: import_v310.iAddressProviderV310Abi,
|
|
56
|
+
address: sdk.addressProvider.address,
|
|
57
|
+
functionName: "owner",
|
|
58
|
+
args: []
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
allowFailure: false
|
|
62
|
+
});
|
|
63
|
+
}
|
|
51
64
|
sdk.logger?.debug(`faucet address: ${faucetAddr}, owner: ${owner}`);
|
|
52
65
|
await anvil.impersonateAccount({ address: owner });
|
|
53
66
|
await anvil.setBalance({
|
|
@@ -80,9 +93,9 @@ async function unsafeMigrateFaucet(sdk) {
|
|
|
80
93
|
throw new Error("faucet migration reverted");
|
|
81
94
|
}
|
|
82
95
|
}
|
|
83
|
-
async function migrateFaucet(sdk) {
|
|
96
|
+
async function migrateFaucet(sdk, faucet) {
|
|
84
97
|
try {
|
|
85
|
-
await unsafeMigrateFaucet(sdk);
|
|
98
|
+
await unsafeMigrateFaucet(sdk, faucet);
|
|
86
99
|
sdk.logger?.info("faucet migrated successfully");
|
|
87
100
|
} catch (e) {
|
|
88
101
|
sdk.logger?.error(`faucet migration failed: ${e}`);
|
|
@@ -90,5 +103,6 @@ async function migrateFaucet(sdk) {
|
|
|
90
103
|
}
|
|
91
104
|
// Annotate the CommonJS export names for ESM import in node:
|
|
92
105
|
0 && (module.exports = {
|
|
93
|
-
migrateFaucet
|
|
106
|
+
migrateFaucet,
|
|
107
|
+
unsafeMigrateFaucet
|
|
94
108
|
});
|
|
@@ -211,6 +211,17 @@ class PriceOracleBaseContract extends import_base.BaseContract {
|
|
|
211
211
|
const scale = 10n ** BigInt(this.sdk.tokensMeta.decimals(from));
|
|
212
212
|
return amount * price / scale;
|
|
213
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Tries to convert amount of USD to token, using latest known prices
|
|
216
|
+
* @param to
|
|
217
|
+
* @param amount
|
|
218
|
+
* @param reserve
|
|
219
|
+
*/
|
|
220
|
+
convertFromUSD(to, amount, reserve = false) {
|
|
221
|
+
const price = reserve ? this.reservePrice(to) : this.mainPrice(to);
|
|
222
|
+
const scale = 10n ** BigInt(this.sdk.tokensMeta.decimals(to));
|
|
223
|
+
return amount * scale / price;
|
|
224
|
+
}
|
|
214
225
|
/**
|
|
215
226
|
* Loads new prices for this oracle from PriceFeedCompressor
|
|
216
227
|
* Does not update price feeds, only updates prices
|
|
@@ -3,28 +3,40 @@ import { iAddressProviderV300Abi } from "../abi/v300.js";
|
|
|
3
3
|
import { iAddressProviderV310Abi } from "../abi/v310.js";
|
|
4
4
|
import { ADDRESS_PROVIDER } from "../sdk/index.js";
|
|
5
5
|
import { createAnvilClient } from "./createAnvilClient.js";
|
|
6
|
-
async function unsafeMigrateFaucet(sdk) {
|
|
6
|
+
async function unsafeMigrateFaucet(sdk, faucet) {
|
|
7
7
|
const anvil = createAnvilClient({
|
|
8
8
|
chain: sdk.provider.chain,
|
|
9
9
|
transport: sdk.provider.transport
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
11
|
+
let faucetAddr;
|
|
12
|
+
let owner;
|
|
13
|
+
if (faucet) {
|
|
14
|
+
faucetAddr = faucet;
|
|
15
|
+
owner = await anvil.readContract({
|
|
16
|
+
abi: iAddressProviderV310Abi,
|
|
17
|
+
address: sdk.addressProvider.address,
|
|
18
|
+
functionName: "owner",
|
|
19
|
+
args: []
|
|
20
|
+
});
|
|
21
|
+
} else {
|
|
22
|
+
[faucetAddr, owner] = await anvil.multicall({
|
|
23
|
+
contracts: [
|
|
24
|
+
{
|
|
25
|
+
abi: iAddressProviderV300Abi,
|
|
26
|
+
address: ADDRESS_PROVIDER[sdk.provider.networkType],
|
|
27
|
+
functionName: "getAddressOrRevert",
|
|
28
|
+
args: [stringToHex("FAUCET", { size: 32 }), 0n]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
abi: iAddressProviderV310Abi,
|
|
32
|
+
address: sdk.addressProvider.address,
|
|
33
|
+
functionName: "owner",
|
|
34
|
+
args: []
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
allowFailure: false
|
|
38
|
+
});
|
|
39
|
+
}
|
|
28
40
|
sdk.logger?.debug(`faucet address: ${faucetAddr}, owner: ${owner}`);
|
|
29
41
|
await anvil.impersonateAccount({ address: owner });
|
|
30
42
|
await anvil.setBalance({
|
|
@@ -57,14 +69,15 @@ async function unsafeMigrateFaucet(sdk) {
|
|
|
57
69
|
throw new Error("faucet migration reverted");
|
|
58
70
|
}
|
|
59
71
|
}
|
|
60
|
-
async function migrateFaucet(sdk) {
|
|
72
|
+
async function migrateFaucet(sdk, faucet) {
|
|
61
73
|
try {
|
|
62
|
-
await unsafeMigrateFaucet(sdk);
|
|
74
|
+
await unsafeMigrateFaucet(sdk, faucet);
|
|
63
75
|
sdk.logger?.info("faucet migrated successfully");
|
|
64
76
|
} catch (e) {
|
|
65
77
|
sdk.logger?.error(`faucet migration failed: ${e}`);
|
|
66
78
|
}
|
|
67
79
|
}
|
|
68
80
|
export {
|
|
69
|
-
migrateFaucet
|
|
81
|
+
migrateFaucet,
|
|
82
|
+
unsafeMigrateFaucet
|
|
70
83
|
};
|
|
@@ -178,6 +178,17 @@ class PriceOracleBaseContract extends BaseContract {
|
|
|
178
178
|
const scale = 10n ** BigInt(this.sdk.tokensMeta.decimals(from));
|
|
179
179
|
return amount * price / scale;
|
|
180
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Tries to convert amount of USD to token, using latest known prices
|
|
183
|
+
* @param to
|
|
184
|
+
* @param amount
|
|
185
|
+
* @param reserve
|
|
186
|
+
*/
|
|
187
|
+
convertFromUSD(to, amount, reserve = false) {
|
|
188
|
+
const price = reserve ? this.reservePrice(to) : this.mainPrice(to);
|
|
189
|
+
const scale = 10n ** BigInt(this.sdk.tokensMeta.decimals(to));
|
|
190
|
+
return amount * scale / price;
|
|
191
|
+
}
|
|
181
192
|
/**
|
|
182
193
|
* Loads new prices for this oracle from PriceFeedCompressor
|
|
183
194
|
* Does not update price feeds, only updates prices
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import type { Address } from "viem";
|
|
1
2
|
import type { GearboxSDK } from "../sdk/index.js";
|
|
3
|
+
export declare function unsafeMigrateFaucet(sdk: GearboxSDK, faucet?: Address): Promise<void>;
|
|
2
4
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @param
|
|
5
|
+
* Sets new faucet address on v3.1 address provider
|
|
6
|
+
* @param sdk
|
|
7
|
+
* @param faucet - new faucet address. If not provided, will try to get one from v3.0 address provider
|
|
5
8
|
*/
|
|
6
|
-
export declare function migrateFaucet(sdk: GearboxSDK): Promise<void>;
|
|
9
|
+
export declare function migrateFaucet(sdk: GearboxSDK, faucet?: Address): Promise<void>;
|
|
@@ -95,6 +95,13 @@ export declare class PriceOracleBaseContract<abi extends Abi | readonly unknown[
|
|
|
95
95
|
* @param reserve
|
|
96
96
|
*/
|
|
97
97
|
convertToUSD(from: Address, amount: bigint, reserve?: boolean): bigint;
|
|
98
|
+
/**
|
|
99
|
+
* Tries to convert amount of USD to token, using latest known prices
|
|
100
|
+
* @param to
|
|
101
|
+
* @param amount
|
|
102
|
+
* @param reserve
|
|
103
|
+
*/
|
|
104
|
+
convertFromUSD(to: Address, amount: bigint, reserve?: boolean): bigint;
|
|
98
105
|
/**
|
|
99
106
|
* Loads new prices for this oracle from PriceFeedCompressor
|
|
100
107
|
* Does not update price feeds, only updates prices
|
|
@@ -24,4 +24,6 @@ export interface IPriceOracleContract extends IBaseContract {
|
|
|
24
24
|
onDemandPriceUpdates: (updates?: UpdatePriceFeedsResult) => OnDemandPriceUpdate[];
|
|
25
25
|
convertToUnderlying: (token: Address, amount: bigint, reserve?: boolean) => bigint;
|
|
26
26
|
convert: (from: Address, to: Address, amount: bigint, reserve?: boolean) => bigint;
|
|
27
|
+
convertToUSD: (from: Address, amount: bigint, reserve?: boolean) => bigint;
|
|
28
|
+
convertFromUSD: (to: Address, amount: bigint, reserve?: boolean) => bigint;
|
|
27
29
|
}
|