@gearbox-protocol/sdk 12.6.2 → 12.6.4
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/sdk/GearboxSDK.js +1 -0
- package/dist/cjs/sdk/base/ChainContractsRegister.js +8 -0
- package/dist/cjs/sdk/base/TokensMeta.js +4 -0
- package/dist/cjs/sdk/market/oracle/createPriceOracle.js +10 -6
- package/dist/esm/sdk/GearboxSDK.js +1 -0
- package/dist/esm/sdk/base/ChainContractsRegister.js +8 -0
- package/dist/esm/sdk/base/TokensMeta.js +4 -0
- package/dist/esm/sdk/market/oracle/createPriceOracle.js +10 -6
- package/dist/types/sdk/base/ChainContractsRegister.d.ts +1 -0
- package/dist/types/sdk/base/TokensMeta.d.ts +1 -0
- package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +2 -0
- package/package.json +1 -1
|
@@ -154,6 +154,7 @@ class GearboxSDK extends import_base.ChainContractsRegister {
|
|
|
154
154
|
this.gasLimit = options.gasLimit || 550000000n;
|
|
155
155
|
}
|
|
156
156
|
Object.assign(this, import_base.ChainContractsRegister.for(this.client, this.logger));
|
|
157
|
+
this.resetContracts();
|
|
157
158
|
}
|
|
158
159
|
async #attach(opts) {
|
|
159
160
|
const {
|
|
@@ -51,6 +51,14 @@ class ChainContractsRegister {
|
|
|
51
51
|
this.tokensMeta = new import_TokensMeta.TokensMeta(client);
|
|
52
52
|
this.logger = logger;
|
|
53
53
|
}
|
|
54
|
+
resetContracts() {
|
|
55
|
+
this.logger?.debug(
|
|
56
|
+
`resetting contacts register with ${this.contracts.size} contracts`
|
|
57
|
+
);
|
|
58
|
+
this.labels.clear();
|
|
59
|
+
this.contracts.clear();
|
|
60
|
+
this.tokensMeta.reset();
|
|
61
|
+
}
|
|
54
62
|
getContract(address) {
|
|
55
63
|
return this.contracts.get(address);
|
|
56
64
|
}
|
|
@@ -27,19 +27,23 @@ var import_PriceOracleV300Contract = require("./PriceOracleV300Contract.js");
|
|
|
27
27
|
var import_PriceOracleV310Contract = require("./PriceOracleV310Contract.js");
|
|
28
28
|
function getOrCreatePriceOracle(sdk, data) {
|
|
29
29
|
const { version, addr } = data.baseParams;
|
|
30
|
-
const existing = sdk.getContract(addr);
|
|
31
30
|
let result;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
let action = "created";
|
|
32
|
+
if ((0, import_constants.isV300)(version)) {
|
|
33
|
+
const existing = sdk.getContract(addr);
|
|
34
|
+
if (existing) {
|
|
35
|
+
result = tryExtendExistingOracle(existing, data);
|
|
36
|
+
action = "extended";
|
|
37
|
+
} else {
|
|
38
|
+
result = new import_PriceOracleV300Contract.PriceOracleV300Contract(sdk, data);
|
|
39
|
+
}
|
|
36
40
|
} else if ((0, import_constants.isV310)(version)) {
|
|
37
41
|
result = new import_PriceOracleV310Contract.PriceOracleV310Contract(sdk, data);
|
|
38
42
|
} else {
|
|
39
43
|
throw new Error(`Unsupported oracle version ${version}`);
|
|
40
44
|
}
|
|
41
45
|
sdk.logger?.debug(
|
|
42
|
-
`oracle ${addr} v${version} was ${
|
|
46
|
+
`oracle ${addr} v${version} was ${action} with ${result.mainPriceFeeds.size} main and ${result.reservePriceFeeds.size} reserve price feeds`
|
|
43
47
|
);
|
|
44
48
|
return result;
|
|
45
49
|
}
|
|
@@ -153,6 +153,7 @@ class GearboxSDK extends ChainContractsRegister {
|
|
|
153
153
|
this.gasLimit = options.gasLimit || 550000000n;
|
|
154
154
|
}
|
|
155
155
|
Object.assign(this, ChainContractsRegister.for(this.client, this.logger));
|
|
156
|
+
this.resetContracts();
|
|
156
157
|
}
|
|
157
158
|
async #attach(opts) {
|
|
158
159
|
const {
|
|
@@ -28,6 +28,14 @@ class ChainContractsRegister {
|
|
|
28
28
|
this.tokensMeta = new TokensMeta(client);
|
|
29
29
|
this.logger = logger;
|
|
30
30
|
}
|
|
31
|
+
resetContracts() {
|
|
32
|
+
this.logger?.debug(
|
|
33
|
+
`resetting contacts register with ${this.contracts.size} contracts`
|
|
34
|
+
);
|
|
35
|
+
this.labels.clear();
|
|
36
|
+
this.contracts.clear();
|
|
37
|
+
this.tokensMeta.reset();
|
|
38
|
+
}
|
|
31
39
|
getContract(address) {
|
|
32
40
|
return this.contracts.get(address);
|
|
33
41
|
}
|
|
@@ -4,19 +4,23 @@ import { PriceOracleV300Contract } from "./PriceOracleV300Contract.js";
|
|
|
4
4
|
import { PriceOracleV310Contract } from "./PriceOracleV310Contract.js";
|
|
5
5
|
function getOrCreatePriceOracle(sdk, data) {
|
|
6
6
|
const { version, addr } = data.baseParams;
|
|
7
|
-
const existing = sdk.getContract(addr);
|
|
8
7
|
let result;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
let action = "created";
|
|
9
|
+
if (isV300(version)) {
|
|
10
|
+
const existing = sdk.getContract(addr);
|
|
11
|
+
if (existing) {
|
|
12
|
+
result = tryExtendExistingOracle(existing, data);
|
|
13
|
+
action = "extended";
|
|
14
|
+
} else {
|
|
15
|
+
result = new PriceOracleV300Contract(sdk, data);
|
|
16
|
+
}
|
|
13
17
|
} else if (isV310(version)) {
|
|
14
18
|
result = new PriceOracleV310Contract(sdk, data);
|
|
15
19
|
} else {
|
|
16
20
|
throw new Error(`Unsupported oracle version ${version}`);
|
|
17
21
|
}
|
|
18
22
|
sdk.logger?.debug(
|
|
19
|
-
`oracle ${addr} v${version} was ${
|
|
23
|
+
`oracle ${addr} v${version} was ${action} with ${result.mainPriceFeeds.size} main and ${result.reservePriceFeeds.size} reserve price feeds`
|
|
20
24
|
);
|
|
21
25
|
return result;
|
|
22
26
|
}
|
|
@@ -17,6 +17,7 @@ export declare class ChainContractsRegister {
|
|
|
17
17
|
readonly tokensMeta: TokensMeta;
|
|
18
18
|
readonly logger?: ILogger;
|
|
19
19
|
constructor(client: PublicClient<Transport, Chain>, logger?: ILogger);
|
|
20
|
+
resetContracts(): void;
|
|
20
21
|
getContract<T = unknown[]>(address: Address): ContractOrInterface<T> | undefined;
|
|
21
22
|
mustGetContract<T = unknown[]>(address: Address): ContractOrInterface<T>;
|
|
22
23
|
setContract(address: Address, contract: BaseContract<any>): void;
|
|
@@ -16,6 +16,7 @@ export interface TokenMetaDataExtended extends TokenMetaData {
|
|
|
16
16
|
export declare class TokensMeta extends AddressMap<TokenMetaDataExtended> {
|
|
17
17
|
#private;
|
|
18
18
|
constructor(client: PublicClient<Transport, Chain>);
|
|
19
|
+
reset(): void;
|
|
19
20
|
symbol(token: Address): string;
|
|
20
21
|
decimals(token: Address): number;
|
|
21
22
|
/**
|
|
@@ -8,6 +8,8 @@ import type { IPriceOracleContract } from "./types.js";
|
|
|
8
8
|
*
|
|
9
9
|
* So this method bridges multiple compressor data pieces and single oracle contract isntance
|
|
10
10
|
*
|
|
11
|
+
* @deprecated This will be removed when v300 is deprecated
|
|
12
|
+
*
|
|
11
13
|
* @param sdk
|
|
12
14
|
* @param data
|
|
13
15
|
* @param underlying
|