@gearbox-protocol/sdk 13.3.2 → 13.3.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.
Files changed (92) hide show
  1. package/dist/cjs/rewards/rewards/api.js +4 -124
  2. package/dist/cjs/rewards/rewards/extra-apy.js +5 -7
  3. package/dist/cjs/rewards/rewards/index.js +1 -5
  4. package/dist/cjs/sdk/GearboxSDK.js +135 -20
  5. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +40 -141
  6. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -5
  7. package/dist/cjs/sdk/base/BaseContract.js +26 -6
  8. package/dist/cjs/sdk/base/ChainContractsRegister.js +39 -2
  9. package/dist/cjs/sdk/base/Construct.js +15 -3
  10. package/dist/cjs/sdk/base/TokensMeta.js +23 -0
  11. package/dist/cjs/sdk/constants/address-provider.js +0 -22
  12. package/dist/cjs/sdk/core/AbstractAddressProviderContract.js +15 -0
  13. package/dist/cjs/sdk/market/MarketRegister.js +74 -3
  14. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +31 -50
  15. package/dist/cjs/sdk/market/pricefeeds/PriceFeedRef.js +16 -0
  16. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +55 -12
  17. package/dist/cjs/sdk/options.js +30 -24
  18. package/dist/cjs/sdk/plugins/BasePlugin.js +24 -0
  19. package/dist/cjs/sdk/pools/AbstractPoolService.js +6 -0
  20. package/dist/cjs/sdk/router/AbstractRouterContract.js +4 -1
  21. package/dist/cjs/sdk/router/RouterV310Contract.js +20 -15
  22. package/dist/cjs/sdk/utils/AddressMap.js +53 -17
  23. package/dist/cjs/sdk/utils/AddressSet.js +9 -0
  24. package/dist/cjs/sdk/utils/viem/sendRawTx.js +16 -0
  25. package/dist/esm/rewards/rewards/api.js +4 -124
  26. package/dist/esm/rewards/rewards/extra-apy.js +4 -6
  27. package/dist/esm/rewards/rewards/index.js +0 -2
  28. package/dist/esm/sdk/GearboxSDK.js +135 -20
  29. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +40 -141
  30. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -5
  31. package/dist/esm/sdk/base/BaseContract.js +26 -6
  32. package/dist/esm/sdk/base/ChainContractsRegister.js +39 -2
  33. package/dist/esm/sdk/base/Construct.js +15 -3
  34. package/dist/esm/sdk/base/TokensMeta.js +23 -0
  35. package/dist/esm/sdk/constants/address-provider.js +0 -21
  36. package/dist/esm/sdk/core/AbstractAddressProviderContract.js +15 -0
  37. package/dist/esm/sdk/market/MarketRegister.js +74 -3
  38. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +31 -50
  39. package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +16 -0
  40. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +55 -12
  41. package/dist/esm/sdk/options.js +30 -24
  42. package/dist/esm/sdk/plugins/BasePlugin.js +24 -0
  43. package/dist/esm/sdk/pools/AbstractPoolService.js +6 -0
  44. package/dist/esm/sdk/router/AbstractRouterContract.js +4 -1
  45. package/dist/esm/sdk/router/RouterV310Contract.js +20 -15
  46. package/dist/esm/sdk/utils/AddressMap.js +53 -17
  47. package/dist/esm/sdk/utils/AddressSet.js +9 -0
  48. package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -1
  49. package/dist/types/rewards/rewards/api.d.ts +5 -28
  50. package/dist/types/rewards/rewards/extra-apy.d.ts +1 -1
  51. package/dist/types/rewards/rewards/index.d.ts +0 -2
  52. package/dist/types/sdk/GearboxSDK.d.ts +236 -34
  53. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +55 -141
  54. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +14 -5
  55. package/dist/types/sdk/accounts/types.d.ts +219 -17
  56. package/dist/types/sdk/base/BaseContract.d.ts +67 -6
  57. package/dist/types/sdk/base/ChainContractsRegister.d.ts +51 -2
  58. package/dist/types/sdk/base/Construct.d.ts +31 -0
  59. package/dist/types/sdk/base/PlaceholderContract.d.ts +3 -0
  60. package/dist/types/sdk/base/SDKConstruct.d.ts +10 -0
  61. package/dist/types/sdk/base/TokensMeta.d.ts +59 -2
  62. package/dist/types/sdk/base/types.d.ts +185 -25
  63. package/dist/types/sdk/chain/chains.d.ts +78 -18
  64. package/dist/types/sdk/chain/detectNetwork.d.ts +7 -0
  65. package/dist/types/sdk/constants/address-provider.d.ts +4 -3
  66. package/dist/types/sdk/core/AbstractAddressProviderContract.d.ts +23 -0
  67. package/dist/types/sdk/core/types.d.ts +46 -0
  68. package/dist/types/sdk/market/MarketRegister.d.ts +81 -0
  69. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +3 -0
  70. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +40 -50
  71. package/dist/types/sdk/market/oracle/types.d.ts +76 -57
  72. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +3 -0
  73. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +3 -0
  74. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +22 -2
  75. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +77 -13
  76. package/dist/types/sdk/market/pricefeeds/types.d.ts +70 -10
  77. package/dist/types/sdk/options.d.ts +13 -4
  78. package/dist/types/sdk/plugins/BasePlugin.d.ts +39 -0
  79. package/dist/types/sdk/plugins/types.d.ts +73 -43
  80. package/dist/types/sdk/pools/AbstractPoolService.d.ts +12 -0
  81. package/dist/types/sdk/pools/types.d.ts +75 -6
  82. package/dist/types/sdk/router/AbstractRouterContract.d.ts +21 -2
  83. package/dist/types/sdk/router/RouterV310Contract.d.ts +27 -15
  84. package/dist/types/sdk/router/types.d.ts +51 -69
  85. package/dist/types/sdk/types/state.d.ts +32 -3
  86. package/dist/types/sdk/utils/AddressMap.d.ts +61 -17
  87. package/dist/types/sdk/utils/AddressSet.d.ts +15 -0
  88. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +5 -1
  89. package/package.json +4 -2
  90. package/dist/cjs/rewards/rewards/apy.js +0 -177
  91. package/dist/esm/rewards/rewards/apy.js +0 -160
  92. package/dist/types/rewards/rewards/apy.d.ts +0 -44
