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.
Files changed (181) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +199 -97
  3. package/dist/__tests__/deleverageEstimate.unit.test.d.ts +10 -0
  4. package/dist/__tests__/deleverageEstimate.unit.test.d.ts.map +1 -0
  5. package/dist/__tests__/deleverageEstimate.unit.test.js +116 -0
  6. package/dist/__tests__/deleverageEstimate.unit.test.js.map +1 -0
  7. package/dist/__tests__/findBestLeverageRoute.test.d.ts +12 -0
  8. package/dist/__tests__/findBestLeverageRoute.test.d.ts.map +1 -0
  9. package/dist/__tests__/findBestLeverageRoute.test.js +177 -0
  10. package/dist/__tests__/findBestLeverageRoute.test.js.map +1 -0
  11. package/dist/__tests__/getAssetApy.test.d.ts +2 -0
  12. package/dist/__tests__/getAssetApy.test.d.ts.map +1 -0
  13. package/dist/__tests__/getAssetApy.test.js +133 -0
  14. package/dist/__tests__/getAssetApy.test.js.map +1 -0
  15. package/dist/__tests__/getAssetRiskParams.test.d.ts +11 -0
  16. package/dist/__tests__/getAssetRiskParams.test.d.ts.map +1 -0
  17. package/dist/__tests__/getAssetRiskParams.test.js +183 -0
  18. package/dist/__tests__/getAssetRiskParams.test.js.map +1 -0
  19. package/dist/__tests__/internal.getAssetApy.test.d.ts +2 -0
  20. package/dist/__tests__/internal.getAssetApy.test.d.ts.map +1 -0
  21. package/dist/__tests__/internal.getAssetApy.test.js +140 -0
  22. package/dist/__tests__/internal.getAssetApy.test.js.map +1 -0
  23. package/dist/__tests__/internal.getAssetRiskParams.test.d.ts +22 -0
  24. package/dist/__tests__/internal.getAssetRiskParams.test.d.ts.map +1 -0
  25. package/dist/__tests__/internal.getAssetRiskParams.test.js +194 -0
  26. package/dist/__tests__/internal.getAssetRiskParams.test.js.map +1 -0
  27. package/dist/__tests__/internal.getPosition.test.d.ts +22 -0
  28. package/dist/__tests__/internal.getPosition.test.d.ts.map +1 -0
  29. package/dist/__tests__/internal.getPosition.test.js +153 -0
  30. package/dist/__tests__/internal.getPosition.test.js.map +1 -0
  31. package/dist/__tests__/leveragePreview.unit.test.d.ts +10 -0
  32. package/dist/__tests__/leveragePreview.unit.test.d.ts.map +1 -0
  33. package/dist/__tests__/leveragePreview.unit.test.js +168 -0
  34. package/dist/__tests__/leveragePreview.unit.test.js.map +1 -0
  35. package/dist/__tests__/leverageRoute.unit.test.d.ts +10 -0
  36. package/dist/__tests__/leverageRoute.unit.test.d.ts.map +1 -0
  37. package/dist/__tests__/leverageRoute.unit.test.js +159 -0
  38. package/dist/__tests__/leverageRoute.unit.test.js.map +1 -0
  39. package/dist/__tests__/previewLeverage.test.d.ts +13 -0
  40. package/dist/__tests__/previewLeverage.test.d.ts.map +1 -0
  41. package/dist/__tests__/previewLeverage.test.js +217 -0
  42. package/dist/__tests__/previewLeverage.test.js.map +1 -0
  43. package/dist/__tests__/sdk.bestRoute.test.d.ts +22 -0
  44. package/dist/__tests__/sdk.bestRoute.test.d.ts.map +1 -0
  45. package/dist/__tests__/sdk.bestRoute.test.js +186 -0
  46. package/dist/__tests__/sdk.bestRoute.test.js.map +1 -0
  47. package/dist/__tests__/sdk.bestRoute.unit.test.d.ts +16 -0
  48. package/dist/__tests__/sdk.bestRoute.unit.test.d.ts.map +1 -0
  49. package/dist/__tests__/sdk.bestRoute.unit.test.js +165 -0
  50. package/dist/__tests__/sdk.bestRoute.unit.test.js.map +1 -0
  51. package/dist/__tests__/sdk.deleverage.test.d.ts +21 -0
  52. package/dist/__tests__/sdk.deleverage.test.d.ts.map +1 -0
  53. package/dist/__tests__/sdk.deleverage.test.js +130 -0
  54. package/dist/__tests__/sdk.deleverage.test.js.map +1 -0
  55. package/dist/__tests__/sdk.deleverage.unit.test.d.ts +21 -0
  56. package/dist/__tests__/sdk.deleverage.unit.test.d.ts.map +1 -0
  57. package/dist/__tests__/sdk.deleverage.unit.test.js +141 -0
  58. package/dist/__tests__/sdk.deleverage.unit.test.js.map +1 -0
  59. package/dist/__tests__/sdk.leverage.test.d.ts +19 -0
  60. package/dist/__tests__/sdk.leverage.test.d.ts.map +1 -0
  61. package/dist/__tests__/sdk.leverage.test.js +188 -0
  62. package/dist/__tests__/sdk.leverage.test.js.map +1 -0
  63. package/dist/__tests__/sdk.portfolio.test.d.ts +17 -0
  64. package/dist/__tests__/sdk.portfolio.test.d.ts.map +1 -0
  65. package/dist/__tests__/sdk.portfolio.test.js +162 -0
  66. package/dist/__tests__/sdk.portfolio.test.js.map +1 -0
  67. package/dist/__tests__/sdk.position.test.d.ts +16 -0
  68. package/dist/__tests__/sdk.position.test.d.ts.map +1 -0
  69. package/dist/__tests__/sdk.position.test.js +193 -0
  70. package/dist/__tests__/sdk.position.test.js.map +1 -0
  71. package/dist/__tests__/sdk.preview.test.d.ts +23 -0
  72. package/dist/__tests__/sdk.preview.test.d.ts.map +1 -0
  73. package/dist/__tests__/sdk.preview.test.js +226 -0
  74. package/dist/__tests__/sdk.preview.test.js.map +1 -0
  75. package/dist/__tests__/sdk.preview.unit.test.d.ts +18 -0
  76. package/dist/__tests__/sdk.preview.unit.test.d.ts.map +1 -0
  77. package/dist/__tests__/sdk.preview.unit.test.js +175 -0
  78. package/dist/__tests__/sdk.preview.unit.test.js.map +1 -0
  79. package/dist/__tests__/utils.normalizeCoinType.test.d.ts +7 -0
  80. package/dist/__tests__/utils.normalizeCoinType.test.d.ts.map +1 -0
  81. package/dist/__tests__/utils.normalizeCoinType.test.js +42 -0
  82. package/dist/__tests__/utils.normalizeCoinType.test.js.map +1 -0
  83. package/dist/index.d.ts +19 -11
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +24 -40
  86. package/dist/index.js.map +1 -1
  87. package/dist/protocols/base-adapter.d.ts +42 -75
  88. package/dist/protocols/base-adapter.d.ts.map +1 -1
  89. package/dist/protocols/base-adapter.js +34 -77
  90. package/dist/protocols/base-adapter.js.map +1 -1
  91. package/dist/protocols/navi/adapter.d.ts +22 -2
  92. package/dist/protocols/navi/adapter.d.ts.map +1 -1
  93. package/dist/protocols/navi/adapter.js +145 -11
  94. package/dist/protocols/navi/adapter.js.map +1 -1
  95. package/dist/protocols/scallop/adapter.d.ts +26 -6
  96. package/dist/protocols/scallop/adapter.d.ts.map +1 -1
  97. package/dist/protocols/scallop/adapter.js +206 -43
  98. package/dist/protocols/scallop/adapter.js.map +1 -1
  99. package/dist/protocols/scallop/flash-loan.d.ts +18 -3
  100. package/dist/protocols/scallop/flash-loan.d.ts.map +1 -1
  101. package/dist/protocols/scallop/flash-loan.js +79 -20
  102. package/dist/protocols/scallop/flash-loan.js.map +1 -1
  103. package/dist/protocols/scallop/types.d.ts.map +1 -1
  104. package/dist/protocols/scallop/types.js +4 -1
  105. package/dist/protocols/scallop/types.js.map +1 -1
  106. package/dist/protocols/suilend/adapter.d.ts +19 -1
  107. package/dist/protocols/suilend/adapter.d.ts.map +1 -1
  108. package/dist/protocols/suilend/adapter.js +196 -51
  109. package/dist/protocols/suilend/adapter.js.map +1 -1
  110. package/dist/sdk.d.ts +107 -148
  111. package/dist/sdk.d.ts.map +1 -1
  112. package/dist/sdk.js +171 -523
  113. package/dist/sdk.js.map +1 -1
  114. package/dist/strategies/common.d.ts +42 -0
  115. package/dist/strategies/common.d.ts.map +1 -0
  116. package/dist/strategies/common.js +81 -0
  117. package/dist/strategies/common.js.map +1 -0
  118. package/dist/strategies/deleverage.d.ts.map +1 -1
  119. package/dist/strategies/deleverage.js +44 -62
  120. package/dist/strategies/deleverage.js.map +1 -1
  121. package/dist/strategies/index.d.ts +9 -1
  122. package/dist/strategies/index.d.ts.map +1 -1
  123. package/dist/strategies/index.js +11 -2
  124. package/dist/strategies/index.js.map +1 -1
  125. package/dist/strategies/leverage-preview.d.ts +27 -0
  126. package/dist/strategies/leverage-preview.d.ts.map +1 -0
  127. package/dist/strategies/leverage-preview.js +120 -0
  128. package/dist/strategies/leverage-preview.js.map +1 -0
  129. package/dist/strategies/leverage-route.d.ts +29 -0
  130. package/dist/strategies/leverage-route.d.ts.map +1 -0
  131. package/dist/strategies/leverage-route.js +112 -0
  132. package/dist/strategies/leverage-route.js.map +1 -0
  133. package/dist/strategies/leverage.d.ts +4 -44
  134. package/dist/strategies/leverage.d.ts.map +1 -1
  135. package/dist/strategies/leverage.js +43 -112
  136. package/dist/strategies/leverage.js.map +1 -1
  137. package/dist/strategies/scallop-leverage.d.ts +34 -0
  138. package/dist/strategies/scallop-leverage.d.ts.map +1 -0
  139. package/dist/strategies/scallop-leverage.js +143 -0
  140. package/dist/strategies/scallop-leverage.js.map +1 -0
  141. package/dist/types/config.d.ts +0 -7
  142. package/dist/types/config.d.ts.map +1 -1
  143. package/dist/types/constants.d.ts +8 -0
  144. package/dist/types/constants.d.ts.map +1 -1
  145. package/dist/types/constants.js +9 -1
  146. package/dist/types/constants.js.map +1 -1
  147. package/dist/types/index.d.ts +3 -3
  148. package/dist/types/index.d.ts.map +1 -1
  149. package/dist/types/index.js +2 -1
  150. package/dist/types/index.js.map +1 -1
  151. package/dist/types/position.d.ts +7 -3
  152. package/dist/types/position.d.ts.map +1 -1
  153. package/dist/types/protocol.d.ts +101 -0
  154. package/dist/types/protocol.d.ts.map +1 -1
  155. package/dist/types/strategy.d.ts +82 -38
  156. package/dist/types/strategy.d.ts.map +1 -1
  157. package/dist/utils/calculations.d.ts +10 -137
  158. package/dist/utils/calculations.d.ts.map +1 -1
  159. package/dist/utils/calculations.js +11 -162
  160. package/dist/utils/calculations.js.map +1 -1
  161. package/dist/utils/coin.d.ts +16 -7
  162. package/dist/utils/coin.d.ts.map +1 -1
  163. package/dist/utils/coin.js +32 -25
  164. package/dist/utils/coin.js.map +1 -1
  165. package/dist/utils/errors.d.ts +0 -18
  166. package/dist/utils/errors.d.ts.map +1 -1
  167. package/dist/utils/errors.js +2 -40
  168. package/dist/utils/errors.js.map +1 -1
  169. package/dist/utils/execution.d.ts +38 -0
  170. package/dist/utils/execution.d.ts.map +1 -0
  171. package/dist/utils/execution.js +110 -0
  172. package/dist/utils/execution.js.map +1 -0
  173. package/dist/utils/gas.d.ts +0 -37
  174. package/dist/utils/gas.d.ts.map +1 -1
  175. package/dist/utils/gas.js +2 -60
  176. package/dist/utils/gas.js.map +1 -1
  177. package/dist/utils/index.d.ts +1 -1
  178. package/dist/utils/index.d.ts.map +1 -1
  179. package/dist/utils/index.js +1 -1
  180. package/dist/utils/index.js.map +1 -1
  181. package/package.json +15 -45
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"gas.d.ts","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;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,CAK3D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAmC,GACjD,MAAM,CAGR;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,EAAE,EAAE,WAAW,EACf,aAAa,GAAE,MAAmC,GACjD,OAAO,CAAC,YAAY,CAAC,CA6BvB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAQvD"}
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
- return computationCost + storageCost - storageRebate;
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
@@ -1 +1 @@
1
- {"version":3,"file":"gas.js","sourceRoot":"","sources":["../../src/utils/gas.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA8BH,gDAKC;AASD,4DAMC;AAyBD,oDAiCC;AAUD,0CAYC;AA7HD;;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,OAAO,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AACvD,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;AAWD;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAAiB,EACjB,EAAe,EACf,gBAAwB,kCAA0B;IAElD,+BAA+B;IAC/B,EAAE,CAAC,YAAY,CAAC,yBAAiB,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC;YACjD,gBAAgB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,gBAAgB;aACvD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,wBAAwB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAE3E,OAAO;YACL,OAAO,EAAE,IAAI;YACb,eAAe;SAChB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,eAAe,CACnC,MAAiB,EACjB,WAAmB,EACnB,WAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEjD,OAAO;QACL,UAAU,EAAE,WAAW,IAAI,WAAW;QACtC,WAAW;KACZ,CAAC;AACJ,CAAC"}
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"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  export * from "./format";
8
8
  export * from "./coin";
9
- export * from "./logger";
10
9
  export * from "./calculations";
11
10
  export * from "./gas";
12
11
  export * from "./errors";
12
+ export * from "./execution";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -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,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,iDAA+B;AAC/B,wCAAsB;AACtB,2CAAyB"}
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",
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": "ts-node tests/runner.ts",
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": "ts-node examples/leverage.ts",
21
- "example:deleverage": "ts-node examples/deleverage.ts",
22
- "test:all": "ts-node scripts/test_all_protocols.ts",
23
- "test:all:execute": "ts-node scripts/test_all_protocols.ts --execute",
24
- "test:leverage": "ts-node scripts/test_all_protocols.ts --leverage-only",
25
- "test:deleverage": "ts-node scripts/test_all_protocols.ts --deleverage-only",
26
- "check:balance": "ts-node scripts/check_balances.ts",
27
- "script:scallop-fees": "ts-node scripts/scallop/scallop_query-fees.ts",
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.0.0",
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
  }