@gearbox-protocol/sdk 14.12.0-next.74 → 14.12.0-next.75

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 (39) hide show
  1. package/dist/cjs/plugins/accounts-counter/AccountsCounterPlugin.js +1 -1
  2. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +73 -445
  3. package/dist/cjs/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +280 -0
  4. package/dist/cjs/sdk/accounts/credit-account-compressor/CreditAccountCompressorV310Contract.js +141 -0
  5. package/dist/cjs/sdk/accounts/credit-account-compressor/index.js +6 -0
  6. package/dist/cjs/sdk/accounts/credit-account-compressor/types.js +1 -0
  7. package/dist/cjs/sdk/accounts/index.js +5 -0
  8. package/dist/cjs/sdk/index.js +4 -0
  9. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +41 -1
  10. package/dist/cjs/sdk/market/oracle/PriceOracleV310Contract.js +0 -23
  11. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +1 -1
  12. package/dist/esm/plugins/accounts-counter/AccountsCounterPlugin.js +1 -1
  13. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +74 -446
  14. package/dist/esm/sdk/accounts/credit-account-compressor/CreditAccountCompressor.js +279 -0
  15. package/dist/esm/sdk/accounts/credit-account-compressor/CreditAccountCompressorV310Contract.js +141 -0
  16. package/dist/esm/sdk/accounts/credit-account-compressor/index.js +4 -0
  17. package/dist/esm/sdk/accounts/credit-account-compressor/types.js +1 -0
  18. package/dist/esm/sdk/accounts/index.js +4 -1
  19. package/dist/esm/sdk/index.js +3 -1
  20. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +41 -1
  21. package/dist/esm/sdk/market/oracle/PriceOracleV310Contract.js +0 -23
  22. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +1 -1
  23. package/dist/types/plugins/accounts/AccountsPlugin.d.ts +1 -1
  24. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +10 -44
  25. package/dist/types/sdk/accounts/credit-account-compressor/CreditAccountCompressor.d.ts +60 -0
  26. package/dist/types/sdk/accounts/credit-account-compressor/CreditAccountCompressorV310Contract.d.ts +879 -0
  27. package/dist/types/sdk/accounts/credit-account-compressor/index.d.ts +4 -0
  28. package/dist/types/sdk/accounts/credit-account-compressor/types.d.ts +164 -0
  29. package/dist/types/sdk/accounts/index.d.ts +7 -3
  30. package/dist/types/sdk/accounts/types.d.ts +5 -112
  31. package/dist/types/sdk/base/index.d.ts +2 -2
  32. package/dist/types/sdk/base/types.d.ts +6 -1
  33. package/dist/types/sdk/index.d.ts +8 -5
  34. package/dist/types/sdk/market/index.d.ts +2 -2
  35. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +15 -4
  36. package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +0 -11
  37. package/dist/types/sdk/market/oracle/index.d.ts +2 -2
  38. package/dist/types/sdk/market/oracle/types.d.ts +30 -14
  39. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { Amount, TokenAmount } from "../../../model/primitives.js";
2
2
  import { PriceFeedData, PriceFeedSummary } from "../../../model/opportunities.js";
3
3
  import "../../../model/index.js";
4
4
  import { AddressMap } from "../../utils/AddressMap.js";
5
- import { IBaseContract } from "../../base/types.js";
5
+ import { CreditAccountTokensSlice, IBaseContract } from "../../base/types.js";
6
6
  import { DelegatedMulticall } from "../../utils/viem/executeDelegatedMulticalls.js";
7
7
  import "../../utils/viem/index.js";
8
8
  import { PriceOracleStateHuman } from "../../types/state-human.js";
@@ -10,7 +10,6 @@ import { IPriceFeedContract, PriceUpdate, UpdatePriceFeedsResult } from "../pric
10
10
  import { PriceFeedRef } from "../pricefeeds/PriceFeedRef.js";
11
11
  import "../pricefeeds/index.js";
