@suilend/sdk 1.1.40 → 1.1.42
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/lib/liquidityMining.d.ts +1 -1
- package/lib/liquidityMining.js +21 -2
- package/package.json +1 -1
package/lib/liquidityMining.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export declare const getFilteredRewards: (rewards: RewardSummary[]) => RewardSum
|
|
|
49
49
|
export declare const getDedupedAprRewards: (filteredRewards: RewardSummary[]) => AprRewardSummary[];
|
|
50
50
|
export declare const getDedupedPerDayRewards: (filteredRewards: RewardSummary[]) => PerDayRewardSummary[];
|
|
51
51
|
export declare const getRewardsAprPercent: (side: Side, filteredRewards: RewardSummary[]) => BigNumber;
|
|
52
|
-
export declare const getStakingYieldAprPercent: (side: Side,
|
|
52
|
+
export declare const getStakingYieldAprPercent: (side: Side, coinType: string, lstAprPercentMap: Record<string, BigNumber>) => BigNumber | undefined;
|
|
53
53
|
export declare const getTotalAprPercent: (side: Side, aprPercent: BigNumber, filteredRewards: RewardSummary[], stakingYieldAprPercent?: BigNumber) => BigNumber;
|
|
54
54
|
export declare const getNetAprPercent: (obligation: ParsedObligation, rewardMap: RewardMap, lstAprPercentMap: Record<string, BigNumber>) => BigNumber;
|
|
55
55
|
export {};
|
package/lib/liquidityMining.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getNetAprPercent = exports.getTotalAprPercent = exports.getStakingYieldAprPercent = exports.getRewardsAprPercent = exports.getDedupedPerDayRewards = exports.getDedupedAprRewards = exports.getFilteredRewards = exports.formatRewards = exports.getBorrowShare = exports.getDepositShare = void 0;
|
|
7
7
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
const lodash_1 = require("lodash");
|
|
9
|
+
const uuid_1 = require("uuid");
|
|
9
10
|
const frontend_sui_1 = require("@suilend/frontend-sui");
|
|
10
11
|
const constants_1 = require("./constants");
|
|
11
12
|
const types_1 = require("./types");
|
|
@@ -68,6 +69,24 @@ const formatRewards = (parsedReserveMap, coinMetadataMap, priceMap, obligations)
|
|
|
68
69
|
};
|
|
69
70
|
Object.values(parsedReserveMap).forEach((reserve) => {
|
|
70
71
|
const depositRewards = reserve.depositsPoolRewardManager.poolRewards.map((poolReward) => getRewardSummary(reserve, poolReward, types_1.Side.DEPOSIT));
|
|
72
|
+
if (reserve.coinType === frontend_sui_1.NORMALIZED_LBTC_COINTYPE) {
|
|
73
|
+
depositRewards.push({
|
|
74
|
+
stats: {
|
|
75
|
+
id: (0, uuid_1.v4)(),
|
|
76
|
+
isActive: true,
|
|
77
|
+
rewardIndex: -1, // Not applicable as can not be claimed
|
|
78
|
+
reserve,
|
|
79
|
+
rewardCoinType: frontend_sui_1.NORMALIZED_DEEP_COINTYPE,
|
|
80
|
+
mintDecimals: parsedReserveMap[frontend_sui_1.NORMALIZED_DEEP_COINTYPE].mintDecimals,
|
|
81
|
+
price: parsedReserveMap[frontend_sui_1.NORMALIZED_DEEP_COINTYPE].price,
|
|
82
|
+
symbol: parsedReserveMap[frontend_sui_1.NORMALIZED_DEEP_COINTYPE].token.symbol,
|
|
83
|
+
iconUrl: parsedReserveMap[frontend_sui_1.NORMALIZED_DEEP_COINTYPE].token.iconUrl,
|
|
84
|
+
aprPercent: new bignumber_js_1.default(1),
|
|
85
|
+
side: types_1.Side.DEPOSIT,
|
|
86
|
+
},
|
|
87
|
+
obligationClaims: {}, // Can not be claimed, will be distributed directly to the user ~once per day
|
|
88
|
+
});
|
|
89
|
+
}
|
|
71
90
|
const borrowRewards = reserve.borrowsPoolRewardManager.poolRewards.map((poolReward) => getRewardSummary(reserve, poolReward, types_1.Side.BORROW));
|
|
72
91
|
rewardMap[reserve.coinType] = {
|
|
73
92
|
[types_1.Side.DEPOSIT]: depositRewards,
|
|
@@ -125,7 +144,7 @@ const getDedupedPerDayRewards = (filteredRewards) => {
|
|
|
125
144
|
exports.getDedupedPerDayRewards = getDedupedPerDayRewards;
|
|
126
145
|
const getRewardsAprPercent = (side, filteredRewards) => (0, exports.getDedupedAprRewards)(filteredRewards).reduce((acc, reward) => acc.plus(reward.stats.aprPercent.times(side === types_1.Side.DEPOSIT ? 1 : -1)), new bignumber_js_1.default(0));
|
|
127
146
|
exports.getRewardsAprPercent = getRewardsAprPercent;
|
|
128
|
-
const getStakingYieldAprPercent = (side,
|
|
147
|
+
const getStakingYieldAprPercent = (side, coinType, lstAprPercentMap) => (side === types_1.Side.DEPOSIT ? lstAprPercentMap[coinType] : undefined);
|
|
129
148
|
exports.getStakingYieldAprPercent = getStakingYieldAprPercent;
|
|
130
149
|
const getTotalAprPercent = (side, aprPercent, filteredRewards, stakingYieldAprPercent) => aprPercent
|
|
131
150
|
.plus((0, exports.getRewardsAprPercent)(side, filteredRewards))
|
|
@@ -135,7 +154,7 @@ const getNetAprPercent = (obligation, rewardMap, lstAprPercentMap) => {
|
|
|
135
154
|
const weightedDepositedAmountUsd_aprPercent = obligation.deposits.reduce((acc, deposit) => {
|
|
136
155
|
var _a;
|
|
137
156
|
const weightedDepositedAmountUsd_baseAprPercent = deposit.reserve.depositAprPercent.times(deposit.depositedAmountUsd);
|
|
138
|
-
const weightedDepositedAmountUsd_stakingYieldAprPercent = new bignumber_js_1.default((_a = (0, exports.getStakingYieldAprPercent)(types_1.Side.DEPOSIT, deposit.reserve, lstAprPercentMap)) !== null && _a !== void 0 ? _a : 0).times(deposit.depositedAmountUsd);
|
|
157
|
+
const weightedDepositedAmountUsd_stakingYieldAprPercent = new bignumber_js_1.default((_a = (0, exports.getStakingYieldAprPercent)(types_1.Side.DEPOSIT, deposit.reserve.coinType, lstAprPercentMap)) !== null && _a !== void 0 ? _a : 0).times(deposit.depositedAmountUsd);
|
|
139
158
|
const weightedDepositedAmountUsd_rewardsAprPercent = (0, exports.getRewardsAprPercent)(types_1.Side.DEPOSIT, (0, exports.getFilteredRewards)(rewardMap[deposit.reserve.coinType].deposit)).times(getDepositShareUsd(deposit.reserve, new bignumber_js_1.default(deposit.userRewardManager.share.toString())));
|
|
140
159
|
return acc
|
|
141
160
|
.plus(weightedDepositedAmountUsd_baseAprPercent)
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sdk","version":"1.1.
|
|
1
|
+
{"name":"@suilend/sdk","version":"1.1.42","private":false,"description":"A TypeScript SDK for interacting with the Suilend program","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./client":"./client.js","./api/events":"./api/events.js","./api":"./api/index.js","./lib/constants":"./lib/constants.js","./lib":"./lib/index.js","./lib/initialize":"./lib/initialize.js","./lib/liquidityMining":"./lib/liquidityMining.js","./lib/transactions":"./lib/transactions.js","./lib/types":"./lib/types.js","./parsers/apiReserveAssetDataEvent":"./parsers/apiReserveAssetDataEvent.js","./parsers":"./parsers/index.js","./parsers/lendingMarket":"./parsers/lendingMarket.js","./parsers/obligation":"./parsers/obligation.js","./parsers/rateLimiter":"./parsers/rateLimiter.js","./parsers/reserve":"./parsers/reserve.js","./utils/events":"./utils/events.js","./utils":"./utils/index.js","./utils/obligation":"./utils/obligation.js","./utils/simulate":"./utils/simulate.js","./_generated/_framework/reified":"./_generated/_framework/reified.js","./_generated/_framework/util":"./_generated/_framework/util.js","./_generated/_framework/vector":"./_generated/_framework/vector.js","./_generated/suilend":"./_generated/suilend/index.js","./_generated/suilend/cell/structs":"./_generated/suilend/cell/structs.js","./_generated/suilend/decimal/structs":"./_generated/suilend/decimal/structs.js","./_generated/suilend/lending-market/functions":"./_generated/suilend/lending-market/functions.js","./_generated/suilend/lending-market/structs":"./_generated/suilend/lending-market/structs.js","./_generated/suilend/lending-market-registry/functions":"./_generated/suilend/lending-market-registry/functions.js","./_generated/suilend/liquidity-mining/structs":"./_generated/suilend/liquidity-mining/structs.js","./_generated/suilend/obligation/structs":"./_generated/suilend/obligation/structs.js","./_generated/suilend/rate-limiter/functions":"./_generated/suilend/rate-limiter/functions.js","./_generated/suilend/rate-limiter/structs":"./_generated/suilend/rate-limiter/structs.js","./_generated/suilend/reserve/structs":"./_generated/suilend/reserve/structs.js","./_generated/suilend/reserve-config/functions":"./_generated/suilend/reserve-config/functions.js","./_generated/suilend/reserve-config/structs":"./_generated/suilend/reserve-config/structs.js","./_generated/_dependencies/source/0x1":"./_generated/_dependencies/source/0x1/index.js","./_generated/_dependencies/source/0x2":"./_generated/_dependencies/source/0x2/index.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/index.js","./_generated/_dependencies/source/0x1/ascii/structs":"./_generated/_dependencies/source/0x1/ascii/structs.js","./_generated/_dependencies/source/0x1/option/structs":"./_generated/_dependencies/source/0x1/option/structs.js","./_generated/_dependencies/source/0x1/type-name/structs":"./_generated/_dependencies/source/0x1/type-name/structs.js","./_generated/_dependencies/source/0x2/bag/structs":"./_generated/_dependencies/source/0x2/bag/structs.js","./_generated/_dependencies/source/0x2/balance/structs":"./_generated/_dependencies/source/0x2/balance/structs.js","./_generated/_dependencies/source/0x2/object/structs":"./_generated/_dependencies/source/0x2/object/structs.js","./_generated/_dependencies/source/0x2/object-table/structs":"./_generated/_dependencies/source/0x2/object-table/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/i64/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-feed/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-identifier/structs.js","./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs":"./_generated/_dependencies/source/0x8d97f1cd6ac663735be08d1d2b6d02a159e711586461306ce60a2b7a6a565a9e/price-info/structs.js"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/solendprotocol/suilend-public.git"},"bugs":{"url":"https://github.com/solendprotocol/suilend-public/issues"},"dependencies":{"@pythnetwork/pyth-sui-js":"^2.1.0","bignumber.js":"^9.1.2","p-limit":"3.1.0","uuid":"^11.0.3"},"devDependencies":{"ts-node":"^10.9.2"},"peerDependencies":{"@mysten/bcs":"1.2.1","@mysten/sui":"1.20.0","@suilend/frontend-sui":"^0.2.38"}}
|