@@ -1,160 +0,0 @@
1
- import { PriceUtils } from "../../common-utils/index.js";
2
- import {
3
- PERCENTAGE_DECIMALS,
4
- PERCENTAGE_FACTOR,
5
- RAY,
6
- SECONDS_PER_YEAR,
7
- toBigInt,
8
- WAD
9
- } from "../../sdk/index.js";
10
- const PERCENTAGE_FACTOR_1KK = PERCENTAGE_DECIMALS * PERCENTAGE_FACTOR;
11
- const ONE = PERCENTAGE_FACTOR_1KK * 10n;
12
- class GearboxRewardsApy {
13
- constructor() {
14
- }
15
- static getPoolExtraAPY_V3({
16
- rewardPoolsInfo,
17
- stakedDieselToken,
18
- ...restProps
19
- }) {
20
- const { version } = restProps.pool;
21
- const isV3 = version >= 300 && version < 400;
22
- if (!isV3 || !stakedDieselToken) return [];
23
- const info = rewardPoolsInfo[stakedDieselToken];
24
- if (!info) return [];
25
- const extra = (Array.isArray(info) ? info : [info]).map(
26
- (inf) => GearboxRewardsApy.getPoolSingleExtraLmAPY_V3({
27
- ...restProps,
28
- stakedDieselToken,
29
- rewardPoolsInfo: inf
30
- })
31
- );
32
- return extra;
33
- }
34
- static getPoolSingleExtraLmAPY_V3({
35
- stakedDieselToken,
36
- pool,
37
- prices,
38
- rewardPoolsInfo,
39
- rewardPoolsSupply,
40
- tokensList,
41
- currentTimestamp
42
- }) {
43
- const { underlyingToken, dieselRateRay } = pool;
44
- const safeSupply = rewardPoolsSupply[stakedDieselToken] ?? 0n;
45
- const { decimals: underlyingDecimals = 18 } = tokensList[underlyingToken] || {};
46
- const underlyingPrice = prices[underlyingToken] ?? 0n;
47
- const dieselPrice = underlyingPrice * dieselRateRay / RAY;
48
- const rewardAddress = rewardPoolsInfo?.token || "";
49
- const { decimals: rewardDecimals = 18 } = tokensList[rewardAddress] || {};
50
- const rewardPrice = prices[rewardAddress] ?? 0n;
51
- const r = GearboxRewardsApy.calculateAPY_V3({
52
- currentTimestamp,
53
- info: rewardPoolsInfo,
54
- supply: {
55
- amount: safeSupply,
56
- decimals: underlyingDecimals,
57
- price: dieselPrice
58
- },
59
- reward: {
60
- price: rewardPrice,
61
- decimals: rewardDecimals
62
- }
63
- }) / Number(PERCENTAGE_FACTOR);
64
- return {
65
- token: stakedDieselToken,
66
- balance: null,
67
- apy: r,
68
- rewardToken: rewardAddress,
69
- rewardTokenSymbol: rewardPoolsInfo.symbol
70
- };
71
- }
72
- static calculateAPY_V3({
73
- info,
74
- supply,
75
- reward,
76
- currentTimestamp
77
- }) {
78
- const finished = info.finished <= currentTimestamp;
79
- if (finished) return 0;
80
- if (supply.amount <= 0n) return 0;
81
- if (supply.price === 0n || reward.price === 0n) return 0;
82
- if (info.duration === 0n) return 0;
83
- const supplyMoney = PriceUtils.calcTotalPrice(
84
- supply.price,
85
- supply.amount,
86
- supply.decimals
87
- );
88
- const rewardMoney = PriceUtils.calcTotalPrice(
89
- reward.price,
90
- info.reward,
91
- reward.decimals
92
- );
93
- const durationRatio = toBigInt(SECONDS_PER_YEAR) * WAD / info.duration;
94
- const apyBn = rewardMoney * ONE / supplyMoney * durationRatio / WAD;
95
- return Math.round(Number(apyBn) / 10);
96
- }
97
- static getCAExtraAPY_V3({
98
- rewardInfo,
99
- assets,
100
- ...restProps
101
- }) {
102
- const extra = assets.reduce(
103
- (acc, asset) => {
104
- const { token } = asset;
105
- const info = rewardInfo[token || ""];
106
- if (!info || info.length === 0) return acc;
107
- const extra2 = info.map(
108
- (inf) => GearboxRewardsApy.getCASingleExtraAPY_V3({
109
- ...restProps,
110
- asset,
111
- rewardInfo: inf
112
- })
113
- );
114
- acc.push(...extra2);
115
- return acc;
116
- },
117
- []
118
- );
119
- return extra;
120
- }
121
- static getCASingleExtraAPY_V3({
122
- asset,
123
- prices,
124
- rewardInfo,
125
- supply,
126
- tokensList,
127
- currentTimestamp
128
- }) {
129
- const { token, balance } = asset;
130
- const safeSupply = supply[token] ?? 0n;
131
- const { decimals: tokenDecimals = 18 } = tokensList[token] || {};
132
- const tokenPrice = prices[token] ?? 0n;
133
- const rewardAddress = rewardInfo?.token || "";
134
- const { decimals: rewardDecimals = 18 } = tokensList[rewardAddress] || {};
135
- const rewardPrice = prices[rewardAddress] ?? 0n;
136
- const r = GearboxRewardsApy.calculateAPY_V3({
137
- currentTimestamp,
138
- info: rewardInfo,
139
- supply: {
140
- amount: typeof safeSupply === "bigint" ? safeSupply : safeSupply.balance,
141
- decimals: tokenDecimals,
142
- price: tokenPrice
143
- },
144
- reward: {
145
- price: rewardPrice,
146
- decimals: rewardDecimals
147
- }
148
- }) / Number(PERCENTAGE_FACTOR);
149
- return {
150
- token,
151
- balance,
152
- apy: r,
153
- rewardToken: rewardAddress,
154
- rewardTokenSymbol: rewardInfo.symbol
155
- };
156
- }
157
- }
158
- export {
159
- GearboxRewardsApy
160
- };
@@ -1,44 +0,0 @@
1
- import type { Address } from "viem";
2
- import { type Asset } from "../../sdk/index.js";
3
- import type { PoolData, TokenData } from "./common.js";
4
- interface InnerFarmInfo {
5
- symbol: string;
6
- duration: bigint;
7
- finished: bigint;
8
- reward: bigint;
9
- token: Address;
10
- }
11
- export interface ExtraRewardApy {
12
- token: Address;
13
- balance: bigint | null;
14
- apy: number;
15
- rewardToken: Address;
16
- rewardTokenSymbol: string;
17
- endTimestamp?: number;
18
- }
19
- interface GetPoolExtraAPY_V3Props {
20
- stakedDieselToken: Address | undefined;
21
- pool: PoolData;
22
- prices: Record<Address, bigint>;
23
- rewardPoolsInfo: Record<Address, Array<InnerFarmInfo>> | Record<Address, InnerFarmInfo>;
24
- rewardPoolsSupply: Record<Address, bigint>;
25
- tokensList: Record<Address, TokenData>;
26
- currentTimestamp: number;
27
- }
28
- interface GetCAExtraAPYProps {
29
- assets: Array<Asset>;
30
- supply: Record<Address, bigint> | Record<Address, Asset>;
31
- rewardInfo: Record<Address, Array<InnerFarmInfo>>;
32
- currentTimestamp: number;
33
- prices: Record<Address, bigint>;
34
- tokensList: Record<Address, TokenData>;
35
- }
36
- export declare class GearboxRewardsApy {
37
- private constructor();
38
- static getPoolExtraAPY_V3({ rewardPoolsInfo, stakedDieselToken, ...restProps }: GetPoolExtraAPY_V3Props): Array<ExtraRewardApy>;
39
- private static getPoolSingleExtraLmAPY_V3;
40
- private static calculateAPY_V3;
41
- static getCAExtraAPY_V3({ rewardInfo, assets, ...restProps }: GetCAExtraAPYProps): Array<ExtraRewardApy>;
42
- private static getCASingleExtraAPY_V3;
43
- }
44
- export {};