12
12
  import PriceFeedAnswerMap from "./PriceFeedAnswerMap.js";
13
- import { MultiCall } from "../../types/transactions.js";
14
13
  import "../../utils/index.js";
15
14
  import "../../types/index.js";
16
15
  import "../../base/index.js";
@@ -33,12 +32,15 @@ interface PriceFeedsForTokensOptions {
33
32
  reserve?: boolean;
34
33
  }
35
34
  /**
36
- * On demand price updates acceptable by both credit facade multicall and
37
- * as raw PriceUpdate in liquidator calls.
38
- */
39
- interface OnDemandPriceUpdates {
40
- raw: PriceUpdate[];
41
- multicall: MultiCall[];
35
+ * Filter and extra inputs controlling which feeds to update for a credit
36
+ * account.
37
+ **/
38
+ interface PriceFeedsForAccountOptions extends PriceFeedsForTokensOptions {
39
+ /**
40
+ * Extra tokens to price alongside the account's underlying and its enabled
41
+ * non-dust balances.
42
+ **/
43
+ extraTokens?: Address[];
42
44
  }
43
45
  /**
44
46
  * Public interface for a Gearbox price oracle contract.
@@ -97,12 +99,26 @@ interface IPriceOracleContract extends IBaseContract {
97
99
  **/
98
100
  priceFeedsForTokens: (tokens: Address[], opts?: PriceFeedsForTokensOptions) => IPriceFeedContract[];
99
101
  /**
100
- * Converts previously obtained price updates into CreditFacade
101
- * multicall entries and raw `PriceUpdateV310` structures.
102
- * @param creditFacade - Address of the credit facade that will receive the multicall.
103
- * @param updates - Price update result to convert. When omitted, uses latest cached updates.
102
+ * Generates the price feed update transactions an account needs to be
103
+ * valued: one per feed of its underlying, of every enabled token it holds a
104
+ * non-dust balance of, and of any `extraTokens`.
105
+ * @param account - Account whose tokens to cover.
106
+ * @param opts - Feed type filter and extra tokens to price.
107
+ **/
108
+ priceUpdateTxsForAccount: (account: CreditAccountTokensSlice, opts?: PriceFeedsForAccountOptions) => Promise<UpdatePriceFeedsResult>;
109
+ /**
110
+ * Same as {@link priceUpdateTxsForAccount}, but returns raw price update
111
+ * structures instead of transactions.
112
+ * @param account - Account whose tokens to cover.
113
+ * @param opts - Feed type filter and extra tokens to price.
114
+ **/
115
+ priceUpdatesForAccount: (account: CreditAccountTokensSlice, opts?: PriceFeedsForAccountOptions) => Promise<PriceUpdate[]>;
116
+ /**
117
+ * Raw price update structures for the feeds of the given tokens.
118
+ * @param tokens - Token addresses to price.
119
+ * @param opts - Feed type filter.
104
120
  **/
105
- onDemandPriceUpdates: (creditFacade: Address, updates?: UpdatePriceFeedsResult) => OnDemandPriceUpdates;
121
+ priceUpdatesForTokens: (tokens: Address[], opts?: PriceFeedsForTokensOptions) => Promise<PriceUpdate[]>;
106
122
  /**
107
123
  * Converts an amount from one token to another using latest known prices.
108
124
  * @param from - Source token address.
@@ -188,4 +204,4 @@ interface IPriceOracleContract extends IBaseContract {
188
204
  stateHuman: (raw?: boolean) => PriceOracleStateHuman;
189
205
  }
190
206
  //#endregion
191
- export { IPriceOracleContract, OnDemandPriceUpdates, PriceFeedsForTokensOptions };
207
+ export { IPriceOracleContract, PriceFeedsForAccountOptions, PriceFeedsForTokensOptions };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gearbox-protocol/sdk",
3
- "version": "14.12.0-next.74",
3
+ "version": "14.12.0-next.75",
4
4
  "description": "Gearbox SDK",
5
5
  "license": "MIT",
6
6
  "repository": {