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