@strkfarm/sdk 1.1.48 → 1.1.50
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/index.browser.global.js +33 -10
- package/dist/index.browser.mjs +33 -10
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -10
- package/dist/index.mjs +33 -10
- package/package.json +1 -1
- package/src/modules/ekubo-quoter.ts +13 -4
- package/src/strategies/ekubo-cl-vault.tsx +30 -11
|
@@ -53816,12 +53816,21 @@ ${JSON.stringify(data, null, 2)}`;
|
|
|
53816
53816
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
53817
53817
|
* @returns
|
|
53818
53818
|
*/
|
|
53819
|
-
async getQuote(fromToken, toToken, amount) {
|
|
53819
|
+
async getQuote(fromToken, toToken, amount, retry = 0) {
|
|
53820
53820
|
let _fromToken = amount.gt(0) ? fromToken : toToken;
|
|
53821
53821
|
let _toToken = amount.gt(0) ? toToken : fromToken;
|
|
53822
|
-
|
|
53823
|
-
|
|
53824
|
-
|
|
53822
|
+
try {
|
|
53823
|
+
const quote = await axios_default.get(this.ENDPOINT.replace("{{AMOUNT}}", amount.toWei()).replace("{{TOKEN_FROM_ADDRESS}}", _fromToken).replace("{{TOKEN_TO_ADDRESS}}", _toToken));
|
|
53824
|
+
console.log(`Ekubo quote from ${_fromToken} to ${_toToken} for ${amount.toString()}: ${JSON.stringify(quote.data)}`);
|
|
53825
|
+
return quote.data;
|
|
53826
|
+
} catch (error2) {
|
|
53827
|
+
console.error(error2.message, "dassf", error2.data);
|
|
53828
|
+
if (retry < 10) {
|
|
53829
|
+
await new Promise((resolve) => setTimeout(resolve, (retry + 1) * 5e3));
|
|
53830
|
+
return await this.getQuote(fromToken, toToken, amount, retry + 1);
|
|
53831
|
+
}
|
|
53832
|
+
throw error2;
|
|
53833
|
+
}
|
|
53825
53834
|
}
|
|
53826
53835
|
/**
|
|
53827
53836
|
* Formats Ekubo response for Vesu multiple use
|
|
@@ -79672,13 +79681,27 @@ spurious results.`);
|
|
|
79672
79681
|
const tvlBefore = await this._getTVL(blockBefore);
|
|
79673
79682
|
const supplyBefore = await this.totalSupply(blockBefore);
|
|
79674
79683
|
const priceBefore = await this.getCurrentPrice(blockBefore);
|
|
79675
|
-
const
|
|
79676
|
-
|
|
79677
|
-
|
|
79678
|
-
|
|
79684
|
+
const poolKey = await this.getPoolKey(blockBefore);
|
|
79685
|
+
logger2.verbose(`priceBefore: ${priceBefore.price.toString()}`);
|
|
79686
|
+
logger2.verbose(`priceNow: ${priceNow.price.toString()}`);
|
|
79687
|
+
logger2.verbose(`tvlBefore: ${JSON.stringify(tvlBefore)}`);
|
|
79688
|
+
logger2.verbose(`tvlNow: ${JSON.stringify(tvlNow)}`);
|
|
79689
|
+
const isQuoteTokenToken0 = this.metadata.additionalInfo.quoteAsset.address.eq(poolKey.token0);
|
|
79690
|
+
logger2.verbose(`isQuoteTokenToken0: ${isQuoteTokenToken0}`);
|
|
79691
|
+
let tvlBeforeInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
79692
|
+
let tvlNowInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
79693
|
+
if (!isQuoteTokenToken0) {
|
|
79694
|
+
tvlNowInBaseAsset = tvlNow.amount0.multipliedBy(priceNow.price).plus(tvlNow.amount1);
|
|
79695
|
+
tvlBeforeInBaseAsset = tvlBefore.amount0.multipliedBy(priceBefore.price).plus(tvlBefore.amount1);
|
|
79696
|
+
} else {
|
|
79697
|
+
tvlNowInBaseAsset = tvlNow.amount1.multipliedBy(1 / priceNow.price).plus(tvlNow.amount0);
|
|
79698
|
+
tvlBeforeInBaseAsset = tvlBefore.amount1.multipliedBy(1 / priceBefore.price).plus(tvlBefore.amount0);
|
|
79699
|
+
}
|
|
79700
|
+
const tvlPerShareNow = tvlNowInBaseAsset.multipliedBy(1e18).dividedBy(adjustedSupplyNow.toString());
|
|
79701
|
+
const tvlPerShareBf = tvlBeforeInBaseAsset.multipliedBy(1e18).dividedBy(supplyBefore.toString());
|
|
79679
79702
|
const timeDiffSeconds = blockNowTime - blockBeforeInfo.timestamp;
|
|
79680
|
-
logger2.verbose(`
|
|
79681
|
-
logger2.verbose(`
|
|
79703
|
+
logger2.verbose(`tvlNowInBaseAsset: ${tvlNowInBaseAsset.toString()}`);
|
|
79704
|
+
logger2.verbose(`tvlBeforeInBaseAsset: ${tvlBeforeInBaseAsset.toString()}`);
|
|
79682
79705
|
logger2.verbose(`tvlPerShareNow: ${tvlPerShareNow.toString()}`);
|
|
79683
79706
|
logger2.verbose(`tvlPerShareBf: ${tvlPerShareBf.toString()}`);
|
|
79684
79707
|
logger2.verbose(`Price before: ${priceBefore.price.toString()}`);
|
package/dist/index.browser.mjs
CHANGED
|
@@ -2208,12 +2208,21 @@ var EkuboQuoter = class {
|
|
|
2208
2208
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
2209
2209
|
* @returns
|
|
2210
2210
|
*/
|
|
2211
|
-
async getQuote(fromToken, toToken, amount) {
|
|
2211
|
+
async getQuote(fromToken, toToken, amount, retry = 0) {
|
|
2212
2212
|
let _fromToken = amount.gt(0) ? fromToken : toToken;
|
|
2213
2213
|
let _toToken = amount.gt(0) ? toToken : fromToken;
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2214
|
+
try {
|
|
2215
|
+
const quote = await axios5.get(this.ENDPOINT.replace("{{AMOUNT}}", amount.toWei()).replace("{{TOKEN_FROM_ADDRESS}}", _fromToken).replace("{{TOKEN_TO_ADDRESS}}", _toToken));
|
|
2216
|
+
console.log(`Ekubo quote from ${_fromToken} to ${_toToken} for ${amount.toString()}: ${JSON.stringify(quote.data)}`);
|
|
2217
|
+
return quote.data;
|
|
2218
|
+
} catch (error) {
|
|
2219
|
+
console.error(error.message, "dassf", error.data);
|
|
2220
|
+
if (retry < 10) {
|
|
2221
|
+
await new Promise((resolve) => setTimeout(resolve, (retry + 1) * 5e3));
|
|
2222
|
+
return await this.getQuote(fromToken, toToken, amount, retry + 1);
|
|
2223
|
+
}
|
|
2224
|
+
throw error;
|
|
2225
|
+
}
|
|
2217
2226
|
}
|
|
2218
2227
|
/**
|
|
2219
2228
|
* Formats Ekubo response for Vesu multiple use
|
|
@@ -15749,13 +15758,27 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
15749
15758
|
const tvlBefore = await this._getTVL(blockBefore);
|
|
15750
15759
|
const supplyBefore = await this.totalSupply(blockBefore);
|
|
15751
15760
|
const priceBefore = await this.getCurrentPrice(blockBefore);
|
|
15752
|
-
const
|
|
15753
|
-
|
|
15754
|
-
|
|
15755
|
-
|
|
15761
|
+
const poolKey = await this.getPoolKey(blockBefore);
|
|
15762
|
+
logger.verbose(`priceBefore: ${priceBefore.price.toString()}`);
|
|
15763
|
+
logger.verbose(`priceNow: ${priceNow.price.toString()}`);
|
|
15764
|
+
logger.verbose(`tvlBefore: ${JSON.stringify(tvlBefore)}`);
|
|
15765
|
+
logger.verbose(`tvlNow: ${JSON.stringify(tvlNow)}`);
|
|
15766
|
+
const isQuoteTokenToken0 = this.metadata.additionalInfo.quoteAsset.address.eq(poolKey.token0);
|
|
15767
|
+
logger.verbose(`isQuoteTokenToken0: ${isQuoteTokenToken0}`);
|
|
15768
|
+
let tvlBeforeInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15769
|
+
let tvlNowInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15770
|
+
if (!isQuoteTokenToken0) {
|
|
15771
|
+
tvlNowInBaseAsset = tvlNow.amount0.multipliedBy(priceNow.price).plus(tvlNow.amount1);
|
|
15772
|
+
tvlBeforeInBaseAsset = tvlBefore.amount0.multipliedBy(priceBefore.price).plus(tvlBefore.amount1);
|
|
15773
|
+
} else {
|
|
15774
|
+
tvlNowInBaseAsset = tvlNow.amount1.multipliedBy(1 / priceNow.price).plus(tvlNow.amount0);
|
|
15775
|
+
tvlBeforeInBaseAsset = tvlBefore.amount1.multipliedBy(1 / priceBefore.price).plus(tvlBefore.amount0);
|
|
15776
|
+
}
|
|
15777
|
+
const tvlPerShareNow = tvlNowInBaseAsset.multipliedBy(1e18).dividedBy(adjustedSupplyNow.toString());
|
|
15778
|
+
const tvlPerShareBf = tvlBeforeInBaseAsset.multipliedBy(1e18).dividedBy(supplyBefore.toString());
|
|
15756
15779
|
const timeDiffSeconds = blockNowTime - blockBeforeInfo.timestamp;
|
|
15757
|
-
logger.verbose(`
|
|
15758
|
-
logger.verbose(`
|
|
15780
|
+
logger.verbose(`tvlNowInBaseAsset: ${tvlNowInBaseAsset.toString()}`);
|
|
15781
|
+
logger.verbose(`tvlBeforeInBaseAsset: ${tvlBeforeInBaseAsset.toString()}`);
|
|
15759
15782
|
logger.verbose(`tvlPerShareNow: ${tvlPerShareNow.toString()}`);
|
|
15760
15783
|
logger.verbose(`tvlPerShareBf: ${tvlPerShareBf.toString()}`);
|
|
15761
15784
|
logger.verbose(`Price before: ${priceBefore.price.toString()}`);
|
package/dist/index.d.ts
CHANGED
|
@@ -1544,7 +1544,7 @@ declare class EkuboQuoter {
|
|
|
1544
1544
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
1545
1545
|
* @returns
|
|
1546
1546
|
*/
|
|
1547
|
-
getQuote(fromToken: string, toToken: string, amount: Web3Number): Promise<EkuboQuote>;
|
|
1547
|
+
getQuote(fromToken: string, toToken: string, amount: Web3Number, retry?: number): Promise<EkuboQuote>;
|
|
1548
1548
|
/**
|
|
1549
1549
|
* Formats Ekubo response for Vesu multiple use
|
|
1550
1550
|
* @param quote
|
package/dist/index.js
CHANGED
|
@@ -2363,12 +2363,21 @@ var EkuboQuoter = class {
|
|
|
2363
2363
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
2364
2364
|
* @returns
|
|
2365
2365
|
*/
|
|
2366
|
-
async getQuote(fromToken, toToken, amount) {
|
|
2366
|
+
async getQuote(fromToken, toToken, amount, retry = 0) {
|
|
2367
2367
|
let _fromToken = amount.gt(0) ? fromToken : toToken;
|
|
2368
2368
|
let _toToken = amount.gt(0) ? toToken : fromToken;
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2369
|
+
try {
|
|
2370
|
+
const quote = await import_axios5.default.get(this.ENDPOINT.replace("{{AMOUNT}}", amount.toWei()).replace("{{TOKEN_FROM_ADDRESS}}", _fromToken).replace("{{TOKEN_TO_ADDRESS}}", _toToken));
|
|
2371
|
+
console.log(`Ekubo quote from ${_fromToken} to ${_toToken} for ${amount.toString()}: ${JSON.stringify(quote.data)}`);
|
|
2372
|
+
return quote.data;
|
|
2373
|
+
} catch (error) {
|
|
2374
|
+
console.error(error.message, "dassf", error.data);
|
|
2375
|
+
if (retry < 10) {
|
|
2376
|
+
await new Promise((resolve) => setTimeout(resolve, (retry + 1) * 5e3));
|
|
2377
|
+
return await this.getQuote(fromToken, toToken, amount, retry + 1);
|
|
2378
|
+
}
|
|
2379
|
+
throw error;
|
|
2380
|
+
}
|
|
2372
2381
|
}
|
|
2373
2382
|
/**
|
|
2374
2383
|
* Formats Ekubo response for Vesu multiple use
|
|
@@ -15749,13 +15758,27 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
15749
15758
|
const tvlBefore = await this._getTVL(blockBefore);
|
|
15750
15759
|
const supplyBefore = await this.totalSupply(blockBefore);
|
|
15751
15760
|
const priceBefore = await this.getCurrentPrice(blockBefore);
|
|
15752
|
-
const
|
|
15753
|
-
|
|
15754
|
-
|
|
15755
|
-
|
|
15761
|
+
const poolKey = await this.getPoolKey(blockBefore);
|
|
15762
|
+
logger.verbose(`priceBefore: ${priceBefore.price.toString()}`);
|
|
15763
|
+
logger.verbose(`priceNow: ${priceNow.price.toString()}`);
|
|
15764
|
+
logger.verbose(`tvlBefore: ${JSON.stringify(tvlBefore)}`);
|
|
15765
|
+
logger.verbose(`tvlNow: ${JSON.stringify(tvlNow)}`);
|
|
15766
|
+
const isQuoteTokenToken0 = this.metadata.additionalInfo.quoteAsset.address.eq(poolKey.token0);
|
|
15767
|
+
logger.verbose(`isQuoteTokenToken0: ${isQuoteTokenToken0}`);
|
|
15768
|
+
let tvlBeforeInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15769
|
+
let tvlNowInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15770
|
+
if (!isQuoteTokenToken0) {
|
|
15771
|
+
tvlNowInBaseAsset = tvlNow.amount0.multipliedBy(priceNow.price).plus(tvlNow.amount1);
|
|
15772
|
+
tvlBeforeInBaseAsset = tvlBefore.amount0.multipliedBy(priceBefore.price).plus(tvlBefore.amount1);
|
|
15773
|
+
} else {
|
|
15774
|
+
tvlNowInBaseAsset = tvlNow.amount1.multipliedBy(1 / priceNow.price).plus(tvlNow.amount0);
|
|
15775
|
+
tvlBeforeInBaseAsset = tvlBefore.amount1.multipliedBy(1 / priceBefore.price).plus(tvlBefore.amount0);
|
|
15776
|
+
}
|
|
15777
|
+
const tvlPerShareNow = tvlNowInBaseAsset.multipliedBy(1e18).dividedBy(adjustedSupplyNow.toString());
|
|
15778
|
+
const tvlPerShareBf = tvlBeforeInBaseAsset.multipliedBy(1e18).dividedBy(supplyBefore.toString());
|
|
15756
15779
|
const timeDiffSeconds = blockNowTime - blockBeforeInfo.timestamp;
|
|
15757
|
-
logger.verbose(`
|
|
15758
|
-
logger.verbose(`
|
|
15780
|
+
logger.verbose(`tvlNowInBaseAsset: ${tvlNowInBaseAsset.toString()}`);
|
|
15781
|
+
logger.verbose(`tvlBeforeInBaseAsset: ${tvlBeforeInBaseAsset.toString()}`);
|
|
15759
15782
|
logger.verbose(`tvlPerShareNow: ${tvlPerShareNow.toString()}`);
|
|
15760
15783
|
logger.verbose(`tvlPerShareBf: ${tvlPerShareBf.toString()}`);
|
|
15761
15784
|
logger.verbose(`Price before: ${priceBefore.price.toString()}`);
|
package/dist/index.mjs
CHANGED
|
@@ -2257,12 +2257,21 @@ var EkuboQuoter = class {
|
|
|
2257
2257
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
2258
2258
|
* @returns
|
|
2259
2259
|
*/
|
|
2260
|
-
async getQuote(fromToken, toToken, amount) {
|
|
2260
|
+
async getQuote(fromToken, toToken, amount, retry = 0) {
|
|
2261
2261
|
let _fromToken = amount.gt(0) ? fromToken : toToken;
|
|
2262
2262
|
let _toToken = amount.gt(0) ? toToken : fromToken;
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2263
|
+
try {
|
|
2264
|
+
const quote = await axios5.get(this.ENDPOINT.replace("{{AMOUNT}}", amount.toWei()).replace("{{TOKEN_FROM_ADDRESS}}", _fromToken).replace("{{TOKEN_TO_ADDRESS}}", _toToken));
|
|
2265
|
+
console.log(`Ekubo quote from ${_fromToken} to ${_toToken} for ${amount.toString()}: ${JSON.stringify(quote.data)}`);
|
|
2266
|
+
return quote.data;
|
|
2267
|
+
} catch (error) {
|
|
2268
|
+
console.error(error.message, "dassf", error.data);
|
|
2269
|
+
if (retry < 10) {
|
|
2270
|
+
await new Promise((resolve) => setTimeout(resolve, (retry + 1) * 5e3));
|
|
2271
|
+
return await this.getQuote(fromToken, toToken, amount, retry + 1);
|
|
2272
|
+
}
|
|
2273
|
+
throw error;
|
|
2274
|
+
}
|
|
2266
2275
|
}
|
|
2267
2276
|
/**
|
|
2268
2277
|
* Formats Ekubo response for Vesu multiple use
|
|
@@ -15647,13 +15656,27 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
15647
15656
|
const tvlBefore = await this._getTVL(blockBefore);
|
|
15648
15657
|
const supplyBefore = await this.totalSupply(blockBefore);
|
|
15649
15658
|
const priceBefore = await this.getCurrentPrice(blockBefore);
|
|
15650
|
-
const
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15659
|
+
const poolKey = await this.getPoolKey(blockBefore);
|
|
15660
|
+
logger.verbose(`priceBefore: ${priceBefore.price.toString()}`);
|
|
15661
|
+
logger.verbose(`priceNow: ${priceNow.price.toString()}`);
|
|
15662
|
+
logger.verbose(`tvlBefore: ${JSON.stringify(tvlBefore)}`);
|
|
15663
|
+
logger.verbose(`tvlNow: ${JSON.stringify(tvlNow)}`);
|
|
15664
|
+
const isQuoteTokenToken0 = this.metadata.additionalInfo.quoteAsset.address.eq(poolKey.token0);
|
|
15665
|
+
logger.verbose(`isQuoteTokenToken0: ${isQuoteTokenToken0}`);
|
|
15666
|
+
let tvlBeforeInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15667
|
+
let tvlNowInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
15668
|
+
if (!isQuoteTokenToken0) {
|
|
15669
|
+
tvlNowInBaseAsset = tvlNow.amount0.multipliedBy(priceNow.price).plus(tvlNow.amount1);
|
|
15670
|
+
tvlBeforeInBaseAsset = tvlBefore.amount0.multipliedBy(priceBefore.price).plus(tvlBefore.amount1);
|
|
15671
|
+
} else {
|
|
15672
|
+
tvlNowInBaseAsset = tvlNow.amount1.multipliedBy(1 / priceNow.price).plus(tvlNow.amount0);
|
|
15673
|
+
tvlBeforeInBaseAsset = tvlBefore.amount1.multipliedBy(1 / priceBefore.price).plus(tvlBefore.amount0);
|
|
15674
|
+
}
|
|
15675
|
+
const tvlPerShareNow = tvlNowInBaseAsset.multipliedBy(1e18).dividedBy(adjustedSupplyNow.toString());
|
|
15676
|
+
const tvlPerShareBf = tvlBeforeInBaseAsset.multipliedBy(1e18).dividedBy(supplyBefore.toString());
|
|
15654
15677
|
const timeDiffSeconds = blockNowTime - blockBeforeInfo.timestamp;
|
|
15655
|
-
logger.verbose(`
|
|
15656
|
-
logger.verbose(`
|
|
15678
|
+
logger.verbose(`tvlNowInBaseAsset: ${tvlNowInBaseAsset.toString()}`);
|
|
15679
|
+
logger.verbose(`tvlBeforeInBaseAsset: ${tvlBeforeInBaseAsset.toString()}`);
|
|
15657
15680
|
logger.verbose(`tvlPerShareNow: ${tvlPerShareNow.toString()}`);
|
|
15658
15681
|
logger.verbose(`tvlPerShareBf: ${tvlPerShareBf.toString()}`);
|
|
15659
15682
|
logger.verbose(`Price before: ${priceBefore.price.toString()}`);
|
package/package.json
CHANGED
|
@@ -39,13 +39,22 @@ export class EkuboQuoter {
|
|
|
39
39
|
* @param amount Can be negative too, which would mean to get exact amount out
|
|
40
40
|
* @returns
|
|
41
41
|
*/
|
|
42
|
-
async getQuote(fromToken: string, toToken: string, amount: Web3Number): Promise<EkuboQuote> {
|
|
42
|
+
async getQuote(fromToken: string, toToken: string, amount: Web3Number, retry = 0): Promise<EkuboQuote> {
|
|
43
43
|
let _fromToken = amount.gt(0) ? fromToken : toToken;
|
|
44
44
|
let _toToken = amount.gt(0) ? toToken : fromToken;
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
try {
|
|
47
|
+
const quote = await axios.get(this.ENDPOINT.replace("{{AMOUNT}}", amount.toWei()).replace("{{TOKEN_FROM_ADDRESS}}", _fromToken).replace("{{TOKEN_TO_ADDRESS}}", _toToken));
|
|
48
|
+
console.log(`Ekubo quote from ${_fromToken} to ${_toToken} for ${amount.toString()}: ${JSON.stringify(quote.data)}`);
|
|
49
|
+
return quote.data as EkuboQuote;
|
|
50
|
+
} catch (error: any) {
|
|
51
|
+
console.error(error.message, 'dassf', error.data);
|
|
52
|
+
if (retry < 10) {
|
|
53
|
+
await new Promise((resolve) => setTimeout(resolve, (retry + 1) * 5000));
|
|
54
|
+
return await this.getQuote(fromToken, toToken, amount, retry + 1);
|
|
55
|
+
}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
49
58
|
}
|
|
50
59
|
|
|
51
60
|
/**
|
|
@@ -416,22 +416,41 @@ export class EkuboCLVault extends BaseStrategy<
|
|
|
416
416
|
const tvlBefore = await this._getTVL(blockBefore);
|
|
417
417
|
const supplyBefore = await this.totalSupply(blockBefore);
|
|
418
418
|
const priceBefore = await this.getCurrentPrice(blockBefore);
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
419
|
+
const poolKey = await this.getPoolKey(blockBefore);
|
|
420
|
+
logger.verbose(`priceBefore: ${priceBefore.price.toString()}`);
|
|
421
|
+
logger.verbose(`priceNow: ${priceNow.price.toString()}`);
|
|
422
|
+
logger.verbose(`tvlBefore: ${JSON.stringify(tvlBefore)}`);
|
|
423
|
+
logger.verbose(`tvlNow: ${JSON.stringify(tvlNow)}`);
|
|
424
|
+
|
|
425
|
+
const isQuoteTokenToken0 = this.metadata.additionalInfo.quoteAsset.address.eq(poolKey.token0);
|
|
426
|
+
logger.verbose(`isQuoteTokenToken0: ${isQuoteTokenToken0}`);
|
|
427
|
+
let tvlBeforeInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
428
|
+
let tvlNowInBaseAsset = Web3Number.fromWei(0, this.metadata.additionalInfo.quoteAsset.decimals);
|
|
429
|
+
if (!isQuoteTokenToken0) {
|
|
430
|
+
tvlNowInBaseAsset = (tvlNow.amount0
|
|
431
|
+
.multipliedBy(priceNow.price))
|
|
432
|
+
.plus(tvlNow.amount1);
|
|
433
|
+
tvlBeforeInBaseAsset = (tvlBefore.amount0
|
|
434
|
+
.multipliedBy(priceBefore.price))
|
|
435
|
+
.plus(tvlBefore.amount1);
|
|
436
|
+
} else {
|
|
437
|
+
tvlNowInBaseAsset = (tvlNow.amount1
|
|
438
|
+
.multipliedBy(1 / priceNow.price))
|
|
439
|
+
.plus(tvlNow.amount0);
|
|
440
|
+
tvlBeforeInBaseAsset = (tvlBefore.amount1
|
|
441
|
+
.multipliedBy(1 / priceBefore.price))
|
|
442
|
+
.plus(tvlBefore.amount0);
|
|
443
|
+
}
|
|
444
|
+
const tvlPerShareNow = tvlNowInBaseAsset
|
|
424
445
|
.multipliedBy(1e18)
|
|
425
446
|
.dividedBy(adjustedSupplyNow.toString());
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
.plus(tvlBefore.amount1);
|
|
429
|
-
const tvlPerShareBf = tvlInToken0Bf
|
|
447
|
+
|
|
448
|
+
const tvlPerShareBf = tvlBeforeInBaseAsset
|
|
430
449
|
.multipliedBy(1e18)
|
|
431
450
|
.dividedBy(supplyBefore.toString());
|
|
432
451
|
const timeDiffSeconds = blockNowTime - blockBeforeInfo.timestamp;
|
|
433
|
-
logger.verbose(`
|
|
434
|
-
logger.verbose(`
|
|
452
|
+
logger.verbose(`tvlNowInBaseAsset: ${tvlNowInBaseAsset.toString()}`);
|
|
453
|
+
logger.verbose(`tvlBeforeInBaseAsset: ${tvlBeforeInBaseAsset.toString()}`);
|
|
435
454
|
logger.verbose(`tvlPerShareNow: ${tvlPerShareNow.toString()}`);
|
|
436
455
|
logger.verbose(`tvlPerShareBf: ${tvlPerShareBf.toString()}`);
|
|
437
456
|
logger.verbose(`Price before: ${priceBefore.price.toString()}`);
|