@strkfarm/sdk 2.0.0-dev.14 → 2.0.0-dev.16
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 +212 -234
- package/dist/index.browser.mjs +212 -234
- package/dist/index.d.ts +60 -28
- package/dist/index.js +212 -234
- package/dist/index.mjs +212 -234
- package/package.json +1 -1
- package/src/strategies/index.ts +2 -1
- package/src/strategies/universal-adapters/extended-adapter.ts +40 -11
- package/src/strategies/universal-adapters/vesu-adapter.ts +6 -6
- package/src/strategies/vesu-extended-strategy/services/operationService.ts +23 -13
- package/src/strategies/vesu-extended-strategy/types/transaction-metadata.ts +25 -0
- package/src/strategies/vesu-extended-strategy/vesu-extended-strategy.tsx +203 -235
package/dist/index.mjs
CHANGED
|
@@ -27065,11 +27065,6 @@ var VesuAdapter = class _VesuAdapter extends CacheClass {
|
|
|
27065
27065
|
if (!this.pricer) {
|
|
27066
27066
|
throw new Error("Pricer is not initialized");
|
|
27067
27067
|
}
|
|
27068
|
-
const CACHE_KEY = `positions_${blockNumber}_${this.config.poolId.shortString()}_${this.config.collateral.symbol}_${this.config.debt.symbol}`;
|
|
27069
|
-
const cacheData = this.getCache(CACHE_KEY);
|
|
27070
|
-
if (cacheData) {
|
|
27071
|
-
return cacheData;
|
|
27072
|
-
}
|
|
27073
27068
|
const { contract, isV2 } = this.getVesuSingletonContract(config, this.config.poolId);
|
|
27074
27069
|
const output = await contract.call(isV2 ? "position" : "position_unsafe", [
|
|
27075
27070
|
...isV2 ? [] : [this.config.poolId.address],
|
|
@@ -27095,7 +27090,6 @@ var VesuAdapter = class _VesuAdapter extends CacheClass {
|
|
|
27095
27090
|
usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
|
|
27096
27091
|
remarks: "Debt"
|
|
27097
27092
|
}];
|
|
27098
|
-
this.setCache(CACHE_KEY, value, 6e4);
|
|
27099
27093
|
return value.map((v) => ({ ...v, protocol: Protocols.VESU }));
|
|
27100
27094
|
}
|
|
27101
27095
|
async getCollateralization(config, blockNumber = "latest") {
|
|
@@ -29962,26 +29956,38 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
|
|
|
29962
29956
|
try {
|
|
29963
29957
|
if (!this.client) {
|
|
29964
29958
|
logger.error("Client not initialized");
|
|
29965
|
-
return
|
|
29959
|
+
return {
|
|
29960
|
+
status: false,
|
|
29961
|
+
receivedTxnHash: false
|
|
29962
|
+
};
|
|
29966
29963
|
}
|
|
29967
29964
|
if (amount.lessThanOrEqualTo(0)) {
|
|
29968
29965
|
logger.error(
|
|
29969
29966
|
`Invalid withdrawal amount: ${amount.toNumber()}. Amount must be positive.`
|
|
29970
29967
|
);
|
|
29971
|
-
return
|
|
29968
|
+
return {
|
|
29969
|
+
status: false,
|
|
29970
|
+
receivedTxnHash: false
|
|
29971
|
+
};
|
|
29972
29972
|
}
|
|
29973
29973
|
if (amount.lessThanOrEqualTo(this.minimumExtendedMovementAmount)) {
|
|
29974
29974
|
logger.warn(
|
|
29975
29975
|
`Withdrawal amount ${amount.toNumber()} is below minimum Extended movement amount ${this.minimumExtendedMovementAmount}. Skipping withdrawal.`
|
|
29976
29976
|
);
|
|
29977
|
-
return
|
|
29977
|
+
return {
|
|
29978
|
+
status: false,
|
|
29979
|
+
receivedTxnHash: false
|
|
29980
|
+
};
|
|
29978
29981
|
}
|
|
29979
29982
|
const holdings = await this.getExtendedDepositAmount();
|
|
29980
29983
|
if (!holdings) {
|
|
29981
29984
|
logger.error(
|
|
29982
29985
|
"Cannot get holdings - unable to validate withdrawal amount"
|
|
29983
29986
|
);
|
|
29984
|
-
return
|
|
29987
|
+
return {
|
|
29988
|
+
status: false,
|
|
29989
|
+
receivedTxnHash: false
|
|
29990
|
+
};
|
|
29985
29991
|
}
|
|
29986
29992
|
const availableForWithdrawal = parseFloat(
|
|
29987
29993
|
holdings.availableForWithdrawal
|
|
@@ -29990,14 +29996,20 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
|
|
|
29990
29996
|
logger.error(
|
|
29991
29997
|
`Invalid availableForWithdrawal: ${holdings.availableForWithdrawal}. Expected a finite, non-negative number.`
|
|
29992
29998
|
);
|
|
29993
|
-
return
|
|
29999
|
+
return {
|
|
30000
|
+
status: false,
|
|
30001
|
+
receivedTxnHash: false
|
|
30002
|
+
};
|
|
29994
30003
|
}
|
|
29995
30004
|
const withdrawalAmount = amount.toNumber();
|
|
29996
30005
|
if (withdrawalAmount > availableForWithdrawal) {
|
|
29997
30006
|
logger.error(
|
|
29998
30007
|
`Withdrawal amount ${withdrawalAmount} exceeds available balance ${availableForWithdrawal}`
|
|
29999
30008
|
);
|
|
30000
|
-
return
|
|
30009
|
+
return {
|
|
30010
|
+
status: false,
|
|
30011
|
+
receivedTxnHash: false
|
|
30012
|
+
};
|
|
30001
30013
|
}
|
|
30002
30014
|
logger.info(
|
|
30003
30015
|
`Withdrawing ${withdrawalAmount} from Extended. Available balance: ${availableForWithdrawal}`
|
|
@@ -30010,15 +30022,24 @@ var ExtendedAdapter = class _ExtendedAdapter extends BaseAdapter {
|
|
|
30010
30022
|
withdrawalRequest.data,
|
|
30011
30023
|
"WITHDRAWAL" /* WITHDRAWAL */
|
|
30012
30024
|
);
|
|
30013
|
-
return
|
|
30025
|
+
return {
|
|
30026
|
+
status: true,
|
|
30027
|
+
receivedTxnHash: withdrawalStatus
|
|
30028
|
+
};
|
|
30014
30029
|
}
|
|
30015
30030
|
logger.error(
|
|
30016
30031
|
`Withdrawal request failed with status: ${withdrawalRequest.status}`
|
|
30017
30032
|
);
|
|
30018
|
-
return
|
|
30033
|
+
return {
|
|
30034
|
+
status: false,
|
|
30035
|
+
receivedTxnHash: false
|
|
30036
|
+
};
|
|
30019
30037
|
} catch (error) {
|
|
30020
30038
|
logger.error(`Error creating Withdraw Call: ${error}`);
|
|
30021
|
-
return
|
|
30039
|
+
return {
|
|
30040
|
+
status: false,
|
|
30041
|
+
receivedTxnHash: false
|
|
30042
|
+
};
|
|
30022
30043
|
}
|
|
30023
30044
|
}
|
|
30024
30045
|
async getHealthFactor() {
|
|
@@ -34371,10 +34392,16 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34371
34392
|
proofGroups,
|
|
34372
34393
|
await proofsInfo.callConstructor({ amount })
|
|
34373
34394
|
);
|
|
34374
|
-
return
|
|
34395
|
+
return {
|
|
34396
|
+
calls: [approveCall, transferCall, call],
|
|
34397
|
+
status: true
|
|
34398
|
+
};
|
|
34375
34399
|
} catch (err) {
|
|
34376
34400
|
logger.error(`error moving assets to vault allocator: ${err}`);
|
|
34377
|
-
return
|
|
34401
|
+
return {
|
|
34402
|
+
calls: [],
|
|
34403
|
+
status: false
|
|
34404
|
+
};
|
|
34378
34405
|
}
|
|
34379
34406
|
}
|
|
34380
34407
|
async shouldInvest() {
|
|
@@ -34623,9 +34650,10 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34623
34650
|
const vesuAmountDifferenceAbs = vesuAmountDifference.abs();
|
|
34624
34651
|
logger.info(`${_VesuExtendedMultiplierStrategy.name}::shouldMoveAssets calculated movements - Extended withdrawal: ${totalExtendedWithdrawal.toNumber()}, Extended deposit: ${totalExtendedDeposit.toNumber()}, Extended diff: ${extendedAmountDifference.toNumber()}, Projected wallet: ${projectedWalletBalance.toNumber()}, Vesu diff: ${vesuAmountDifference.toNumber()}`);
|
|
34625
34652
|
let calls = [];
|
|
34653
|
+
let transactionResults = [];
|
|
34626
34654
|
if (extendedAmount.isNegative() && extendedAmount.abs().greaterThan(extendedAdapter.minimumExtendedMovementAmount)) {
|
|
34627
34655
|
try {
|
|
34628
|
-
const { calls: extendedCalls, status: extendedStatus } = await this.moveAssets(
|
|
34656
|
+
const { calls: extendedCalls, status: extendedStatus, transactionMetadata: extendedTransactionMetadata } = await this.moveAssets(
|
|
34629
34657
|
{
|
|
34630
34658
|
to: Protocols.VAULT.name,
|
|
34631
34659
|
from: Protocols.EXTENDED.name,
|
|
@@ -34635,17 +34663,25 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34635
34663
|
vesuAdapter
|
|
34636
34664
|
);
|
|
34637
34665
|
if (extendedStatus) {
|
|
34638
|
-
|
|
34666
|
+
transactionResults.push({
|
|
34667
|
+
status: extendedStatus,
|
|
34668
|
+
calls: extendedCalls,
|
|
34669
|
+
transactionMetadata: {
|
|
34670
|
+
...extendedTransactionMetadata,
|
|
34671
|
+
transactionType: "DEPOSIT"
|
|
34672
|
+
}
|
|
34673
|
+
});
|
|
34639
34674
|
} else {
|
|
34640
|
-
return [];
|
|
34675
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: extendedAmount.abs() }, "NONE")];
|
|
34641
34676
|
}
|
|
34642
34677
|
} catch (err) {
|
|
34643
34678
|
logger.error(`Failed moving assets to vault: ${err}`);
|
|
34679
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: extendedAmount.abs() }, "NONE")];
|
|
34644
34680
|
}
|
|
34645
34681
|
}
|
|
34646
34682
|
if (vesuAmount.isNegative() && vesuAmount.abs().greaterThan(vesuAdapter.minimumVesuMovementAmount)) {
|
|
34647
34683
|
try {
|
|
34648
|
-
const { calls: vesuCalls, status: vesuStatus } = await this.moveAssets(
|
|
34684
|
+
const { calls: vesuCalls, status: vesuStatus, transactionMetadata: vesuTransactionMetadata } = await this.moveAssets(
|
|
34649
34685
|
{
|
|
34650
34686
|
to: Protocols.EXTENDED.name,
|
|
34651
34687
|
from: Protocols.VESU.name,
|
|
@@ -34654,18 +34690,26 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34654
34690
|
extendedAdapter,
|
|
34655
34691
|
vesuAdapter
|
|
34656
34692
|
);
|
|
34657
|
-
calls.push(...vesuCalls);
|
|
34658
34693
|
if (!vesuStatus) {
|
|
34659
|
-
return [];
|
|
34660
|
-
}
|
|
34694
|
+
return [this.createTransactionResult([], false, { from: Protocols.VESU.name, to: Protocols.EXTENDED.name, amount: vesuAmount.abs() }, "NONE")];
|
|
34695
|
+
}
|
|
34696
|
+
transactionResults.push({
|
|
34697
|
+
status: vesuStatus,
|
|
34698
|
+
calls: vesuCalls,
|
|
34699
|
+
transactionMetadata: {
|
|
34700
|
+
...vesuTransactionMetadata,
|
|
34701
|
+
transactionType: "DEPOSIT"
|
|
34702
|
+
}
|
|
34703
|
+
});
|
|
34661
34704
|
} catch (err) {
|
|
34662
|
-
logger.error(`Failed moving assets to vault: ${err}`);
|
|
34705
|
+
logger.error(`Failed moving assets to extended via vault allocator: ${err}`);
|
|
34706
|
+
return [this.createTransactionResult([], false, { from: Protocols.VESU.name, to: Protocols.EXTENDED.name, amount: vesuAmount.abs() }, "NONE")];
|
|
34663
34707
|
}
|
|
34664
34708
|
}
|
|
34665
34709
|
if (extendedAmountDifferenceAbs.greaterThan(extendedAdapter.minimumExtendedMovementAmount)) {
|
|
34666
34710
|
if (extendedAmountDifference.greaterThan(0)) {
|
|
34667
34711
|
try {
|
|
34668
|
-
const { calls: extendedCalls, status: extendedStatus } = await this.moveAssets(
|
|
34712
|
+
const { calls: extendedCalls, status: extendedStatus, transactionMetadata: extendedTransactionMetadata } = await this.moveAssets(
|
|
34669
34713
|
{
|
|
34670
34714
|
to: Protocols.EXTENDED.name,
|
|
34671
34715
|
from: Protocols.VAULT.name,
|
|
@@ -34675,18 +34719,22 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34675
34719
|
vesuAdapter
|
|
34676
34720
|
);
|
|
34677
34721
|
if (extendedStatus) {
|
|
34678
|
-
|
|
34722
|
+
transactionResults.push({
|
|
34723
|
+
status: extendedStatus,
|
|
34724
|
+
calls: extendedCalls,
|
|
34725
|
+
transactionMetadata: extendedTransactionMetadata
|
|
34726
|
+
});
|
|
34679
34727
|
} else {
|
|
34680
34728
|
logger.error(`Failed to move assets to extended - operation returned false status`);
|
|
34681
|
-
return [];
|
|
34729
|
+
return [this.createTransactionResult([], false, { from: Protocols.VAULT.name, to: Protocols.EXTENDED.name, amount: extendedAmountDifference }, "NONE")];
|
|
34682
34730
|
}
|
|
34683
34731
|
} catch (err) {
|
|
34684
34732
|
logger.error(`Failed moving assets to extended: ${err}`);
|
|
34685
|
-
return [];
|
|
34733
|
+
return [this.createTransactionResult([], false, { from: Protocols.VAULT.name, to: Protocols.EXTENDED.name, amount: extendedAmountDifference }, "NONE")];
|
|
34686
34734
|
}
|
|
34687
34735
|
} else if (extendedAmountDifference.lessThan(0)) {
|
|
34688
34736
|
try {
|
|
34689
|
-
const { calls: extendedCalls, status: extendedStatus } = await this.moveAssets(
|
|
34737
|
+
const { calls: extendedCalls, status: extendedStatus, transactionMetadata: extendedTransactionMetadata } = await this.moveAssets(
|
|
34690
34738
|
{
|
|
34691
34739
|
to: Protocols.VAULT.name,
|
|
34692
34740
|
from: Protocols.EXTENDED.name,
|
|
@@ -34696,14 +34744,21 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34696
34744
|
vesuAdapter
|
|
34697
34745
|
);
|
|
34698
34746
|
if (extendedStatus) {
|
|
34699
|
-
|
|
34747
|
+
transactionResults.push({
|
|
34748
|
+
status: extendedStatus,
|
|
34749
|
+
calls: extendedCalls,
|
|
34750
|
+
transactionMetadata: {
|
|
34751
|
+
...extendedTransactionMetadata,
|
|
34752
|
+
transactionType: "DEPOSIT"
|
|
34753
|
+
}
|
|
34754
|
+
});
|
|
34700
34755
|
} else {
|
|
34701
34756
|
logger.error(`Failed to withdraw from extended - operation returned false status`);
|
|
34702
|
-
return [];
|
|
34757
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: extendedAmountDifferenceAbs }, "NONE")];
|
|
34703
34758
|
}
|
|
34704
34759
|
} catch (err) {
|
|
34705
34760
|
logger.error(`Failed moving assets from extended to vault: ${err}`);
|
|
34706
|
-
return [];
|
|
34761
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: extendedAmountDifferenceAbs }, "NONE")];
|
|
34707
34762
|
}
|
|
34708
34763
|
}
|
|
34709
34764
|
}
|
|
@@ -34714,7 +34769,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34714
34769
|
);
|
|
34715
34770
|
} else {
|
|
34716
34771
|
try {
|
|
34717
|
-
const { calls: vesuCalls, status: vesuStatus } = await this.moveAssets(
|
|
34772
|
+
const { calls: vesuCalls, status: vesuStatus, transactionMetadata: vesuTransactionMetadata } = await this.moveAssets(
|
|
34718
34773
|
{
|
|
34719
34774
|
to: Protocols.VAULT.name,
|
|
34720
34775
|
from: Protocols.EXTENDED.name,
|
|
@@ -34725,31 +34780,54 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34725
34780
|
);
|
|
34726
34781
|
if (!vesuStatus) {
|
|
34727
34782
|
logger.error(`Failed to move assets to vesu - operation returned false status`);
|
|
34728
|
-
return [];
|
|
34783
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: vesuAmountDifference }, "NONE")];
|
|
34729
34784
|
}
|
|
34730
|
-
|
|
34785
|
+
transactionResults.push({
|
|
34786
|
+
status: vesuStatus,
|
|
34787
|
+
calls: vesuCalls,
|
|
34788
|
+
transactionMetadata: {
|
|
34789
|
+
...vesuTransactionMetadata,
|
|
34790
|
+
transactionType: "DEPOSIT"
|
|
34791
|
+
}
|
|
34792
|
+
});
|
|
34731
34793
|
} catch (err) {
|
|
34732
34794
|
logger.error(`Failed moving assets to vault: ${err}`);
|
|
34733
|
-
return [];
|
|
34795
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: vesuAmountDifference }, "NONE")];
|
|
34734
34796
|
}
|
|
34735
34797
|
}
|
|
34736
34798
|
}
|
|
34737
|
-
return
|
|
34799
|
+
return transactionResults;
|
|
34738
34800
|
} catch (err) {
|
|
34739
34801
|
logger.error(`Failed moving assets to vesu: ${err}`);
|
|
34740
|
-
return [];
|
|
34802
|
+
return [this.createTransactionResult([], false, { from: Protocols.EXTENDED.name, to: Protocols.VAULT.name, amount: new Web3Number(0, USDC_TOKEN_DECIMALS) }, "NONE")];
|
|
34741
34803
|
}
|
|
34742
34804
|
}
|
|
34805
|
+
/**
|
|
34806
|
+
* Helper method to create transaction result with metadata
|
|
34807
|
+
*/
|
|
34808
|
+
createTransactionResult(calls, status, params, transactionType) {
|
|
34809
|
+
if (status) {
|
|
34810
|
+
return {
|
|
34811
|
+
calls,
|
|
34812
|
+
status,
|
|
34813
|
+
transactionMetadata: {
|
|
34814
|
+
protocolFrom: params.from,
|
|
34815
|
+
protocolTo: params.to,
|
|
34816
|
+
transactionType,
|
|
34817
|
+
usdAmount: params.amount.abs().toFixed(),
|
|
34818
|
+
status: "PENDING"
|
|
34819
|
+
}
|
|
34820
|
+
};
|
|
34821
|
+
}
|
|
34822
|
+
return { calls: [], status: false, transactionMetadata: { protocolFrom: "", protocolTo: "", transactionType: "DEPOSIT", usdAmount: "0", status: "FAILED" } };
|
|
34823
|
+
}
|
|
34743
34824
|
async moveAssets(params, extendedAdapter, vesuAdapter) {
|
|
34744
34825
|
try {
|
|
34745
34826
|
if (params.amount.lessThanOrEqualTo(0)) {
|
|
34746
34827
|
logger.error(
|
|
34747
34828
|
`Invalid amount for moveAssets: ${params.amount.toNumber()}. Amount must be positive.`
|
|
34748
34829
|
);
|
|
34749
|
-
return
|
|
34750
|
-
calls: [],
|
|
34751
|
-
status: false
|
|
34752
|
-
};
|
|
34830
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34753
34831
|
}
|
|
34754
34832
|
const amountAbs = params.amount.abs();
|
|
34755
34833
|
if (params.from === Protocols.EXTENDED.name || params.to === Protocols.EXTENDED.name) {
|
|
@@ -34757,10 +34835,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34757
34835
|
logger.warn(
|
|
34758
34836
|
`Amount ${amountAbs.toNumber()} is below minimum Extended movement amount ${extendedAdapter.minimumExtendedMovementAmount}. Skipping operation.`
|
|
34759
34837
|
);
|
|
34760
|
-
return
|
|
34761
|
-
calls: [],
|
|
34762
|
-
status: false
|
|
34763
|
-
};
|
|
34838
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34764
34839
|
}
|
|
34765
34840
|
}
|
|
34766
34841
|
if (params.from === Protocols.VESU.name || params.to === Protocols.VESU.name) {
|
|
@@ -34768,19 +34843,13 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34768
34843
|
logger.warn(
|
|
34769
34844
|
`Amount ${amountAbs.toNumber()} is below minimum Vesu movement amount ${vesuAdapter.minimumVesuMovementAmount}. Skipping operation.`
|
|
34770
34845
|
);
|
|
34771
|
-
return
|
|
34772
|
-
calls: [],
|
|
34773
|
-
status: false
|
|
34774
|
-
};
|
|
34846
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34775
34847
|
}
|
|
34776
34848
|
}
|
|
34777
34849
|
const avnuAdapter = await this.getAvnuAdapter();
|
|
34778
34850
|
if (!avnuAdapter) {
|
|
34779
34851
|
logger.error(`avnu adapter not found: ${avnuAdapter}`);
|
|
34780
|
-
return
|
|
34781
|
-
calls: [],
|
|
34782
|
-
status: false
|
|
34783
|
-
};
|
|
34852
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34784
34853
|
}
|
|
34785
34854
|
logger.info(`moveAssets params, ${JSON.stringify(params)}`);
|
|
34786
34855
|
const collateralToken = vesuAdapter.config.supportedPositions[0].asset;
|
|
@@ -34799,19 +34868,13 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34799
34868
|
await proofsInfo.callConstructor({ amount: params.amount })
|
|
34800
34869
|
);
|
|
34801
34870
|
calls.push(call);
|
|
34802
|
-
return
|
|
34803
|
-
calls: [call],
|
|
34804
|
-
status: true
|
|
34805
|
-
};
|
|
34871
|
+
return this.createTransactionResult(calls, true, params, "DEPOSIT");
|
|
34806
34872
|
} else if (params.to === Protocols.VAULT.name && params.from === Protocols.EXTENDED.name) {
|
|
34807
34873
|
const extendedLeverage = calculateExtendedLevergae();
|
|
34808
34874
|
const extendedHoldings = await extendedAdapter.getExtendedDepositAmount();
|
|
34809
34875
|
if (!extendedHoldings) {
|
|
34810
34876
|
logger.error(`error getting extended holdings: ${extendedHoldings}`);
|
|
34811
|
-
return
|
|
34812
|
-
calls: [],
|
|
34813
|
-
status: false
|
|
34814
|
-
};
|
|
34877
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34815
34878
|
}
|
|
34816
34879
|
const extendedHoldingAmount = new Web3Number(
|
|
34817
34880
|
extendedHoldings.availableForWithdrawal,
|
|
@@ -34838,36 +34901,36 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34838
34901
|
const updatedHoldings = await extendedAdapter.getExtendedDepositAmount();
|
|
34839
34902
|
if (!updatedHoldings || new Web3Number(updatedHoldings.availableForWithdrawal, USDC_TOKEN_DECIMALS).lessThan(params.amount.abs())) {
|
|
34840
34903
|
logger.error(`Insufficient balance after opening position. Available: ${updatedHoldings?.availableForWithdrawal}, Needed: ${params.amount.abs()}`);
|
|
34841
|
-
return
|
|
34904
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34842
34905
|
}
|
|
34843
34906
|
}
|
|
34844
|
-
const
|
|
34845
|
-
|
|
34907
|
+
const {
|
|
34908
|
+
status: withdrawalFromExtendedStatus,
|
|
34909
|
+
receivedTxnHash: withdrawalFromExtendedTxnHash
|
|
34910
|
+
} = await extendedAdapter.withdrawFromExtended(params.amount);
|
|
34911
|
+
logger.info(`withdrawalFromExtendedStatus: ${withdrawalFromExtendedStatus}, withdrawalFromExtendedTxnHash: ${withdrawalFromExtendedTxnHash}`);
|
|
34912
|
+
if (withdrawalFromExtendedStatus && withdrawalFromExtendedTxnHash) {
|
|
34846
34913
|
const extendedHoldings2 = await extendedAdapter.getExtendedDepositAmount();
|
|
34847
34914
|
logger.info(`extendedHoldings after withdrawal ${extendedHoldings2?.availableForWithdrawal}`);
|
|
34848
34915
|
await new Promise((resolve) => setTimeout(resolve, 5e3));
|
|
34849
|
-
const calls = await this.moveAssetsToVaultAllocator(params.amount, extendedAdapter);
|
|
34850
|
-
if (calls.length > 0) {
|
|
34851
|
-
return
|
|
34852
|
-
|
|
34853
|
-
|
|
34854
|
-
};
|
|
34916
|
+
const { calls, status } = await this.moveAssetsToVaultAllocator(params.amount, extendedAdapter);
|
|
34917
|
+
if (calls.length > 0 && status) {
|
|
34918
|
+
return this.createTransactionResult(calls, true, params, "WITHDRAWAL");
|
|
34919
|
+
} else {
|
|
34920
|
+
return this.createTransactionResult([], true, params, "WITHDRAWAL");
|
|
34855
34921
|
}
|
|
34922
|
+
} else if (withdrawalFromExtendedStatus && !withdrawalFromExtendedTxnHash) {
|
|
34923
|
+
logger.error("withdrawal from extended successful, but funds didn't get transferred to the wallet");
|
|
34924
|
+
return this.createTransactionResult([], true, params, "WITHDRAWAL");
|
|
34856
34925
|
} else {
|
|
34857
34926
|
logger.error("withdrawal from extended failed");
|
|
34858
|
-
return
|
|
34859
|
-
calls: [],
|
|
34860
|
-
status: false
|
|
34861
|
-
};
|
|
34927
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34862
34928
|
}
|
|
34863
34929
|
} else if (params.to === Protocols.VAULT.name && params.from === Protocols.VESU.name) {
|
|
34864
34930
|
const isPriceDifferenceBetweenAvnuAndExtended = await this.checkPriceDifferenceBetweenAvnuAndExtended(extendedAdapter, vesuAdapter, avnuAdapter, "close" /* CLOSE */);
|
|
34865
34931
|
if (!isPriceDifferenceBetweenAvnuAndExtended) {
|
|
34866
34932
|
logger.warn(`price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`);
|
|
34867
|
-
return
|
|
34868
|
-
calls: [],
|
|
34869
|
-
status: false
|
|
34870
|
-
};
|
|
34933
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34871
34934
|
}
|
|
34872
34935
|
const vesuAmountInBTC = new Web3Number(
|
|
34873
34936
|
params.amount.dividedBy(collateralPrice.price).toFixed(WBTC_TOKEN_DECIMALS),
|
|
@@ -34888,18 +34951,12 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34888
34951
|
await swapProofsInfo.callConstructor({ amount: vesuAmountInBTC })
|
|
34889
34952
|
);
|
|
34890
34953
|
calls.push(swapCall);
|
|
34891
|
-
return
|
|
34892
|
-
calls,
|
|
34893
|
-
status: true
|
|
34894
|
-
};
|
|
34954
|
+
return this.createTransactionResult(calls, true, params, "WITHDRAWAL");
|
|
34895
34955
|
} else if (params.to === Protocols.EXTENDED.name && params.from === Protocols.VESU.name) {
|
|
34896
34956
|
const isPriceDifferenceBetweenAvnuAndExtended = await this.checkPriceDifferenceBetweenAvnuAndExtended(extendedAdapter, vesuAdapter, avnuAdapter, "close" /* CLOSE */);
|
|
34897
34957
|
if (!isPriceDifferenceBetweenAvnuAndExtended) {
|
|
34898
34958
|
logger.warn(`price difference between avnu and extended doesn't fit the range for close position, ${avnuAdapter.config.maximumExtendedPriceDifferenceForSwapClosing}`);
|
|
34899
|
-
return
|
|
34900
|
-
calls: [],
|
|
34901
|
-
status: false
|
|
34902
|
-
};
|
|
34959
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34903
34960
|
}
|
|
34904
34961
|
const vesuAmountInBTC = new Web3Number(
|
|
34905
34962
|
params.amount.dividedBy(collateralPrice.price).toNumber(),
|
|
@@ -34930,127 +34987,21 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
34930
34987
|
await proofsInfoDeposit.callConstructor({ amount: params.amount })
|
|
34931
34988
|
);
|
|
34932
34989
|
calls.push(callDeposit);
|
|
34933
|
-
return
|
|
34934
|
-
calls,
|
|
34935
|
-
status: true
|
|
34936
|
-
};
|
|
34990
|
+
return this.createTransactionResult(calls, true, params, "DEPOSIT");
|
|
34937
34991
|
}
|
|
34938
|
-
|
|
34939
|
-
|
|
34940
|
-
status: false
|
|
34941
|
-
};
|
|
34992
|
+
logger.error(`Unsupported assets movement: ${params.from} to ${params.to}`);
|
|
34993
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34942
34994
|
} catch (err) {
|
|
34943
34995
|
logger.error(`error moving assets: ${err}`);
|
|
34944
|
-
return
|
|
34945
|
-
calls: [],
|
|
34946
|
-
status: false
|
|
34947
|
-
};
|
|
34996
|
+
return this.createTransactionResult([], false, params, "NONE");
|
|
34948
34997
|
}
|
|
34949
34998
|
}
|
|
34950
34999
|
async handleDeposit() {
|
|
34951
35000
|
try {
|
|
34952
|
-
|
|
34953
|
-
const extendedAdapter = await this.getExtendedAdapter();
|
|
34954
|
-
const avnuAdapter = await this.getAvnuAdapter();
|
|
34955
|
-
if (!vesuAdapter || !extendedAdapter || !extendedAdapter.client || !avnuAdapter) {
|
|
34956
|
-
logger.error(
|
|
34957
|
-
"vesu or extended adapter not found",
|
|
34958
|
-
vesuAdapter,
|
|
34959
|
-
extendedAdapter
|
|
34960
|
-
);
|
|
34961
|
-
return {
|
|
34962
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
34963
|
-
calls: []
|
|
34964
|
-
};
|
|
34965
|
-
}
|
|
34966
|
-
const extendedLeverage = calculateExtendedLevergae();
|
|
34967
|
-
const isPriceDifferenceBetweenAvnuAndExtended = await this.checkPriceDifferenceBetweenAvnuAndExtended(extendedAdapter, vesuAdapter, avnuAdapter, "open" /* OPEN */);
|
|
34968
|
-
if (!isPriceDifferenceBetweenAvnuAndExtended) {
|
|
34969
|
-
logger.error("price difference between avnu and extended doesn't fit the range");
|
|
34970
|
-
return {
|
|
34971
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
34972
|
-
calls: []
|
|
34973
|
-
};
|
|
34974
|
-
}
|
|
34975
|
-
const position = await extendedAdapter.getAllOpenPositions();
|
|
34976
|
-
if (!position) {
|
|
34977
|
-
logger.error("error getting extended position", position);
|
|
34978
|
-
return {
|
|
34979
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
34980
|
-
calls: []
|
|
34981
|
-
};
|
|
34982
|
-
}
|
|
34983
|
-
const extendedPositionValue = position.length > 0 ? parseFloat(position[0].value) : 0;
|
|
34984
|
-
const BUFFER_AMOUNT_IN_AVAILABLE_FOR_TRADE = BUFFER_USDC_IN_WITHDRAWAL;
|
|
34985
|
-
const extendedHoldings = await extendedAdapter.getExtendedDepositAmount();
|
|
34986
|
-
if (!extendedHoldings) {
|
|
34987
|
-
logger.error(`error getting extended holdings: ${extendedHoldings}`);
|
|
34988
|
-
return {
|
|
34989
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
34990
|
-
calls: []
|
|
34991
|
-
};
|
|
34992
|
-
}
|
|
34993
|
-
const extendedHoldingAmount = new Web3Number(
|
|
34994
|
-
extendedHoldings.availableForWithdrawal,
|
|
34995
|
-
USDC_TOKEN_DECIMALS
|
|
34996
|
-
);
|
|
34997
|
-
const {
|
|
34998
|
-
collateralTokenAmount
|
|
34999
|
-
} = await vesuAdapter.vesuAdapter.getAssetPrices();
|
|
35000
|
-
const { collateralPrice } = await this.getAssetPrices();
|
|
35001
|
-
const { vesuAmountInBTC, extendedAmountInBTC } = calculateVesUPositionSizeGivenExtended(
|
|
35002
|
-
extendedPositionValue,
|
|
35003
|
-
extendedHoldingAmount.minus(BUFFER_AMOUNT_IN_AVAILABLE_FOR_TRADE),
|
|
35004
|
-
collateralTokenAmount,
|
|
35005
|
-
collateralPrice.price
|
|
35006
|
-
);
|
|
35007
|
-
logger.info(`vesuAmountInBTC ${vesuAmountInBTC}, extendedAmountInBTC ${extendedAmountInBTC}`);
|
|
35008
|
-
let calls = [];
|
|
35009
|
-
if (vesuAmountInBTC.greaterThan(MINIMUM_EXTENDED_POSITION_SIZE)) {
|
|
35010
|
-
const proofsInfo = vesuAdapter.getProofs(true, this.getMerkleTree());
|
|
35011
|
-
const proofGroups = proofsInfo.proofs;
|
|
35012
|
-
const call = this.getManageCall(
|
|
35013
|
-
proofGroups,
|
|
35014
|
-
await proofsInfo.callConstructor({
|
|
35015
|
-
amount: vesuAmountInBTC
|
|
35016
|
-
})
|
|
35017
|
-
);
|
|
35018
|
-
const { amount: wbtcAmountInVaultAllocator } = await this.getUnusedBalanceWBTC();
|
|
35019
|
-
if (wbtcAmountInVaultAllocator.lessThan(vesuAmountInBTC)) {
|
|
35020
|
-
const swapProofsInfo = avnuAdapter.getProofs(true, this.getMerkleTree());
|
|
35021
|
-
const swapProofGroups = swapProofsInfo.proofs;
|
|
35022
|
-
const swapCall = this.getManageCall(
|
|
35023
|
-
swapProofGroups,
|
|
35024
|
-
await swapProofsInfo.callConstructor({
|
|
35025
|
-
amount: vesuAmountInBTC
|
|
35026
|
-
})
|
|
35027
|
-
);
|
|
35028
|
-
calls.push(swapCall);
|
|
35029
|
-
}
|
|
35030
|
-
calls.push(call);
|
|
35031
|
-
}
|
|
35032
|
-
const shortPosition = extendedAmountInBTC.multipliedBy(3).abs().greaterThan(MINIMUM_EXTENDED_POSITION_SIZE) ? await extendedAdapter.createOrder(
|
|
35033
|
-
extendedLeverage.toString(),
|
|
35034
|
-
extendedAmountInBTC.toNumber(),
|
|
35035
|
-
"SELL" /* SELL */
|
|
35036
|
-
) : null;
|
|
35037
|
-
if (!shortPosition && extendedAmountInBTC.multipliedBy(3).abs().greaterThan(MINIMUM_EXTENDED_POSITION_SIZE)) {
|
|
35038
|
-
logger.error(`error creating short position thus no position to be opened on vesu: ${shortPosition}`);
|
|
35039
|
-
return {
|
|
35040
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
35041
|
-
calls: []
|
|
35042
|
-
};
|
|
35043
|
-
}
|
|
35044
|
-
return {
|
|
35045
|
-
extendedAmountInBTC,
|
|
35046
|
-
calls
|
|
35047
|
-
};
|
|
35001
|
+
return this.createTransactionResult([], false, { from: Protocols.VAULT.name, to: Protocols.VAULT.name, amount: new Web3Number(0, 0) }, "NONE");
|
|
35048
35002
|
} catch (err) {
|
|
35049
35003
|
logger.error(`error handling deposit: ${err}`);
|
|
35050
|
-
return {
|
|
35051
|
-
extendedAmountInBTC: new Web3Number(0, 0),
|
|
35052
|
-
calls: []
|
|
35053
|
-
};
|
|
35004
|
+
return this.createTransactionResult([], false, { from: Protocols.VAULT.name, to: Protocols.VAULT.name, amount: new Web3Number(0, 0) }, "NONE");
|
|
35054
35005
|
}
|
|
35055
35006
|
}
|
|
35056
35007
|
async checkPriceDifferenceBetweenAvnuAndExtended(extendedAdapter, vesuAdapter, avnuAdapter, positionType) {
|
|
@@ -35095,12 +35046,8 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35095
35046
|
const withdrawCall2 = await this.getBringLiquidityCall({
|
|
35096
35047
|
amount: usdcBalanceVaultAllocator.amount
|
|
35097
35048
|
});
|
|
35098
|
-
logger.info("withdraw call", withdrawCall2);
|
|
35099
35049
|
calls.push(withdrawCall2);
|
|
35100
|
-
return {
|
|
35101
|
-
calls,
|
|
35102
|
-
status: true
|
|
35103
|
-
};
|
|
35050
|
+
return [this.createTransactionResult(calls, true, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "WITHDRAWAL")];
|
|
35104
35051
|
}
|
|
35105
35052
|
const vesuAdapter = await this.getVesuAdapter();
|
|
35106
35053
|
const extendedAdapter = await this.getExtendedAdapter();
|
|
@@ -35109,11 +35056,9 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35109
35056
|
logger.error(
|
|
35110
35057
|
`vesu or extended adapter not found: vesuAdapter=${vesuAdapter}, extendedAdapter=${extendedAdapter}`
|
|
35111
35058
|
);
|
|
35112
|
-
return {
|
|
35113
|
-
calls,
|
|
35114
|
-
status
|
|
35115
|
-
};
|
|
35059
|
+
return [this.createTransactionResult(calls, status, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "NONE")];
|
|
35116
35060
|
}
|
|
35061
|
+
let transactionResults = [];
|
|
35117
35062
|
const { collateralTokenAmount } = await vesuAdapter.vesuAdapter.getAssetPrices();
|
|
35118
35063
|
const {
|
|
35119
35064
|
collateralPrice
|
|
@@ -35122,10 +35067,7 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35122
35067
|
if (!extendedPositon) {
|
|
35123
35068
|
status = false;
|
|
35124
35069
|
logger.error("error getting extended position", extendedPositon);
|
|
35125
|
-
return {
|
|
35126
|
-
calls,
|
|
35127
|
-
status
|
|
35128
|
-
};
|
|
35070
|
+
return [this.createTransactionResult(calls, status, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "NONE")];
|
|
35129
35071
|
}
|
|
35130
35072
|
const amountDistributionForWithdrawal = await calculateAmountDistributionForWithdrawal(
|
|
35131
35073
|
usdcBalanceDifference,
|
|
@@ -35138,14 +35080,11 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35138
35080
|
logger.error(
|
|
35139
35081
|
`error calculating amount distribution for withdrawal: ${amountDistributionForWithdrawal}`
|
|
35140
35082
|
);
|
|
35141
|
-
return {
|
|
35142
|
-
calls,
|
|
35143
|
-
status
|
|
35144
|
-
};
|
|
35083
|
+
return [this.createTransactionResult(calls, status, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "NONE")];
|
|
35145
35084
|
}
|
|
35146
35085
|
const { vesu_amount, extended_amount } = amountDistributionForWithdrawal;
|
|
35147
35086
|
if (status && vesu_amount.greaterThan(0)) {
|
|
35148
|
-
const { calls: vesuCalls, status: vesuStatus } = await this.moveAssets(
|
|
35087
|
+
const { calls: vesuCalls, status: vesuStatus, transactionMetadata: vesuTransactionMetadata } = await this.moveAssets(
|
|
35149
35088
|
{
|
|
35150
35089
|
amount: vesu_amount,
|
|
35151
35090
|
from: Protocols.VESU.name,
|
|
@@ -35155,10 +35094,14 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35155
35094
|
vesuAdapter
|
|
35156
35095
|
);
|
|
35157
35096
|
status = vesuStatus;
|
|
35158
|
-
|
|
35097
|
+
transactionResults.push({
|
|
35098
|
+
status: vesuStatus,
|
|
35099
|
+
calls: vesuCalls,
|
|
35100
|
+
transactionMetadata: vesuTransactionMetadata
|
|
35101
|
+
});
|
|
35159
35102
|
}
|
|
35160
35103
|
if (status && extended_amount.greaterThan(0)) {
|
|
35161
|
-
const { calls: extendedCalls, status: extendedStatus } = await this.moveAssets(
|
|
35104
|
+
const { calls: extendedCalls, status: extendedStatus, transactionMetadata: extendedTransactionMetadata } = await this.moveAssets(
|
|
35162
35105
|
{
|
|
35163
35106
|
amount: extended_amount,
|
|
35164
35107
|
from: Protocols.EXTENDED.name,
|
|
@@ -35169,30 +35112,35 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35169
35112
|
);
|
|
35170
35113
|
status = extendedStatus;
|
|
35171
35114
|
if (status) {
|
|
35172
|
-
|
|
35115
|
+
transactionResults.push({
|
|
35116
|
+
status: extendedStatus,
|
|
35117
|
+
calls: extendedCalls,
|
|
35118
|
+
transactionMetadata: extendedTransactionMetadata
|
|
35119
|
+
});
|
|
35173
35120
|
} else {
|
|
35174
35121
|
logger.error("error moving assets to vault: extendedStatus: ${extendedStatus}");
|
|
35175
|
-
return {
|
|
35176
|
-
calls: [],
|
|
35177
|
-
status
|
|
35178
|
-
};
|
|
35122
|
+
return [this.createTransactionResult([], status, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "NONE")];
|
|
35179
35123
|
}
|
|
35180
35124
|
}
|
|
35181
35125
|
const withdrawCall = await this.getBringLiquidityCall({
|
|
35182
35126
|
amount
|
|
35183
35127
|
});
|
|
35184
35128
|
logger.info("withdraw call", withdrawCall);
|
|
35185
|
-
|
|
35186
|
-
|
|
35187
|
-
calls,
|
|
35188
|
-
|
|
35189
|
-
|
|
35129
|
+
transactionResults.push({
|
|
35130
|
+
status,
|
|
35131
|
+
calls: [withdrawCall],
|
|
35132
|
+
transactionMetadata: {
|
|
35133
|
+
protocolFrom: Protocols.VAULT.name,
|
|
35134
|
+
protocolTo: Protocols.NONE.name,
|
|
35135
|
+
transactionType: "WITHDRAWAL",
|
|
35136
|
+
usdAmount: amount.toFixed(),
|
|
35137
|
+
status: "PENDING"
|
|
35138
|
+
}
|
|
35139
|
+
});
|
|
35140
|
+
return transactionResults;
|
|
35190
35141
|
} catch (err) {
|
|
35191
35142
|
logger.error(`error handling withdrawal: ${err}`);
|
|
35192
|
-
return {
|
|
35193
|
-
calls: [],
|
|
35194
|
-
status: false
|
|
35195
|
-
};
|
|
35143
|
+
return [this.createTransactionResult([], false, { from: Protocols.VAULT.name, to: Protocols.NONE.name, amount }, "NONE")];
|
|
35196
35144
|
}
|
|
35197
35145
|
}
|
|
35198
35146
|
async getAUM() {
|
|
@@ -35239,6 +35187,36 @@ var VesuExtendedMultiplierStrategy = class _VesuExtendedMultiplierStrategy exten
|
|
|
35239
35187
|
splits: [realAUM, estimatedAUMDelta]
|
|
35240
35188
|
};
|
|
35241
35189
|
}
|
|
35190
|
+
async processTransactionDataFromSDK(txnData) {
|
|
35191
|
+
try {
|
|
35192
|
+
const txnsToBeExecuted = txnData.filter((txn) => {
|
|
35193
|
+
return txn.transactionMetadata.transactionType !== "NONE" && txn.transactionMetadata.protocolFrom !== "" && txn.transactionMetadata.protocolTo !== "";
|
|
35194
|
+
});
|
|
35195
|
+
const callsToBeExecutedFinal = txnsToBeExecuted.flatMap((txn) => txn.calls);
|
|
35196
|
+
const txnMetadata = txnsToBeExecuted.map((txn) => txn.transactionMetadata);
|
|
35197
|
+
return { callsToBeExecutedFinal, txnMetadata };
|
|
35198
|
+
} catch (err) {
|
|
35199
|
+
logger.error(`error processing transaction data from SDK: ${err}`);
|
|
35200
|
+
return null;
|
|
35201
|
+
}
|
|
35202
|
+
}
|
|
35203
|
+
async processTransactionMetadata(txnMetadata, extendedIntentFulfilled) {
|
|
35204
|
+
try {
|
|
35205
|
+
const txnMetadataNew = txnMetadata.map((txn) => {
|
|
35206
|
+
const isExtendedProtocol = txn.protocolFrom === Protocols.EXTENDED.name || txn.protocolTo === Protocols.EXTENDED.name;
|
|
35207
|
+
if (isExtendedProtocol) {
|
|
35208
|
+
txn.status = extendedIntentFulfilled ? "COMPLETED" : "PENDING";
|
|
35209
|
+
} else {
|
|
35210
|
+
txn.status = "COMPLETED";
|
|
35211
|
+
}
|
|
35212
|
+
return txn;
|
|
35213
|
+
});
|
|
35214
|
+
return txnMetadataNew;
|
|
35215
|
+
} catch (err) {
|
|
35216
|
+
logger.error(`error processing transaction data from SDK: ${err}`);
|
|
35217
|
+
return null;
|
|
35218
|
+
}
|
|
35219
|
+
}
|
|
35242
35220
|
};
|
|
35243
35221
|
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1, extendedBackendUrl, extendedApiKey, vaultIdExtended, minimumExtendedMovementAmount, minimumVesuMovementAmount, minimumExtendedRetriesDelayForOrderStatus, minimumExtendedPriceDifferenceForSwapOpen, maximumExtendedPriceDifferenceForSwapClosing) {
|
|
35244
35222
|
vaultSettings.leafAdapters = [];
|