@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.
@@ -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
  }
@@ -31,6 +31,10 @@ class TokensMeta extends import_utils.AddressMap {
31
31
  super(void 0, "tokensMeta");
32
32
  this.#client = client;
33
33
  }
34
+ reset() {
35
+ this.clear();
36
+ this.#phantomTokensLoaded = void 0;
37
+ }
34
38
  symbol(token) {
35
39
  return this.mustGet(token).symbol;
36
40
  }
@@ -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
- if (existing) {
33
- result = tryExtendExistingOracle(existing, data);
34
- } else if ((0, import_constants.isV300)(version)) {
35
- result = new import_PriceOracleV300Contract.PriceOracleV300Contract(sdk, data);
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 ${existing ? "extended" : "created"} with ${result.mainPriceFeeds.size} main and ${result.reservePriceFeeds.size} reserve price feeds`
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
  }
@@ -8,6 +8,10 @@ class TokensMeta extends AddressMap {
8
8
  super(void 0, "tokensMeta");
9
9
  this.#client = client;
10
10
  }
11
+ reset() {
12
+ this.clear();
13
+ this.#phantomTokensLoaded = void 0;
14
+ }
11
15
  symbol(token) {
12
16
  return this.mustGet(token).symbol;
13
17
  }
@@ -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
- if (existing) {
10
- result = tryExtendExistingOracle(existing, data);
11
- } else if (isV300(version)) {
12
- result = new PriceOracleV300Contract(sdk, data);
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 ${existing ? "extended" : "created"} with ${result.mainPriceFeeds.size} main and ${result.reservePriceFeeds.size} reserve price feeds`
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "12.6.2",
3
+ "version": "12.6.4",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "main": "./dist/cjs/sdk/index.js",