aftermath-ts-sdk 1.2.66 → 1.2.68
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/packages/coin/api/coinApi.d.ts +2 -1
- package/dist/packages/coin/api/coinApi.d.ts.map +1 -1
- package/dist/packages/coin/api/coinApi.js +15 -15
- package/dist/packages/farms/farmsStakedPosition.d.ts +0 -5
- package/dist/packages/farms/farmsStakedPosition.d.ts.map +1 -1
- package/dist/packages/farms/farmsStakedPosition.js +26 -38
- package/package.json +1 -1
|
@@ -20,9 +20,10 @@ export declare class CoinApi {
|
|
|
20
20
|
coinAmounts: Balance[];
|
|
21
21
|
isSponsoredTx?: boolean;
|
|
22
22
|
}) => Promise<TransactionObjectArgument[]>;
|
|
23
|
-
|
|
23
|
+
fetchCoinsWithAtLeastAmount: (inputs: {
|
|
24
24
|
walletAddress: SuiAddress;
|
|
25
25
|
coinType: CoinType;
|
|
26
|
+
coinAmount: Balance;
|
|
26
27
|
}) => Promise<CoinStruct[]>;
|
|
27
28
|
private static coinWithAmountTx;
|
|
28
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinApi.d.ts","sourceRoot":"","sources":["../../../../src/packages/coin/api/coinApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,qBAAa,OAAO;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAM5C,qBAAqB,WAAkB;QAC7C,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAAC;QACnC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,CAAC,CAcpC;IAEK,sBAAsB,WAAkB;QAC9C,EAAE,EAAE,WAAW,CAAC;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,WAAW,EAAE,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,EAAE,CAAC,CA8BtC;
|
|
1
|
+
{"version":3,"file":"coinApi.d.ts","sourceRoot":"","sources":["../../../../src/packages/coin/api/coinApi.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,yBAAyB,EACzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,qBAAa,OAAO;IAKP,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAM5C,qBAAqB,WAAkB;QAC7C,EAAE,EAAE,WAAW,GAAG,gBAAgB,CAAC;QACnC,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,CAAC,CAcpC;IAEK,sBAAsB,WAAkB;QAC9C,EAAE,EAAE,WAAW,CAAC;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,WAAW,EAAE,OAAO,EAAE,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB,KAAG,QAAQ,yBAAyB,EAAE,CAAC,CA8BtC;IAEK,2BAA2B,WAAkB;QACnD,aAAa,EAAE,UAAU,CAAC;QAC1B,QAAQ,EAAE,QAAQ,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACpB,KAAG,QAAQ,UAAU,EAAE,CAAC,CAsCvB;IAMF,OAAO,CAAC,MAAM,CAAC,gBAAgB,CA+E7B;CACF"}
|
|
@@ -26,7 +26,7 @@ class CoinApi {
|
|
|
26
26
|
this.fetchCoinWithAmountTx = (inputs) => __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
const { tx, walletAddress, coinType, coinAmount, isSponsoredTx } = inputs;
|
|
28
28
|
tx.setSender(walletAddress);
|
|
29
|
-
const coinData = yield this.
|
|
29
|
+
const coinData = yield this.fetchCoinsWithAtLeastAmount(inputs);
|
|
30
30
|
return CoinApi.coinWithAmountTx({
|
|
31
31
|
tx,
|
|
32
32
|
coinData,
|
|
@@ -39,9 +39,7 @@ class CoinApi {
|
|
|
39
39
|
const { tx, walletAddress, coinTypes, coinAmounts, isSponsoredTx } = inputs;
|
|
40
40
|
tx.setSender(walletAddress);
|
|
41
41
|
const allCoinsData = yield Promise.all(coinTypes.map((coinType, index) => __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
return this.
|
|
43
|
-
// coinAmount: coinAmounts[index],
|
|
44
|
-
coinType }));
|
|
42
|
+
return this.fetchCoinsWithAtLeastAmount(Object.assign(Object.assign({}, inputs), { coinAmount: coinAmounts[index], coinType }));
|
|
45
43
|
})));
|
|
46
44
|
let coinArgs = [];
|
|
47
45
|
for (const [index, coinData] of allCoinsData.entries()) {
|
|
@@ -56,25 +54,27 @@ class CoinApi {
|
|
|
56
54
|
}
|
|
57
55
|
return coinArgs;
|
|
58
56
|
});
|
|
59
|
-
|
|
60
|
-
this.fetchAllCoins = (inputs) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
this.fetchCoinsWithAtLeastAmount = (inputs) => __awaiter(this, void 0, void 0, function* () {
|
|
61
58
|
let allCoinData = [];
|
|
62
59
|
let cursor = undefined;
|
|
63
60
|
do {
|
|
64
61
|
const paginatedCoins = yield this.Provider.provider.getCoins(Object.assign(Object.assign({}, inputs), { owner: inputs.walletAddress, cursor }));
|
|
65
|
-
// const coinData = paginatedCoins.data.filter(
|
|
66
|
-
// (data) => BigInt(data.balance) > BigInt(0)
|
|
67
|
-
// );
|
|
68
62
|
const coinData = paginatedCoins.data;
|
|
69
63
|
allCoinData = [...allCoinData, ...coinData];
|
|
70
|
-
// const totalAmount = Helpers.sumBigInt(
|
|
71
|
-
// allCoinData.map((data) => BigInt(data.balance))
|
|
72
|
-
// );
|
|
73
|
-
// if (totalAmount >= inputs.coinAmount) return allCoinData;
|
|
74
64
|
if (paginatedCoins.data.length === 0 ||
|
|
75
65
|
!paginatedCoins.hasNextPage ||
|
|
76
|
-
!paginatedCoins.nextCursor)
|
|
77
|
-
|
|
66
|
+
!paginatedCoins.nextCursor) {
|
|
67
|
+
allCoinData.sort((b, a) => Number(BigInt(a.balance) - BigInt(b.balance)));
|
|
68
|
+
let coinDatas = [];
|
|
69
|
+
let sum = BigInt(0);
|
|
70
|
+
for (const coinData of allCoinData) {
|
|
71
|
+
coinDatas.push(coinData);
|
|
72
|
+
sum += BigInt(coinData.balance);
|
|
73
|
+
if (sum >= inputs.coinAmount)
|
|
74
|
+
return coinDatas;
|
|
75
|
+
}
|
|
76
|
+
throw new Error("wallet does not have coins of sufficient balance");
|
|
77
|
+
}
|
|
78
78
|
cursor = paginatedCoins.nextCursor;
|
|
79
79
|
} while (true);
|
|
80
80
|
});
|
|
@@ -186,11 +186,6 @@ export declare class FarmsStakedPosition extends Caller {
|
|
|
186
186
|
* @returns A tuple `[baseRewards, multiplierRewards]`.
|
|
187
187
|
*/
|
|
188
188
|
private calcTotalRewardsFromTimeT0;
|
|
189
|
-
/**
|
|
190
|
-
* Removes the lock multiplier from this position if the current time is beyond the lock duration,
|
|
191
|
-
* reverting `lockMultiplier` to 1.0 (fixedOneB).
|
|
192
|
-
*/
|
|
193
|
-
private unlock;
|
|
194
189
|
/**
|
|
195
190
|
* Determines if this position is unlocked based on the lock end timestamp, the emission end timestamp,
|
|
196
191
|
* or a forced unlock condition in the pool.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"farmsStakedPosition.d.ts","sourceRoot":"","sources":["../../../src/packages/farms/farmsStakedPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAQN,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,UAAU,EAEV,SAAS,EAET,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAMtD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;IAoBtC,cAAc,EAAE,yBAAyB;IAGhD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAtB3B;;;OAGG;IACH,SAAgB,+BAA+B,EAAE,SAAS,CAAC;IAM3D;;;;;;;OAOG;gBAEK,cAAc,EAAE,yBAAyB,EAChD,+BAA+B,GAAE,SAAS,GAAG,SAAqB,EAClE,MAAM,CAAC,EAAE,YAAY,EACJ,QAAQ,CAAC,0BAAc;IAiBzC;;OAEG;IACI,OAAO,QAAO,YAAY,CAE/B;IAEF;;;;;OAKG;IACI,QAAQ,WAAY;QAAE,WAAW,EAAE,gBAAgB,CAAA;KAAE,KAAG,OAAO,CAEpE;IAEF;;;;OAIG;IACI,cAAc,QAAO,OAAO,CAEjC;IAEF;;;;OAIG;IACI,eAAe,QAAO,MAAM,CAKjC;IAEF;;;;;;OAMG;IACI,6BAA6B,WAAY;QAC/C,WAAW,EAAE,gBAAgB,CAAC;KAC9B,KAAG,cAAc,CAWhB;IAEF;;;;OAIG;IACI,eAAe,QAAO,QAAQ,EAAE,CAErC;IAEF;;;;;OAKG;IACI,sBAAsB,WAAY;QACxC,WAAW,EAAE,gBAAgB,CAAC;KAC9B,KAAG,QAAQ,EAAE,CAIZ;IAEF;;;;;;OAMG;IACI,UAAU,WAAY;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,0DAOjD;IAEF;;;;;OAKG;IACI,mBAAmB,WAAY;QACrC,WAAW,EAAE,gBAAgB,CAAC;KAC9B,KAAG,OAAO,CAaT;IAMF;;;;;;OAMG;IACI,aAAa,WAAY;QAC/B,QAAQ,EAAE,QAAQ,CAAC;QACnB,WAAW,EAAE,gBAAgB,CAAC;KAC9B,KAAG,OAAO,CAsBT;IAEF;;;;;;;OAOG;IACI,cAAc,WAAY;QAAE,WAAW,EAAE,gBAAgB,CAAA;KAAE,UAiIhE;IAUF;;;;;OAKG;IACU,8BAA8B,CAAC,MAAM,EAAE;QACnD,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,UAAU,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;KACxB;IAYD;;;;;OAKG;IACU,qBAAqB,CAAC,MAAM,EAAE;QAC1C,aAAa,EAAE,UAAU,CAAC;QAC1B,WAAW,EAAE,gBAAgB,CAAC;QAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC1B;IAkBD;;;;;OAKG;IACU,kBAAkB,CAAC,MAAM,EAAE;QACvC,cAAc,EAAE,SAAS,CAAC;QAC1B,aAAa,EAAE,UAAU,CAAC;KAC1B;IAYD;;;;;OAKG;IACU,uBAAuB,CAAC,MAAM,EAAE;QAC5C,aAAa,EAAE,UAAU,CAAC;KAC1B;IAYD;;;;;OAKG;IACU,oBAAoB,CAAC,MAAM,EAAE;QAAE,aAAa,EAAE,UAAU,CAAA;KAAE;IAgBvE;;;;;;OAMG;IACU,4BAA4B,CAAC,MAAM,EAAE;QACjD,aAAa,EAAE,UAAU,CAAC;QAC1B,WAAW,EAAE,gBAAgB,CAAC;QAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;KAC1B;IAqBD;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"farmsStakedPosition.d.ts","sourceRoot":"","sources":["../../../src/packages/farms/farmsStakedPosition.ts"],"names":[],"mappings":"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"}
|
|
@@ -147,7 +147,7 @@ class FarmsStakedPosition extends caller_1.Caller {
|
|
|
147
147
|
this.rewardsEarned = (inputs) => {
|
|
148
148
|
if (inputs.stakingPool.rewardCoin(inputs).actualRewards === BigInt(0))
|
|
149
149
|
return BigInt(0);
|
|
150
|
-
this.updatePosition(inputs);
|
|
150
|
+
// this.updatePosition(inputs);
|
|
151
151
|
const rewardCoin = this.rewardCoin(inputs);
|
|
152
152
|
const totalRewards = rewardCoin.multiplierRewardsAccumulated +
|
|
153
153
|
rewardCoin.baseRewardsAccumulated;
|
|
@@ -255,23 +255,23 @@ class FarmsStakedPosition extends caller_1.Caller {
|
|
|
255
255
|
this.stakedPosition.rewardCoins[rewardCoinIndex].multiplierRewardsDebt = totalMultiplierRewardsFromTimeT0;
|
|
256
256
|
}
|
|
257
257
|
// Check if this position’s lock has expired
|
|
258
|
-
if (this.unlockTimestamp() < currentTimestamp) {
|
|
259
|
-
|
|
260
|
-
}
|
|
258
|
+
// if (this.unlockTimestamp() < currentTimestamp) {
|
|
259
|
+
// this.unlock();
|
|
260
|
+
// }
|
|
261
261
|
this.stakedPosition.lastHarvestRewardsTimestamp = currentTimestamp;
|
|
262
262
|
};
|
|
263
|
-
/**
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
};
|
|
263
|
+
// /**
|
|
264
|
+
// * Removes the lock multiplier from this position if the current time is beyond the lock duration,
|
|
265
|
+
// * reverting `lockMultiplier` to 1.0 (fixedOneB).
|
|
266
|
+
// */
|
|
267
|
+
// private unlock = () => {
|
|
268
|
+
// // ia. Remove position's `multiplier_staked_amount` from the pool.
|
|
269
|
+
// // afterburner_vault::decrease_stake_with_multiplier(vault, self.multiplier_staked_amount);
|
|
270
|
+
// this.stakedPosition.stakedAmountWithMultiplier = BigInt(0);
|
|
271
|
+
// // ib. Reset position's lock parameters.
|
|
272
|
+
// this.stakedPosition.lockDurationMs = 0;
|
|
273
|
+
// this.stakedPosition.lockMultiplier = FixedUtils.fixedOneB;
|
|
274
|
+
// };
|
|
275
275
|
/**
|
|
276
276
|
* Determines if this position is unlocked based on the lock end timestamp, the emission end timestamp,
|
|
277
277
|
* or a forced unlock condition in the pool.
|
|
@@ -410,37 +410,25 @@ class FarmsStakedPosition extends caller_1.Caller {
|
|
|
410
410
|
*/
|
|
411
411
|
calcTotalRewardsFromTimeT0(inputs) {
|
|
412
412
|
const { rewardsAccumulatedPerShare, multiplierRewardsDebt, emissionEndTimestamp, } = inputs;
|
|
413
|
-
const currentTimestamp = (0, dayjs_1.default)().valueOf();
|
|
414
413
|
const lastRewardTimestamp = this.stakedPosition.lastHarvestRewardsTimestamp;
|
|
415
414
|
const lockEndTimestamp = this.unlockTimestamp();
|
|
416
415
|
const principalStakedAmount = this.stakedPosition.stakedAmount;
|
|
417
416
|
const baseRewards = (principalStakedAmount * rewardsAccumulatedPerShare) /
|
|
418
417
|
fixedUtils_1.FixedUtils.fixedOneB;
|
|
419
|
-
const totalMultiplierRewards =
|
|
420
|
-
|
|
421
|
-
|
|
418
|
+
// const totalMultiplierRewards =
|
|
419
|
+
// (this.stakedPosition.stakedAmountWithMultiplier *
|
|
420
|
+
// rewardsAccumulatedPerShare) /
|
|
421
|
+
// FixedUtils.fixedOneB;
|
|
422
|
+
const multiplierEndTimestamp = Math.min(lockEndTimestamp, emissionEndTimestamp);
|
|
422
423
|
const multiplierRewards = (() => {
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
424
|
+
if (lastRewardTimestamp <= multiplierEndTimestamp) {
|
|
425
|
+
return ((rewardsAccumulatedPerShare *
|
|
426
|
+
this.stakedPosition.stakedAmountWithMultiplier) /
|
|
427
|
+
fixedUtils_1.FixedUtils.fixedOneB);
|
|
426
428
|
}
|
|
427
|
-
|
|
428
|
-
if (lockEndTimestamp <= lastRewardTimestamp) {
|
|
429
|
+
else {
|
|
429
430
|
return multiplierRewardsDebt;
|
|
430
431
|
}
|
|
431
|
-
// If emission ended while still locked, or fully locked within emission window
|
|
432
|
-
if (emissionEndTimestamp <= lockEndTimestamp) {
|
|
433
|
-
return totalMultiplierRewards;
|
|
434
|
-
}
|
|
435
|
-
// Otherwise, partial locking scenario
|
|
436
|
-
const timeSpentLockedSinceLastHarvestMs = lockEndTimestamp - lastRewardTimestamp;
|
|
437
|
-
const timeSinceLastHarvestMs = currentTimestamp - lastRewardTimestamp;
|
|
438
|
-
const possibleMultiplierRewardsDebt = (totalMultiplierRewards *
|
|
439
|
-
BigInt(Math.floor(timeSpentLockedSinceLastHarvestMs))) /
|
|
440
|
-
BigInt(Math.floor(timeSinceLastHarvestMs));
|
|
441
|
-
return possibleMultiplierRewardsDebt > multiplierRewardsDebt
|
|
442
|
-
? possibleMultiplierRewardsDebt
|
|
443
|
-
: multiplierRewardsDebt;
|
|
444
432
|
})();
|
|
445
433
|
return [baseRewards, multiplierRewards];
|
|
446
434
|
}
|