defi-dash-sdk 0.1.3 → 0.1.4
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/LICENSE +7 -0
- package/README.md +199 -97
- package/dist/__tests__/deleverageEstimate.unit.test.d.ts +10 -0
- package/dist/__tests__/deleverageEstimate.unit.test.d.ts.map +1 -0
- package/dist/__tests__/deleverageEstimate.unit.test.js +116 -0
- package/dist/__tests__/deleverageEstimate.unit.test.js.map +1 -0
- package/dist/__tests__/findBestLeverageRoute.test.d.ts +12 -0
- package/dist/__tests__/findBestLeverageRoute.test.d.ts.map +1 -0
- package/dist/__tests__/findBestLeverageRoute.test.js +177 -0
- package/dist/__tests__/findBestLeverageRoute.test.js.map +1 -0
- package/dist/__tests__/getAssetApy.test.d.ts +2 -0
- package/dist/__tests__/getAssetApy.test.d.ts.map +1 -0
- package/dist/__tests__/getAssetApy.test.js +133 -0
- package/dist/__tests__/getAssetApy.test.js.map +1 -0
- package/dist/__tests__/getAssetRiskParams.test.d.ts +11 -0
- package/dist/__tests__/getAssetRiskParams.test.d.ts.map +1 -0
- package/dist/__tests__/getAssetRiskParams.test.js +183 -0
- package/dist/__tests__/getAssetRiskParams.test.js.map +1 -0
- package/dist/__tests__/internal.getAssetApy.test.d.ts +2 -0
- package/dist/__tests__/internal.getAssetApy.test.d.ts.map +1 -0
- package/dist/__tests__/internal.getAssetApy.test.js +140 -0
- package/dist/__tests__/internal.getAssetApy.test.js.map +1 -0
- package/dist/__tests__/internal.getAssetRiskParams.test.d.ts +22 -0
- package/dist/__tests__/internal.getAssetRiskParams.test.d.ts.map +1 -0
- package/dist/__tests__/internal.getAssetRiskParams.test.js +194 -0
- package/dist/__tests__/internal.getAssetRiskParams.test.js.map +1 -0
- package/dist/__tests__/internal.getPosition.test.d.ts +22 -0
- package/dist/__tests__/internal.getPosition.test.d.ts.map +1 -0
- package/dist/__tests__/internal.getPosition.test.js +153 -0
- package/dist/__tests__/internal.getPosition.test.js.map +1 -0
- package/dist/__tests__/leveragePreview.unit.test.d.ts +10 -0
- package/dist/__tests__/leveragePreview.unit.test.d.ts.map +1 -0
- package/dist/__tests__/leveragePreview.unit.test.js +168 -0
- package/dist/__tests__/leveragePreview.unit.test.js.map +1 -0
- package/dist/__tests__/leverageRoute.unit.test.d.ts +10 -0
- package/dist/__tests__/leverageRoute.unit.test.d.ts.map +1 -0
- package/dist/__tests__/leverageRoute.unit.test.js +159 -0
- package/dist/__tests__/leverageRoute.unit.test.js.map +1 -0
- package/dist/__tests__/previewLeverage.test.d.ts +13 -0
- package/dist/__tests__/previewLeverage.test.d.ts.map +1 -0
- package/dist/__tests__/previewLeverage.test.js +217 -0
- package/dist/__tests__/previewLeverage.test.js.map +1 -0
- package/dist/__tests__/sdk.bestRoute.test.d.ts +22 -0
- package/dist/__tests__/sdk.bestRoute.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.bestRoute.test.js +186 -0
- package/dist/__tests__/sdk.bestRoute.test.js.map +1 -0
- package/dist/__tests__/sdk.bestRoute.unit.test.d.ts +16 -0
- package/dist/__tests__/sdk.bestRoute.unit.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.bestRoute.unit.test.js +165 -0
- package/dist/__tests__/sdk.bestRoute.unit.test.js.map +1 -0
- package/dist/__tests__/sdk.deleverage.test.d.ts +21 -0
- package/dist/__tests__/sdk.deleverage.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.deleverage.test.js +130 -0
- package/dist/__tests__/sdk.deleverage.test.js.map +1 -0
- package/dist/__tests__/sdk.deleverage.unit.test.d.ts +21 -0
- package/dist/__tests__/sdk.deleverage.unit.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.deleverage.unit.test.js +141 -0
- package/dist/__tests__/sdk.deleverage.unit.test.js.map +1 -0
- package/dist/__tests__/sdk.leverage.test.d.ts +19 -0
- package/dist/__tests__/sdk.leverage.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.leverage.test.js +188 -0
- package/dist/__tests__/sdk.leverage.test.js.map +1 -0
- package/dist/__tests__/sdk.portfolio.test.d.ts +17 -0
- package/dist/__tests__/sdk.portfolio.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.portfolio.test.js +162 -0
- package/dist/__tests__/sdk.portfolio.test.js.map +1 -0
- package/dist/__tests__/sdk.position.test.d.ts +16 -0
- package/dist/__tests__/sdk.position.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.position.test.js +193 -0
- package/dist/__tests__/sdk.position.test.js.map +1 -0
- package/dist/__tests__/sdk.preview.test.d.ts +23 -0
- package/dist/__tests__/sdk.preview.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.preview.test.js +226 -0
- package/dist/__tests__/sdk.preview.test.js.map +1 -0
- package/dist/__tests__/sdk.preview.unit.test.d.ts +18 -0
- package/dist/__tests__/sdk.preview.unit.test.d.ts.map +1 -0
- package/dist/__tests__/sdk.preview.unit.test.js +175 -0
- package/dist/__tests__/sdk.preview.unit.test.js.map +1 -0
- package/dist/__tests__/utils.normalizeCoinType.test.d.ts +7 -0
- package/dist/__tests__/utils.normalizeCoinType.test.d.ts.map +1 -0
- package/dist/__tests__/utils.normalizeCoinType.test.js +42 -0
- package/dist/__tests__/utils.normalizeCoinType.test.js.map +1 -0
- package/dist/index.d.ts +19 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -40
- package/dist/index.js.map +1 -1
- package/dist/protocols/base-adapter.d.ts +42 -75
- package/dist/protocols/base-adapter.d.ts.map +1 -1
- package/dist/protocols/base-adapter.js +34 -77
- package/dist/protocols/base-adapter.js.map +1 -1
- package/dist/protocols/navi/adapter.d.ts +22 -2
- package/dist/protocols/navi/adapter.d.ts.map +1 -1
- package/dist/protocols/navi/adapter.js +145 -11
- package/dist/protocols/navi/adapter.js.map +1 -1
- package/dist/protocols/scallop/adapter.d.ts +26 -6
- package/dist/protocols/scallop/adapter.d.ts.map +1 -1
- package/dist/protocols/scallop/adapter.js +206 -43
- package/dist/protocols/scallop/adapter.js.map +1 -1
- package/dist/protocols/scallop/flash-loan.d.ts +18 -3
- package/dist/protocols/scallop/flash-loan.d.ts.map +1 -1
- package/dist/protocols/scallop/flash-loan.js +79 -20
- package/dist/protocols/scallop/flash-loan.js.map +1 -1
- package/dist/protocols/scallop/types.d.ts.map +1 -1
- package/dist/protocols/scallop/types.js +4 -1
- package/dist/protocols/scallop/types.js.map +1 -1
- package/dist/protocols/suilend/adapter.d.ts +19 -1
- package/dist/protocols/suilend/adapter.d.ts.map +1 -1
- package/dist/protocols/suilend/adapter.js +196 -51
- package/dist/protocols/suilend/adapter.js.map +1 -1
- package/dist/sdk.d.ts +107 -148
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +171 -523
- package/dist/sdk.js.map +1 -1
- package/dist/strategies/common.d.ts +42 -0
- package/dist/strategies/common.d.ts.map +1 -0
- package/dist/strategies/common.js +81 -0
- package/dist/strategies/common.js.map +1 -0
- package/dist/strategies/deleverage.d.ts.map +1 -1
- package/dist/strategies/deleverage.js +44 -62
- package/dist/strategies/deleverage.js.map +1 -1
- package/dist/strategies/index.d.ts +9 -1
- package/dist/strategies/index.d.ts.map +1 -1
- package/dist/strategies/index.js +11 -2
- package/dist/strategies/index.js.map +1 -1
- package/dist/strategies/leverage-preview.d.ts +27 -0
- package/dist/strategies/leverage-preview.d.ts.map +1 -0
- package/dist/strategies/leverage-preview.js +120 -0
- package/dist/strategies/leverage-preview.js.map +1 -0
- package/dist/strategies/leverage-route.d.ts +29 -0
- package/dist/strategies/leverage-route.d.ts.map +1 -0
- package/dist/strategies/leverage-route.js +112 -0
- package/dist/strategies/leverage-route.js.map +1 -0
- package/dist/strategies/leverage.d.ts +4 -44
- package/dist/strategies/leverage.d.ts.map +1 -1
- package/dist/strategies/leverage.js +43 -112
- package/dist/strategies/leverage.js.map +1 -1
- package/dist/strategies/scallop-leverage.d.ts +34 -0
- package/dist/strategies/scallop-leverage.d.ts.map +1 -0
- package/dist/strategies/scallop-leverage.js +143 -0
- package/dist/strategies/scallop-leverage.js.map +1 -0
- package/dist/types/config.d.ts +0 -7
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +9 -1
- package/dist/types/constants.js.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/position.d.ts +7 -3
- package/dist/types/position.d.ts.map +1 -1
- package/dist/types/protocol.d.ts +101 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/strategy.d.ts +82 -38
- package/dist/types/strategy.d.ts.map +1 -1
- package/dist/utils/calculations.d.ts +10 -137
- package/dist/utils/calculations.d.ts.map +1 -1
- package/dist/utils/calculations.js +11 -162
- package/dist/utils/calculations.js.map +1 -1
- package/dist/utils/coin.d.ts +16 -7
- package/dist/utils/coin.d.ts.map +1 -1
- package/dist/utils/coin.js +32 -25
- package/dist/utils/coin.js.map +1 -1
- package/dist/utils/errors.d.ts +0 -18
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +2 -40
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/execution.d.ts +38 -0
- package/dist/utils/execution.d.ts.map +1 -0
- package/dist/utils/execution.js +110 -0
- package/dist/utils/execution.js.map +1 -0
- package/dist/utils/gas.d.ts +0 -37
- package/dist/utils/gas.d.ts.map +1 -1
- package/dist/utils/gas.js +2 -60
- package/dist/utils/gas.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +15 -45
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH;;;;;;;;;;;;GAYG;AACH,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH;;;;;;;;;;;;GAYG;AACH,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AALD,sCAKC;AAED;;GAEG;AACH,MAAa,sBAAuB,SAAQ,aAAa;IACvD;QACE,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACzD,CAAC;CACF;AAJD,wDAIC;AAED;;GAEG;AACH,MAAa,wBAAyB,SAAQ,aAAa;IACzD,YAAY,QAAgB;QAC1B,KAAK,CAAC,aAAa,QAAQ,oBAAoB,CAAC,CAAC;IACnD,CAAC;CACF;AAJD,4DAIC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,aAAa;IAClD,YAAY,KAAa;QACvB,KAAK,CAAC,mBAAmB,KAAK,GAAG,CAAC,CAAC;IACrC,CAAC;CACF;AAJD,8CAIC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,QAAiB;QAC3B,KAAK,CACH,QAAQ;YACN,CAAC,CAAC,wBAAwB,QAAQ,EAAE;YACpC,CAAC,CAAC,mBAAmB,CACxB,CAAC;IACJ,CAAC;CACF;AARD,sDAQC;AAED;;GAEG;AACH,MAAa,WAAY,SAAQ,aAAa;IAC5C;QACE,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACnD,CAAC;CACF;AAJD,kCAIC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,aAAa;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;CACF;AAJD,sDAIC;AAGD;;GAEG;AACH,MAAa,oBAAqB,SAAQ,aAAa;IACrD;QACE,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,oDAIC;AAED;;GAEG;AACH,MAAa,oBAAqB,SAAQ,aAAa;IACrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,uBAAuB,QAAQ,GAAG,CAAC,CAAC;IAC5C,CAAC;CACF;AAJD,oDAIC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DeFi Dash SDK - Transaction Execution Utilities
|
|
3
|
+
*
|
|
4
|
+
* Standalone functions for dry-running and executing Sui transactions
|
|
5
|
+
* with gas optimization.
|
|
6
|
+
*/
|
|
7
|
+
import { SuiClient } from '@mysten/sui/client';
|
|
8
|
+
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
9
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
10
|
+
import { StrategyResult } from '../types';
|
|
11
|
+
/**
|
|
12
|
+
* Dry run a transaction with gas optimization
|
|
13
|
+
*
|
|
14
|
+
* Simulates the transaction and returns estimated gas usage.
|
|
15
|
+
* Does NOT execute the transaction on-chain.
|
|
16
|
+
*
|
|
17
|
+
* @param client - Sui client instance
|
|
18
|
+
* @param tx - Built transaction to simulate
|
|
19
|
+
* @returns Strategy result with gas estimate
|
|
20
|
+
*/
|
|
21
|
+
export declare function dryRunTransaction(client: SuiClient, tx: Transaction): Promise<StrategyResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Execute a transaction with gas optimization (Node.js only)
|
|
24
|
+
*
|
|
25
|
+
* Flow:
|
|
26
|
+
* 1. Check user balance for gas
|
|
27
|
+
* 2. Dryrun with budget to get actual gas usage
|
|
28
|
+
* 3. Calculate optimized budget (actual + 20% buffer)
|
|
29
|
+
* 4. Execute with optimized budget
|
|
30
|
+
*
|
|
31
|
+
* @param client - Sui client instance
|
|
32
|
+
* @param keypair - Ed25519 keypair for signing
|
|
33
|
+
* @param userAddress - User's Sui address
|
|
34
|
+
* @param tx - Built transaction to execute
|
|
35
|
+
* @returns Strategy result with transaction digest and gas used
|
|
36
|
+
*/
|
|
37
|
+
export declare function executeTransaction(client: SuiClient, keypair: Ed25519Keypair, userAddress: string, tx: Transaction): Promise<StrategyResult>;
|
|
38
|
+
//# sourceMappingURL=execution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/utils/execution.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO1C;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,WAAW,GACd,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,WAAW,GACd,OAAO,CAAC,cAAc,CAAC,CAkEzB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* DeFi Dash SDK - Transaction Execution Utilities
|
|
4
|
+
*
|
|
5
|
+
* Standalone functions for dry-running and executing Sui transactions
|
|
6
|
+
* with gas optimization.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.dryRunTransaction = dryRunTransaction;
|
|
10
|
+
exports.executeTransaction = executeTransaction;
|
|
11
|
+
const gas_1 = require("./gas");
|
|
12
|
+
/**
|
|
13
|
+
* Dry run a transaction with gas optimization
|
|
14
|
+
*
|
|
15
|
+
* Simulates the transaction and returns estimated gas usage.
|
|
16
|
+
* Does NOT execute the transaction on-chain.
|
|
17
|
+
*
|
|
18
|
+
* @param client - Sui client instance
|
|
19
|
+
* @param tx - Built transaction to simulate
|
|
20
|
+
* @returns Strategy result with gas estimate
|
|
21
|
+
*/
|
|
22
|
+
async function dryRunTransaction(client, tx) {
|
|
23
|
+
tx.setGasBudget(gas_1.DRYRUN_GAS_BUDGET);
|
|
24
|
+
const result = await client.dryRunTransactionBlock({
|
|
25
|
+
transactionBlock: await tx.build({ client }),
|
|
26
|
+
});
|
|
27
|
+
if (result.effects.status.status === 'success') {
|
|
28
|
+
const actualGas = (0, gas_1.calculateActualGas)(result.effects.gasUsed);
|
|
29
|
+
const optimizedBudget = (0, gas_1.calculateOptimizedBudget)(actualGas);
|
|
30
|
+
return {
|
|
31
|
+
success: true,
|
|
32
|
+
gasUsed: optimizedBudget,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
error: result.effects.status.error || 'Dry run failed',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Execute a transaction with gas optimization (Node.js only)
|
|
42
|
+
*
|
|
43
|
+
* Flow:
|
|
44
|
+
* 1. Check user balance for gas
|
|
45
|
+
* 2. Dryrun with budget to get actual gas usage
|
|
46
|
+
* 3. Calculate optimized budget (actual + 20% buffer)
|
|
47
|
+
* 4. Execute with optimized budget
|
|
48
|
+
*
|
|
49
|
+
* @param client - Sui client instance
|
|
50
|
+
* @param keypair - Ed25519 keypair for signing
|
|
51
|
+
* @param userAddress - User's Sui address
|
|
52
|
+
* @param tx - Built transaction to execute
|
|
53
|
+
* @returns Strategy result with transaction digest and gas used
|
|
54
|
+
*/
|
|
55
|
+
async function executeTransaction(client, keypair, userAddress, tx) {
|
|
56
|
+
// Step 1: Check user's available gas balance
|
|
57
|
+
const balance = await client.getBalance({ owner: userAddress });
|
|
58
|
+
const userBalance = BigInt(balance.totalBalance);
|
|
59
|
+
// Step 2: Set dryrun budget (use available balance or default, whichever is lower)
|
|
60
|
+
const dryrunBudget = userBalance < BigInt(gas_1.DRYRUN_GAS_BUDGET)
|
|
61
|
+
? userBalance
|
|
62
|
+
: BigInt(gas_1.DRYRUN_GAS_BUDGET);
|
|
63
|
+
if (dryrunBudget < 10000000n) {
|
|
64
|
+
return {
|
|
65
|
+
success: false,
|
|
66
|
+
error: `Insufficient balance for gas. Have: ${Number(userBalance) / 1e9} SUI`,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
tx.setGasBudget(dryrunBudget);
|
|
70
|
+
const dryRunResult = await client.dryRunTransactionBlock({
|
|
71
|
+
transactionBlock: await tx.build({ client }),
|
|
72
|
+
});
|
|
73
|
+
if (dryRunResult.effects.status.status !== 'success') {
|
|
74
|
+
return {
|
|
75
|
+
success: false,
|
|
76
|
+
error: `Dry run failed: ${dryRunResult.effects.status.error}`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Step 3: Calculate optimized gas budget (actual + 20% buffer)
|
|
80
|
+
const actualGas = (0, gas_1.calculateActualGas)(dryRunResult.effects.gasUsed);
|
|
81
|
+
const optimizedBudget = (0, gas_1.calculateOptimizedBudget)(actualGas);
|
|
82
|
+
if (userBalance < optimizedBudget) {
|
|
83
|
+
return {
|
|
84
|
+
success: false,
|
|
85
|
+
error: `Insufficient balance for gas. Need: ${Number(optimizedBudget) / 1e9} SUI, Have: ${Number(userBalance) / 1e9} SUI`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
// Step 4: Execute with optimized gas budget
|
|
89
|
+
tx.setGasBudget(optimizedBudget);
|
|
90
|
+
const result = await client.signAndExecuteTransaction({
|
|
91
|
+
signer: keypair,
|
|
92
|
+
transaction: tx,
|
|
93
|
+
options: {
|
|
94
|
+
showEffects: true,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
if (result.effects?.status.status === 'success') {
|
|
98
|
+
return {
|
|
99
|
+
success: true,
|
|
100
|
+
txDigest: result.digest,
|
|
101
|
+
gasUsed: BigInt(result.effects.gasUsed.computationCost),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
success: false,
|
|
106
|
+
txDigest: result.digest,
|
|
107
|
+
error: result.effects?.status.error || 'Execution failed',
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/utils/execution.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/gas.d.ts
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Gas calculation and optimization helpers for Sui transactions.
|
|
5
5
|
*/
|
|
6
|
-
import { SuiClient } from "@mysten/sui/client";
|
|
7
|
-
import { Transaction } from "@mysten/sui/transactions";
|
|
8
6
|
/**
|
|
9
7
|
* Fixed gas budget for dry runs (0.2 SUI - enough for complex leverage operations)
|
|
10
8
|
*/
|
|
@@ -36,39 +34,4 @@ export declare function calculateActualGas(gasUsed: GasUsed): bigint;
|
|
|
36
34
|
* @returns Optimized gas budget with buffer
|
|
37
35
|
*/
|
|
38
36
|
export declare function calculateOptimizedBudget(actualGas: bigint, bufferPercent?: number): bigint;
|
|
39
|
-
/**
|
|
40
|
-
* Result of dry run with gas optimization
|
|
41
|
-
*/
|
|
42
|
-
export interface DryRunResult {
|
|
43
|
-
success: boolean;
|
|
44
|
-
optimizedBudget?: bigint;
|
|
45
|
-
error?: string;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Dry run a transaction and calculate optimized gas budget
|
|
49
|
-
*
|
|
50
|
-
* This function:
|
|
51
|
-
* 1. Sets a large fixed gas budget for dry run
|
|
52
|
-
* 2. Executes dry run simulation
|
|
53
|
-
* 3. Calculates actual gas used
|
|
54
|
-
* 4. Returns optimized budget with buffer
|
|
55
|
-
*
|
|
56
|
-
* @param client - Sui client instance
|
|
57
|
-
* @param tx - Transaction to dry run
|
|
58
|
-
* @param bufferPercent - Gas buffer percentage (default: 20%)
|
|
59
|
-
* @returns Dry run result with optimized budget
|
|
60
|
-
*/
|
|
61
|
-
export declare function dryRunAndOptimizeGas(client: SuiClient, tx: Transaction, bufferPercent?: number): Promise<DryRunResult>;
|
|
62
|
-
/**
|
|
63
|
-
* Check if user has sufficient balance for gas
|
|
64
|
-
*
|
|
65
|
-
* @param client - Sui client instance
|
|
66
|
-
* @param userAddress - User's Sui address
|
|
67
|
-
* @param requiredGas - Required gas amount
|
|
68
|
-
* @returns True if user has sufficient balance
|
|
69
|
-
*/
|
|
70
|
-
export declare function checkGasBalance(client: SuiClient, userAddress: string, requiredGas: bigint): Promise<{
|
|
71
|
-
sufficient: boolean;
|
|
72
|
-
userBalance: bigint;
|
|
73
|
-
}>;
|
|
74
37
|
//# sourceMappingURL=gas.d.ts.map
|
package/dist/utils/gas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH;;GAEG;AACH,eAAO,MAAM,iBAAiB,YAAc,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAM3D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAmC,GACjD,MAAM,CAGR"}
|
package/dist/utils/gas.js
CHANGED
|
@@ -8,8 +8,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.DEFAULT_GAS_BUFFER_PERCENT = exports.DRYRUN_GAS_BUDGET = void 0;
|
|
9
9
|
exports.calculateActualGas = calculateActualGas;
|
|
10
10
|
exports.calculateOptimizedBudget = calculateOptimizedBudget;
|
|
11
|
-
exports.dryRunAndOptimizeGas = dryRunAndOptimizeGas;
|
|
12
|
-
exports.checkGasBalance = checkGasBalance;
|
|
13
11
|
/**
|
|
14
12
|
* Fixed gas budget for dry runs (0.2 SUI - enough for complex leverage operations)
|
|
15
13
|
*/
|
|
@@ -28,7 +26,8 @@ function calculateActualGas(gasUsed) {
|
|
|
28
26
|
const computationCost = BigInt(gasUsed.computationCost);
|
|
29
27
|
const storageCost = BigInt(gasUsed.storageCost);
|
|
30
28
|
const storageRebate = BigInt(gasUsed.storageRebate);
|
|
31
|
-
|
|
29
|
+
const net = computationCost + storageCost - storageRebate;
|
|
30
|
+
return net > 0n ? net : 0n;
|
|
32
31
|
}
|
|
33
32
|
/**
|
|
34
33
|
* Calculate optimized gas budget with buffer
|
|
@@ -41,61 +40,4 @@ function calculateOptimizedBudget(actualGas, bufferPercent = exports.DEFAULT_GAS
|
|
|
41
40
|
const multiplier = BigInt(100 + bufferPercent);
|
|
42
41
|
return (actualGas * multiplier) / 100n;
|
|
43
42
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Dry run a transaction and calculate optimized gas budget
|
|
46
|
-
*
|
|
47
|
-
* This function:
|
|
48
|
-
* 1. Sets a large fixed gas budget for dry run
|
|
49
|
-
* 2. Executes dry run simulation
|
|
50
|
-
* 3. Calculates actual gas used
|
|
51
|
-
* 4. Returns optimized budget with buffer
|
|
52
|
-
*
|
|
53
|
-
* @param client - Sui client instance
|
|
54
|
-
* @param tx - Transaction to dry run
|
|
55
|
-
* @param bufferPercent - Gas buffer percentage (default: 20%)
|
|
56
|
-
* @returns Dry run result with optimized budget
|
|
57
|
-
*/
|
|
58
|
-
async function dryRunAndOptimizeGas(client, tx, bufferPercent = exports.DEFAULT_GAS_BUFFER_PERCENT) {
|
|
59
|
-
// Set fixed budget for dry run
|
|
60
|
-
tx.setGasBudget(exports.DRYRUN_GAS_BUDGET);
|
|
61
|
-
try {
|
|
62
|
-
const result = await client.dryRunTransactionBlock({
|
|
63
|
-
transactionBlock: await tx.build({ client }),
|
|
64
|
-
});
|
|
65
|
-
if (result.effects.status.status !== "success") {
|
|
66
|
-
return {
|
|
67
|
-
success: false,
|
|
68
|
-
error: result.effects.status.error || "Dry run failed",
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
const actualGas = calculateActualGas(result.effects.gasUsed);
|
|
72
|
-
const optimizedBudget = calculateOptimizedBudget(actualGas, bufferPercent);
|
|
73
|
-
return {
|
|
74
|
-
success: true,
|
|
75
|
-
optimizedBudget,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
return {
|
|
80
|
-
success: false,
|
|
81
|
-
error: error instanceof Error ? error.message : "Dry run failed",
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Check if user has sufficient balance for gas
|
|
87
|
-
*
|
|
88
|
-
* @param client - Sui client instance
|
|
89
|
-
* @param userAddress - User's Sui address
|
|
90
|
-
* @param requiredGas - Required gas amount
|
|
91
|
-
* @returns True if user has sufficient balance
|
|
92
|
-
*/
|
|
93
|
-
async function checkGasBalance(client, userAddress, requiredGas) {
|
|
94
|
-
const balance = await client.getBalance({ owner: userAddress });
|
|
95
|
-
const userBalance = BigInt(balance.totalBalance);
|
|
96
|
-
return {
|
|
97
|
-
sufficient: userBalance >= requiredGas,
|
|
98
|
-
userBalance,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
43
|
//# sourceMappingURL=gas.js.map
|
package/dist/utils/gas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA4BH,gDAMC;AASD,4DAMC;AA9CD;;GAEG;AACU,QAAA,iBAAiB,GAAG,SAAW,CAAC;AAE7C;;GAEG;AACU,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAW7C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;IAC1D,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,gBAAwB,kCAA0B;IAElD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;IAC/C,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -22,8 +22,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
23
|
__exportStar(require("./format"), exports);
|
|
24
24
|
__exportStar(require("./coin"), exports);
|
|
25
|
-
__exportStar(require("./logger"), exports);
|
|
26
25
|
__exportStar(require("./calculations"), exports);
|
|
27
26
|
__exportStar(require("./gas"), exports);
|
|
28
27
|
__exportStar(require("./errors"), exports);
|
|
28
|
+
__exportStar(require("./execution"), exports);
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,yCAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,yCAAuB;AACvB,iDAA+B;AAC/B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "defi-dash-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Multi-protocol DeFi SDK for Sui blockchain - leverage, flash loans, and lending strategies",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -10,54 +10,22 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"start": "ts-node src/index.ts",
|
|
12
12
|
"build": "tsc",
|
|
13
|
-
"test": "
|
|
13
|
+
"test": "vitest run",
|
|
14
|
+
"test:watch": "vitest",
|
|
14
15
|
"example:portfolio": "npx ts-node examples/get_portfolio.ts",
|
|
15
16
|
"lint": "eslint src --ext .ts",
|
|
16
17
|
"prepublishOnly": "npm run build",
|
|
17
18
|
"publish:npm": "npm run build && npm publish",
|
|
18
19
|
"publish:dry": "npm run build && npm publish --dry-run",
|
|
19
20
|
"publish:alpha": "npm run build && npm publish --tag alpha",
|
|
20
|
-
"example:leverage": "
|
|
21
|
-
"example:deleverage": "
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"script:scallop-flashloan": "ts-node scripts/scallop/scallop_flash-loan.ts",
|
|
29
|
-
"script:scallop-flashloan-custom": "ts-node scripts/scallop/scallop_flash-loan-custom.ts",
|
|
30
|
-
"script:7k-swap-dryrun": "ts-node scripts/7k/7k_swap_dryrun.ts",
|
|
31
|
-
"script:7k-swap-exec": "ts-node scripts/7k/7k_swap_exec.ts",
|
|
32
|
-
"script:suilend-borrow": "ts-node scripts/suilend/suilend_borrow.ts",
|
|
33
|
-
"script:suilend-deposit": "ts-node scripts/suilend/suilend_deposit.ts",
|
|
34
|
-
"script:suilend-repay": "ts-node scripts/suilend/suilend_repay.ts",
|
|
35
|
-
"script:suilend-withdraw": "ts-node scripts/suilend/suilend_withdraw.ts",
|
|
36
|
-
"script:suilend-leverage": "ts-node scripts/suilend/suilend_leverage_strategy_dryrun.ts",
|
|
37
|
-
"script:suilend-leverage-exec": "ts-node scripts/suilend/suilend_leverage_strategy_exec.ts",
|
|
38
|
-
"script:suilend-deleverage": "ts-node scripts/suilend/suilend_deleverage_strategy_dryrun.ts",
|
|
39
|
-
"script:suilend-deleverage-exec": "ts-node scripts/suilend/suilend_deleverage_strategy_exec.ts",
|
|
40
|
-
"script:suilend-metrics": "ts-node scripts/suilend/suilend_metrics.ts",
|
|
41
|
-
"script:suilend-obligation-dump": "ts-node scripts/suilend/suilend_obligation_dump.ts",
|
|
42
|
-
"script:suilend-save-json": "ts-node scripts/suilend/save_obligation_json.ts",
|
|
43
|
-
"script:suilend-verify-interest-calc": "ts-node scripts/suilend/verify_interest_calc.ts",
|
|
44
|
-
"script:navi-leverage": "ts-node scripts/navi/navi_leverage_strategy_dryrun.ts",
|
|
45
|
-
"script:navi-leverage-exec": "ts-node scripts/navi/navi_leverage_strategy_exec.ts",
|
|
46
|
-
"script:navi-deleverage": "ts-node scripts/navi/navi_deleverage_strategy_dryrun.ts",
|
|
47
|
-
"script:navi-deleverage-exec": "ts-node scripts/navi/navi_deleverage_strategy_exec.ts",
|
|
48
|
-
"script:navi-calc": "ts-node scripts/navi/test_navi_calculations.ts",
|
|
49
|
-
"script:scallop-test": "ts-node scripts/scallop/scallop_test_portfolio.ts",
|
|
50
|
-
"script:scallop-leverage": "ts-node scripts/scallop/scallop_leverage_dryrun.ts",
|
|
51
|
-
"script:scallop-leverage-exec": "ts-node scripts/scallop/scallop_leverage_exec.ts",
|
|
52
|
-
"script:scallop-deleverage": "ts-node scripts/scallop/scallop_deleverage_dryrun.ts",
|
|
53
|
-
"script:scallop-deleverage-exec": "ts-node scripts/scallop/scallop_deleverage_exec.ts",
|
|
54
|
-
"script:scallop-unlock": "ts-node scripts/scallop/scallop_unlock_obligation.ts",
|
|
55
|
-
"script:scallop-create-obligation": "ts-node scripts/scallop/scallop_create_obligation.ts",
|
|
56
|
-
"script:scallop-deposit": "ts-node scripts/scallop/scallop_deposit.ts",
|
|
57
|
-
"script:scallop-borrow": "ts-node scripts/scallop/scallop_borrow.ts",
|
|
58
|
-
"script:scallop-collaterals": "ts-node scripts/scallop/scallop_query_collaterals.ts",
|
|
59
|
-
"script:compare-btc": "ts-node scripts/compare_btc_collaterals.ts",
|
|
60
|
-
"script:merge-sui": "ts-node scripts/merge_sui_coins.ts"
|
|
21
|
+
"example:leverage": "npx tsx examples/leverage.ts",
|
|
22
|
+
"example:deleverage": "npx tsx examples/deleverage.ts",
|
|
23
|
+
"e2e": "npx tsx scripts/test_all_protocols.ts",
|
|
24
|
+
"e2e:execute": "npx tsx scripts/test_all_protocols.ts --execute",
|
|
25
|
+
"e2e:leverage": "npx tsx scripts/test_all_protocols.ts --leverage-only",
|
|
26
|
+
"e2e:leverage:execute": "npx tsx scripts/test_all_protocols.ts --leverage-only --execute",
|
|
27
|
+
"e2e:deleverage": "npx tsx scripts/test_all_protocols.ts --deleverage-only",
|
|
28
|
+
"e2e:deleverage:execute": "npx tsx scripts/test_all_protocols.ts --deleverage-only --execute"
|
|
61
29
|
},
|
|
62
30
|
"keywords": [],
|
|
63
31
|
"author": "",
|
|
@@ -79,11 +47,13 @@
|
|
|
79
47
|
"devDependencies": {
|
|
80
48
|
"@7kprotocol/sdk-ts": "^4.0.0",
|
|
81
49
|
"@mysten/sui": "^1.45.2",
|
|
82
|
-
"@naviprotocol/lending": "^1.
|
|
50
|
+
"@naviprotocol/lending": "^1.3.11",
|
|
83
51
|
"@suilend/sdk": "^1.1.99",
|
|
84
52
|
"@types/node": "^25.0.3",
|
|
53
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
85
54
|
"dotenv": "^17.2.3",
|
|
86
55
|
"ts-node": "^10.9.2",
|
|
87
|
-
"typescript": "^5.9.3"
|
|
56
|
+
"typescript": "^5.9.3",
|
|
57
|
+
"vitest": "^4.0.18"
|
|
88
58
|
}
|
|
89
59
|
}
|