@mento-protocol/mento-sdk 3.0.0-beta.17 → 3.0.0-beta.18

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 (170) hide show
  1. package/dist/core/abis/activePool.d.ts +2 -0
  2. package/dist/core/abis/activePool.d.ts.map +1 -0
  3. package/dist/core/abis/activePool.js +14 -0
  4. package/dist/core/abis/activePool.js.map +1 -0
  5. package/dist/core/abis/addressesRegistry.d.ts +2 -0
  6. package/dist/core/abis/addressesRegistry.d.ts.map +1 -0
  7. package/dist/core/abis/addressesRegistry.js +26 -0
  8. package/dist/core/abis/addressesRegistry.js.map +1 -0
  9. package/dist/core/abis/borrowerOperations.d.ts +9 -0
  10. package/dist/core/abis/borrowerOperations.d.ts.map +1 -0
  11. package/dist/core/abis/borrowerOperations.js +89 -0
  12. package/dist/core/abis/borrowerOperations.js.map +1 -0
  13. package/dist/core/abis/hintHelpers.d.ts +2 -0
  14. package/dist/core/abis/hintHelpers.d.ts.map +1 -0
  15. package/dist/core/abis/hintHelpers.js +14 -0
  16. package/dist/core/abis/hintHelpers.js.map +1 -0
  17. package/dist/core/abis/index.d.ts +10 -0
  18. package/dist/core/abis/index.d.ts.map +1 -1
  19. package/dist/core/abis/index.js +10 -0
  20. package/dist/core/abis/index.js.map +1 -1
  21. package/dist/core/abis/multiTroveGetter.d.ts +8 -0
  22. package/dist/core/abis/multiTroveGetter.d.ts.map +1 -0
  23. package/dist/core/abis/multiTroveGetter.js +15 -0
  24. package/dist/core/abis/multiTroveGetter.js.map +1 -0
  25. package/dist/core/abis/priceFeed.d.ts +7 -0
  26. package/dist/core/abis/priceFeed.d.ts.map +1 -0
  27. package/dist/core/abis/priceFeed.js +16 -0
  28. package/dist/core/abis/priceFeed.js.map +1 -0
  29. package/dist/core/abis/sortedTroves.d.ts +2 -0
  30. package/dist/core/abis/sortedTroves.d.ts.map +1 -0
  31. package/dist/core/abis/sortedTroves.js +15 -0
  32. package/dist/core/abis/sortedTroves.js.map +1 -0
  33. package/dist/core/abis/systemParams.d.ts +2 -0
  34. package/dist/core/abis/systemParams.d.ts.map +1 -0
  35. package/dist/core/abis/systemParams.js +14 -0
  36. package/dist/core/abis/systemParams.js.map +1 -0
  37. package/dist/core/abis/troveManager.d.ts +2 -0
  38. package/dist/core/abis/troveManager.d.ts.map +1 -0
  39. package/dist/core/abis/troveManager.js +27 -0
  40. package/dist/core/abis/troveManager.js.map +1 -0
  41. package/dist/core/abis/troveNFT.d.ts +2 -0
  42. package/dist/core/abis/troveNFT.d.ts.map +1 -0
  43. package/dist/core/abis/troveNFT.js +9 -0
  44. package/dist/core/abis/troveNFT.js.map +1 -0
  45. package/dist/core/constants/borrowConstants.d.ts +10 -0
  46. package/dist/core/constants/borrowConstants.d.ts.map +1 -0
  47. package/dist/core/constants/borrowConstants.js +16 -0
  48. package/dist/core/constants/borrowConstants.js.map +1 -0
  49. package/dist/core/constants/borrowRegistries.d.ts +7 -0
  50. package/dist/core/constants/borrowRegistries.d.ts.map +1 -0
  51. package/dist/core/constants/borrowRegistries.js +31 -0
  52. package/dist/core/constants/borrowRegistries.js.map +1 -0
  53. package/dist/core/constants/index.d.ts +2 -0
  54. package/dist/core/constants/index.d.ts.map +1 -1
  55. package/dist/core/constants/index.js +2 -0
  56. package/dist/core/constants/index.js.map +1 -1
  57. package/dist/core/types/borrow.d.ts +87 -0
  58. package/dist/core/types/borrow.d.ts.map +1 -0
  59. package/dist/core/types/borrow.js +3 -0
  60. package/dist/core/types/borrow.js.map +1 -0
  61. package/dist/core/types/index.d.ts +1 -0
  62. package/dist/core/types/index.d.ts.map +1 -1
  63. package/dist/core/types/index.js +1 -0
  64. package/dist/core/types/index.js.map +1 -1
  65. package/dist/core/types/liquidity.d.ts +10 -10
  66. package/dist/core/types/liquidity.d.ts.map +1 -1
  67. package/dist/index.d.ts +5 -3
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +15 -5
  70. package/dist/index.js.map +1 -1
  71. package/dist/services/borrow/BorrowService.d.ts +54 -0
  72. package/dist/services/borrow/BorrowService.d.ts.map +1 -0
  73. package/dist/services/borrow/BorrowService.js +129 -0
  74. package/dist/services/borrow/BorrowService.js.map +1 -0
  75. package/dist/services/borrow/borrowHelpers.d.ts +4 -0
  76. package/dist/services/borrow/borrowHelpers.d.ts.map +1 -0
  77. package/dist/services/borrow/borrowHelpers.js +13 -0
  78. package/dist/services/borrow/borrowHelpers.js.map +1 -0
  79. package/dist/services/borrow/borrowMath.d.ts +13 -0
  80. package/dist/services/borrow/borrowMath.d.ts.map +1 -0
  81. package/dist/services/borrow/borrowMath.js +129 -0
  82. package/dist/services/borrow/borrowMath.js.map +1 -0
  83. package/dist/services/borrow/index.d.ts +2 -0
  84. package/dist/services/borrow/index.d.ts.map +1 -0
  85. package/dist/services/borrow/index.js +18 -0
  86. package/dist/services/borrow/index.js.map +1 -0
  87. package/dist/services/borrow/internal/borrowApprovalService.d.ts +14 -0
  88. package/dist/services/borrow/internal/borrowApprovalService.d.ts.map +1 -0
  89. package/dist/services/borrow/internal/borrowApprovalService.js +53 -0
  90. package/dist/services/borrow/internal/borrowApprovalService.js.map +1 -0
  91. package/dist/services/borrow/internal/borrowContextStore.d.ts +11 -0
  92. package/dist/services/borrow/internal/borrowContextStore.d.ts.map +1 -0
  93. package/dist/services/borrow/internal/borrowContextStore.js +40 -0
  94. package/dist/services/borrow/internal/borrowContextStore.js.map +1 -0
  95. package/dist/services/borrow/internal/borrowErc20.d.ts +5 -0
  96. package/dist/services/borrow/internal/borrowErc20.d.ts.map +1 -0
  97. package/dist/services/borrow/internal/borrowErc20.js +43 -0
  98. package/dist/services/borrow/internal/borrowErc20.js.map +1 -0
  99. package/dist/services/borrow/internal/borrowHints.d.ts +7 -0
  100. package/dist/services/borrow/internal/borrowHints.d.ts.map +1 -0
  101. package/dist/services/borrow/internal/borrowHints.js +31 -0
  102. package/dist/services/borrow/internal/borrowHints.js.map +1 -0
  103. package/dist/services/borrow/internal/borrowPositionParser.d.ts +4 -0
  104. package/dist/services/borrow/internal/borrowPositionParser.d.ts.map +1 -0
  105. package/dist/services/borrow/internal/borrowPositionParser.js +87 -0
  106. package/dist/services/borrow/internal/borrowPositionParser.js.map +1 -0
  107. package/dist/services/borrow/internal/borrowReadService.d.ts +28 -0
  108. package/dist/services/borrow/internal/borrowReadService.d.ts.map +1 -0
  109. package/dist/services/borrow/internal/borrowReadService.js +218 -0
  110. package/dist/services/borrow/internal/borrowReadService.js.map +1 -0
  111. package/dist/services/borrow/internal/borrowRegistryReader.d.ts +5 -0
  112. package/dist/services/borrow/internal/borrowRegistryReader.d.ts.map +1 -0
  113. package/dist/services/borrow/internal/borrowRegistryReader.js +96 -0
  114. package/dist/services/borrow/internal/borrowRegistryReader.js.map +1 -0
  115. package/dist/services/borrow/internal/borrowTransactionService.d.ts +23 -0
  116. package/dist/services/borrow/internal/borrowTransactionService.d.ts.map +1 -0
  117. package/dist/services/borrow/internal/borrowTransactionService.js +276 -0
  118. package/dist/services/borrow/internal/borrowTransactionService.js.map +1 -0
  119. package/dist/services/borrow/internal/borrowTypes.d.ts +15 -0
  120. package/dist/services/borrow/internal/borrowTypes.d.ts.map +1 -0
  121. package/dist/services/borrow/internal/borrowTypes.js +3 -0
  122. package/dist/services/borrow/internal/borrowTypes.js.map +1 -0
  123. package/dist/services/borrow/internal/borrowValidation.d.ts +13 -0
  124. package/dist/services/borrow/internal/borrowValidation.d.ts.map +1 -0
  125. package/dist/services/borrow/internal/borrowValidation.js +96 -0
  126. package/dist/services/borrow/internal/borrowValidation.js.map +1 -0
  127. package/dist/services/index.d.ts +1 -0
  128. package/dist/services/index.d.ts.map +1 -1
  129. package/dist/services/index.js +1 -0
  130. package/dist/services/index.js.map +1 -1
  131. package/dist/services/liquidity/LiquidityService.d.ts +10 -10
  132. package/dist/services/liquidity/LiquidityService.js +10 -10
  133. package/dist/services/liquidity/basicLiquidity.d.ts.map +1 -1
  134. package/dist/services/liquidity/basicLiquidity.js +6 -8
  135. package/dist/services/liquidity/basicLiquidity.js.map +1 -1
  136. package/dist/services/liquidity/liquidityHelpers.d.ts +1 -2
  137. package/dist/services/liquidity/liquidityHelpers.d.ts.map +1 -1
  138. package/dist/services/liquidity/liquidityHelpers.js +0 -4
  139. package/dist/services/liquidity/liquidityHelpers.js.map +1 -1
  140. package/dist/services/liquidity/zapHelpers.d.ts +9 -4
  141. package/dist/services/liquidity/zapHelpers.d.ts.map +1 -1
  142. package/dist/services/liquidity/zapHelpers.js +9 -4
  143. package/dist/services/liquidity/zapHelpers.js.map +1 -1
  144. package/dist/services/liquidity/zapIn.d.ts.map +1 -1
  145. package/dist/services/liquidity/zapIn.js +13 -9
  146. package/dist/services/liquidity/zapIn.js.map +1 -1
  147. package/dist/services/liquidity/zapOut.d.ts.map +1 -1
  148. package/dist/services/liquidity/zapOut.js +6 -4
  149. package/dist/services/liquidity/zapOut.js.map +1 -1
  150. package/dist/services/pools/PoolService.d.ts +13 -0
  151. package/dist/services/pools/PoolService.d.ts.map +1 -1
  152. package/dist/services/pools/PoolService.js +20 -2
  153. package/dist/services/pools/PoolService.js.map +1 -1
  154. package/dist/services/quotes/QuoteService.js.map +1 -1
  155. package/dist/services/swap/SwapService.d.ts +5 -5
  156. package/dist/services/swap/SwapService.d.ts.map +1 -1
  157. package/dist/services/swap/SwapService.js +7 -6
  158. package/dist/services/swap/SwapService.js.map +1 -1
  159. package/dist/utils/deadline.d.ts +21 -0
  160. package/dist/utils/deadline.d.ts.map +1 -0
  161. package/dist/utils/deadline.js +26 -0
  162. package/dist/utils/deadline.js.map +1 -0
  163. package/dist/utils/index.d.ts +1 -0
  164. package/dist/utils/index.d.ts.map +1 -1
  165. package/dist/utils/index.js +1 -0
  166. package/dist/utils/index.js.map +1 -1
  167. package/dist/utils/pathEncoder.d.ts +5 -0
  168. package/dist/utils/pathEncoder.d.ts.map +1 -1
  169. package/dist/utils/pathEncoder.js.map +1 -1
  170. package/package.json +1 -1
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BorrowTransactionService = void 0;
4
+ const viem_1 = require("viem");
5
+ const abis_1 = require("../../../core/abis");
6
+ const borrowHints_1 = require("./borrowHints");
7
+ const borrowValidation_1 = require("./borrowValidation");
8
+ const ZERO_VALUE_HEX = '0x0';
9
+ class BorrowTransactionService {
10
+ constructor(publicClient) {
11
+ this.publicClient = publicClient;
12
+ }
13
+ async buildOpenTroveTransaction(ctx, params) {
14
+ const owner = (0, borrowValidation_1.requireAddress)(params.owner, 'owner');
15
+ const ownerIndex = (0, borrowValidation_1.requireNonNegativeInteger)(params.ownerIndex, 'ownerIndex');
16
+ const collAmount = (0, borrowValidation_1.requirePositiveBigInt)(params.collAmount, 'collAmount');
17
+ const boldAmount = (0, borrowValidation_1.requirePositiveBigInt)(params.boldAmount, 'boldAmount');
18
+ const annualInterestRate = (0, borrowValidation_1.requireNonNegativeBigInt)(params.annualInterestRate, 'annualInterestRate');
19
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(params.maxUpfrontFee, 'maxUpfrontFee');
20
+ const addManager = (0, borrowValidation_1.optionalAddressOrZero)(params.addManager, 'addManager');
21
+ const removeManager = (0, borrowValidation_1.optionalAddressOrZero)(params.removeManager, 'removeManager');
22
+ const receiver = (0, borrowValidation_1.optionalAddressOrZero)(params.receiver, 'receiver');
23
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, annualInterestRate);
24
+ const data = params.interestBatchManager
25
+ ? (0, viem_1.encodeFunctionData)({
26
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
27
+ functionName: 'openTroveAndJoinInterestBatchManager',
28
+ args: [
29
+ {
30
+ owner,
31
+ ownerIndex: BigInt(ownerIndex),
32
+ collAmount,
33
+ boldAmount,
34
+ upperHint: hints.upper,
35
+ lowerHint: hints.lower,
36
+ interestBatchManager: (0, borrowValidation_1.requireAddress)(params.interestBatchManager, 'interestBatchManager'),
37
+ maxUpfrontFee,
38
+ addManager,
39
+ removeManager,
40
+ receiver,
41
+ },
42
+ ],
43
+ })
44
+ : (0, viem_1.encodeFunctionData)({
45
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
46
+ functionName: 'openTrove',
47
+ args: [
48
+ owner,
49
+ BigInt(ownerIndex),
50
+ collAmount,
51
+ boldAmount,
52
+ hints.upper,
53
+ hints.lower,
54
+ annualInterestRate,
55
+ maxUpfrontFee,
56
+ addManager,
57
+ removeManager,
58
+ receiver,
59
+ ],
60
+ });
61
+ return {
62
+ to: ctx.addresses.borrowerOperations,
63
+ data,
64
+ value: ZERO_VALUE_HEX,
65
+ };
66
+ }
67
+ buildAdjustTroveTransaction(ctx, params) {
68
+ const troveId = (0, borrowValidation_1.parseTroveId)(params.troveId);
69
+ const collChange = (0, borrowValidation_1.requireNonNegativeBigInt)(params.collChange, 'collChange');
70
+ const debtChange = (0, borrowValidation_1.requireNonNegativeBigInt)(params.debtChange, 'debtChange');
71
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(params.maxUpfrontFee, 'maxUpfrontFee');
72
+ const data = (0, viem_1.encodeFunctionData)({
73
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
74
+ functionName: 'adjustTrove',
75
+ args: [troveId, collChange, params.isCollIncrease, debtChange, params.isDebtIncrease, maxUpfrontFee],
76
+ });
77
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
78
+ }
79
+ async buildAdjustZombieTroveTransaction(ctx, params) {
80
+ const troveId = (0, borrowValidation_1.parseTroveId)(params.troveId);
81
+ const collChange = (0, borrowValidation_1.requireNonNegativeBigInt)(params.collChange, 'collChange');
82
+ const debtChange = (0, borrowValidation_1.requireNonNegativeBigInt)(params.debtChange, 'debtChange');
83
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(params.maxUpfrontFee, 'maxUpfrontFee');
84
+ const currentRate = (await this.publicClient.readContract({
85
+ address: ctx.addresses.troveManager,
86
+ abi: abis_1.TROVE_MANAGER_ABI,
87
+ functionName: 'getTroveAnnualInterestRate',
88
+ args: [troveId],
89
+ }));
90
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, currentRate);
91
+ const data = (0, viem_1.encodeFunctionData)({
92
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
93
+ functionName: 'adjustZombieTrove',
94
+ args: [
95
+ troveId,
96
+ collChange,
97
+ params.isCollIncrease,
98
+ debtChange,
99
+ params.isDebtIncrease,
100
+ hints.upper,
101
+ hints.lower,
102
+ maxUpfrontFee,
103
+ ],
104
+ });
105
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
106
+ }
107
+ buildCloseTroveTransaction(ctx, troveId) {
108
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
109
+ const data = (0, viem_1.encodeFunctionData)({
110
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
111
+ functionName: 'closeTrove',
112
+ args: [parsedTroveId],
113
+ });
114
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
115
+ }
116
+ buildAddCollTransaction(ctx, troveId, amount) {
117
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
118
+ const collAmount = (0, borrowValidation_1.requirePositiveBigInt)(amount, 'amount');
119
+ const data = (0, viem_1.encodeFunctionData)({
120
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
121
+ functionName: 'addColl',
122
+ args: [parsedTroveId, collAmount],
123
+ });
124
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
125
+ }
126
+ buildWithdrawCollTransaction(ctx, troveId, amount) {
127
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
128
+ const collAmount = (0, borrowValidation_1.requirePositiveBigInt)(amount, 'amount');
129
+ const data = (0, viem_1.encodeFunctionData)({
130
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
131
+ functionName: 'withdrawColl',
132
+ args: [parsedTroveId, collAmount],
133
+ });
134
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
135
+ }
136
+ buildBorrowMoreTransaction(ctx, troveId, amount, maxFee) {
137
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
138
+ const borrowAmount = (0, borrowValidation_1.requirePositiveBigInt)(amount, 'amount');
139
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
140
+ const data = (0, viem_1.encodeFunctionData)({
141
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
142
+ functionName: 'withdrawBold',
143
+ args: [parsedTroveId, borrowAmount, maxUpfrontFee],
144
+ });
145
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
146
+ }
147
+ buildRepayDebtTransaction(ctx, troveId, amount) {
148
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
149
+ const repayAmount = (0, borrowValidation_1.requirePositiveBigInt)(amount, 'amount');
150
+ const data = (0, viem_1.encodeFunctionData)({
151
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
152
+ functionName: 'repayBold',
153
+ args: [parsedTroveId, repayAmount],
154
+ });
155
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
156
+ }
157
+ async buildAdjustInterestRateTransaction(ctx, troveId, newRate, maxFee) {
158
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
159
+ const newAnnualInterestRate = (0, borrowValidation_1.requireNonNegativeBigInt)(newRate, 'newRate');
160
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
161
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, newAnnualInterestRate);
162
+ const data = (0, viem_1.encodeFunctionData)({
163
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
164
+ functionName: 'adjustTroveInterestRate',
165
+ args: [parsedTroveId, newAnnualInterestRate, hints.upper, hints.lower, maxUpfrontFee],
166
+ });
167
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
168
+ }
169
+ buildClaimCollateralTransaction(ctx) {
170
+ const data = (0, viem_1.encodeFunctionData)({
171
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
172
+ functionName: 'claimCollateral',
173
+ args: [],
174
+ });
175
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
176
+ }
177
+ async buildSetBatchManagerTransaction(ctx, troveId, manager, maxFee) {
178
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
179
+ const newBatchManager = (0, borrowValidation_1.requireAddress)(manager, 'manager');
180
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
181
+ const currentRate = (await this.publicClient.readContract({
182
+ address: ctx.addresses.troveManager,
183
+ abi: abis_1.TROVE_MANAGER_ABI,
184
+ functionName: 'getTroveAnnualInterestRate',
185
+ args: [parsedTroveId],
186
+ }));
187
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, currentRate);
188
+ const data = (0, viem_1.encodeFunctionData)({
189
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
190
+ functionName: 'setInterestBatchManager',
191
+ args: [parsedTroveId, newBatchManager, hints.upper, hints.lower, maxUpfrontFee],
192
+ });
193
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
194
+ }
195
+ async buildRemoveFromBatchTransaction(ctx, troveId, newRate, maxFee) {
196
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
197
+ const newAnnualInterestRate = (0, borrowValidation_1.requireNonNegativeBigInt)(newRate, 'newRate');
198
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
199
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, newAnnualInterestRate);
200
+ const data = (0, viem_1.encodeFunctionData)({
201
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
202
+ functionName: 'removeFromBatch',
203
+ args: [parsedTroveId, newAnnualInterestRate, hints.upper, hints.lower, maxUpfrontFee],
204
+ });
205
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
206
+ }
207
+ async buildSwitchBatchManagerTransaction(ctx, troveId, newManager, maxFee) {
208
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
209
+ const managerAddress = (0, borrowValidation_1.requireAddress)(newManager, 'newManager');
210
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
211
+ const currentRate = (await this.publicClient.readContract({
212
+ address: ctx.addresses.troveManager,
213
+ abi: abis_1.TROVE_MANAGER_ABI,
214
+ functionName: 'getTroveAnnualInterestRate',
215
+ args: [parsedTroveId],
216
+ }));
217
+ const [removeHints, addHints] = await Promise.all([
218
+ (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, currentRate),
219
+ (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, currentRate),
220
+ ]);
221
+ const data = (0, viem_1.encodeFunctionData)({
222
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
223
+ functionName: 'switchBatchManager',
224
+ args: [
225
+ parsedTroveId,
226
+ removeHints.upper,
227
+ removeHints.lower,
228
+ managerAddress,
229
+ addHints.upper,
230
+ addHints.lower,
231
+ maxUpfrontFee,
232
+ ],
233
+ });
234
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
235
+ }
236
+ async buildSetInterestDelegateTransaction(ctx, troveId, delegate, minRate, maxRate, newRate, maxFee, minChangePeriod) {
237
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
238
+ const delegateAddress = (0, borrowValidation_1.requireAddress)(delegate, 'delegate');
239
+ const minInterestRate = (0, borrowValidation_1.requireUint128)(minRate, 'minRate');
240
+ const maxInterestRate = (0, borrowValidation_1.requireUint128)(maxRate, 'maxRate');
241
+ const newAnnualInterestRate = (0, borrowValidation_1.requireNonNegativeBigInt)(newRate, 'newRate');
242
+ const maxUpfrontFee = (0, borrowValidation_1.requireNonNegativeBigInt)(maxFee, 'maxFee');
243
+ const minRateChangePeriod = (0, borrowValidation_1.requireNonNegativeBigInt)(minChangePeriod, 'minChangePeriod');
244
+ if (minInterestRate > maxInterestRate) {
245
+ throw new Error('minRate cannot be greater than maxRate');
246
+ }
247
+ const hints = await (0, borrowHints_1.getTroveOperationHints)(this.publicClient, ctx, newAnnualInterestRate);
248
+ const data = (0, viem_1.encodeFunctionData)({
249
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
250
+ functionName: 'setInterestIndividualDelegate',
251
+ args: [
252
+ parsedTroveId,
253
+ delegateAddress,
254
+ minInterestRate,
255
+ maxInterestRate,
256
+ newAnnualInterestRate,
257
+ hints.upper,
258
+ hints.lower,
259
+ maxUpfrontFee,
260
+ minRateChangePeriod,
261
+ ],
262
+ });
263
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
264
+ }
265
+ buildRemoveInterestDelegateTransaction(ctx, troveId) {
266
+ const parsedTroveId = (0, borrowValidation_1.parseTroveId)(troveId);
267
+ const data = (0, viem_1.encodeFunctionData)({
268
+ abi: abis_1.BORROWER_OPERATIONS_ABI,
269
+ functionName: 'removeInterestIndividualDelegate',
270
+ args: [parsedTroveId],
271
+ });
272
+ return { to: ctx.addresses.borrowerOperations, data, value: ZERO_VALUE_HEX };
273
+ }
274
+ }
275
+ exports.BorrowTransactionService = BorrowTransactionService;
276
+ //# sourceMappingURL=borrowTransactionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowTransactionService.js","sourceRoot":"","sources":["../../../../src/services/borrow/internal/borrowTransactionService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BorrowContractAddresses, SystemParams } from '../../../core/types';
2
+ export interface DeploymentContext {
3
+ addresses: BorrowContractAddresses;
4
+ systemParams: SystemParams;
5
+ }
6
+ export type InterestBatchManagerData = {
7
+ minInterestRate: bigint;
8
+ maxInterestRate: bigint;
9
+ minInterestRateChangePeriod: bigint;
10
+ };
11
+ export type DebtPerInterestRateItem = {
12
+ interestRate: bigint;
13
+ debt: bigint;
14
+ };
15
+ //# sourceMappingURL=borrowTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowTypes.d.ts","sourceRoot":"","sources":["../../../../src/services/borrow/internal/borrowTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE3E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,uBAAuB,CAAA;IAClC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,2BAA2B,EAAE,MAAM,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=borrowTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowTypes.js","sourceRoot":"","sources":["../../../../src/services/borrow/internal/borrowTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { Address } from 'viem';
2
+ export declare const MAX_SAFE_INTEGER_BIGINT: bigint;
3
+ export declare function requireDebtTokenSymbol(symbol: string): string;
4
+ export declare function requireAddress(address: string, fieldName: string): Address;
5
+ export declare function optionalAddressOrZero(value: string | undefined, fieldName: string): Address;
6
+ export declare function parseTroveId(troveId: string): bigint;
7
+ export declare function formatTroveId(troveId: bigint): string;
8
+ export declare function requireNonNegativeInteger(value: number, fieldName: string): number;
9
+ export declare function requireNonNegativeBigInt(value: bigint, fieldName: string): bigint;
10
+ export declare function requirePositiveBigInt(value: bigint, fieldName: string): bigint;
11
+ export declare function requireUint128(value: bigint, fieldName: string): bigint;
12
+ export declare function ceilSqrt(value: bigint): bigint;
13
+ //# sourceMappingURL=borrowValidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowValidation.d.ts","sourceRoot":"","sources":["../../../../src/services/borrow/internal/borrowValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,MAAM,CAAA;AAI3C,eAAO,MAAM,uBAAuB,QAAkC,CAAA;AAEtE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAG1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAG3F;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKlF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKjF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAK9E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMvE;AAoBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG9C"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_SAFE_INTEGER_BIGINT = void 0;
4
+ exports.requireDebtTokenSymbol = requireDebtTokenSymbol;
5
+ exports.requireAddress = requireAddress;
6
+ exports.optionalAddressOrZero = optionalAddressOrZero;
7
+ exports.parseTroveId = parseTroveId;
8
+ exports.formatTroveId = formatTroveId;
9
+ exports.requireNonNegativeInteger = requireNonNegativeInteger;
10
+ exports.requireNonNegativeBigInt = requireNonNegativeBigInt;
11
+ exports.requirePositiveBigInt = requirePositiveBigInt;
12
+ exports.requireUint128 = requireUint128;
13
+ exports.ceilSqrt = ceilSqrt;
14
+ const viem_1 = require("viem");
15
+ const validation_1 = require("../../../utils/validation");
16
+ const UINT128_MAX = (1n << 128n) - 1n;
17
+ exports.MAX_SAFE_INTEGER_BIGINT = BigInt(Number.MAX_SAFE_INTEGER);
18
+ function requireDebtTokenSymbol(symbol) {
19
+ if (typeof symbol !== 'string' || symbol.trim().length === 0) {
20
+ throw new Error('debtTokenSymbol must be a non-empty string');
21
+ }
22
+ return symbol.trim();
23
+ }
24
+ function requireAddress(address, fieldName) {
25
+ (0, validation_1.validateAddress)(address, fieldName);
26
+ return address;
27
+ }
28
+ function optionalAddressOrZero(value, fieldName) {
29
+ if (!value)
30
+ return viem_1.zeroAddress;
31
+ return requireAddress(value, fieldName);
32
+ }
33
+ function parseTroveId(troveId) {
34
+ if (typeof troveId !== 'string' || troveId.trim().length === 0) {
35
+ throw new Error('troveId must be a non-empty string');
36
+ }
37
+ let parsed;
38
+ try {
39
+ parsed = BigInt(troveId);
40
+ }
41
+ catch {
42
+ throw new Error(`Invalid troveId: ${troveId}`);
43
+ }
44
+ if (parsed < 0n) {
45
+ throw new Error('troveId cannot be negative');
46
+ }
47
+ return parsed;
48
+ }
49
+ function formatTroveId(troveId) {
50
+ return `0x${troveId.toString(16)}`;
51
+ }
52
+ function requireNonNegativeInteger(value, fieldName) {
53
+ if (!Number.isSafeInteger(value) || value < 0) {
54
+ throw new Error(`${fieldName} must be a non-negative safe integer`);
55
+ }
56
+ return value;
57
+ }
58
+ function requireNonNegativeBigInt(value, fieldName) {
59
+ if (typeof value !== 'bigint' || value < 0n) {
60
+ throw new Error(`${fieldName} must be a non-negative bigint`);
61
+ }
62
+ return value;
63
+ }
64
+ function requirePositiveBigInt(value, fieldName) {
65
+ if (typeof value !== 'bigint' || value <= 0n) {
66
+ throw new Error(`${fieldName} must be a positive bigint`);
67
+ }
68
+ return value;
69
+ }
70
+ function requireUint128(value, fieldName) {
71
+ const parsed = requireNonNegativeBigInt(value, fieldName);
72
+ if (parsed > UINT128_MAX) {
73
+ throw new Error(`${fieldName} exceeds uint128 max value`);
74
+ }
75
+ return parsed;
76
+ }
77
+ function integerSqrt(value) {
78
+ if (value < 0n) {
79
+ throw new Error('Cannot compute square root of a negative bigint');
80
+ }
81
+ if (value < 2n) {
82
+ return value;
83
+ }
84
+ let x0 = value;
85
+ let x1 = (x0 + 1n) >> 1n;
86
+ while (x1 < x0) {
87
+ x0 = x1;
88
+ x1 = (x1 + value / x1) >> 1n;
89
+ }
90
+ return x0;
91
+ }
92
+ function ceilSqrt(value) {
93
+ const floor = integerSqrt(value);
94
+ return floor * floor === value ? floor : floor + 1n;
95
+ }
96
+ //# sourceMappingURL=borrowValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"borrowValidation.js","sourceRoot":"","sources":["../../../../src/services/borrow/internal/borrowValidation.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export * from './routes';
5
5
  export * from './quotes';
6
6
  export * from './swap';
7
7
  export * from './trading';
8
+ export * from './borrow';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAA;AAChD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
@@ -21,4 +21,5 @@ __exportStar(require("./routes"), exports);
21
21
  __exportStar(require("./quotes"), exports);
22
22
  __exportStar(require("./swap"), exports);
23
23
  __exportStar(require("./trading"), exports);
24
+ __exportStar(require("./borrow"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAgD;AAChD,kDAA+B;AAC/B,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,yCAAsB;AACtB,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAgD;AAChD,kDAA+B;AAC/B,0CAAuB;AACvB,2CAAwB;AACxB,2CAAwB;AACxB,yCAAsB;AACtB,4CAAyB;AACzB,2CAAwB"}
@@ -18,7 +18,7 @@ export declare class LiquidityService {
18
18
  * @param amountB - Amount of second token
19
19
  * @param recipient - Address to receive LP tokens
20
20
  * @param owner - Address that owns the input tokens (for checking allowances)
21
- * @param options - Slippage tolerance and optional deadline
21
+ * @param options - Slippage tolerance and deadline
22
22
  * @returns Transaction with approvals (if needed) and add liquidity call
23
23
  */
24
24
  buildAddLiquidityTransaction(poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<AddLiquidityTransaction>;
@@ -31,7 +31,7 @@ export declare class LiquidityService {
31
31
  * @param tokenB - Second token address
32
32
  * @param amountB - Amount of second token
33
33
  * @param recipient - Address to receive LP tokens
34
- * @param options - Slippage tolerance and optional deadline
34
+ * @param options - Slippage tolerance and deadline
35
35
  * @returns Transaction details with encoded call data
36
36
  */
37
37
  buildAddLiquidityParams(poolAddress: string, tokenA: string, amountA: bigint, tokenB: string, amountB: bigint, recipient: string, options: LiquidityOptions): Promise<AddLiquidityDetails>;
@@ -41,7 +41,7 @@ export declare class LiquidityService {
41
41
  * @param liquidity - Amount of LP tokens to burn
42
42
  * @param recipient - Address to receive the underlying tokens
43
43
  * @param owner - Address that owns the LP tokens (for checking allowance)
44
- * @param options - Slippage tolerance and optional deadline
44
+ * @param options - Slippage tolerance and deadline
45
45
  * @returns Transaction with approval (if needed) and remove liquidity call
46
46
  */
47
47
  buildRemoveLiquidityTransaction(poolAddress: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<RemoveLiquidityTransaction>;
@@ -51,7 +51,7 @@ export declare class LiquidityService {
51
51
  * @param poolAddress - FPMM pool address
52
52
  * @param liquidity - Amount of LP tokens to burn
53
53
  * @param recipient - Address to receive the underlying tokens
54
- * @param options - Slippage tolerance and optional deadline
54
+ * @param options - Slippage tolerance and deadline
55
55
  * @returns Transaction details with encoded call data
56
56
  */
57
57
  buildRemoveLiquidityParams(poolAddress: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<RemoveLiquidityDetails>;
@@ -90,7 +90,7 @@ export declare class LiquidityService {
90
90
  * @param amountInSplit - How to split input between pool tokens (0-1, e.g., 0.5 for 50/50)
91
91
  * @param recipient - Address to receive LP tokens
92
92
  * @param owner - Address that owns the input token
93
- * @param options - Slippage tolerance and optional deadline
93
+ * @param options - Slippage tolerance and deadline
94
94
  * @returns Transaction with approval (if needed) and zap in call
95
95
  */
96
96
  buildZapInTransaction(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapInTransaction>;
@@ -102,7 +102,7 @@ export declare class LiquidityService {
102
102
  * @param amountIn - Total input amount
103
103
  * @param amountInSplit - Split ratio (0-1)
104
104
  * @param recipient - Address to receive LP tokens
105
- * @param options - Slippage tolerance and optional deadline
105
+ * @param options - Slippage tolerance and deadline
106
106
  * @returns Transaction details with encoded call data and routing information
107
107
  */
108
108
  buildZapInParams(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, recipient: string, options: LiquidityOptions): Promise<ZapInDetails>;
@@ -114,7 +114,7 @@ export declare class LiquidityService {
114
114
  * @param liquidity - Amount of LP tokens to burn
115
115
  * @param recipient - Address to receive output tokens
116
116
  * @param owner - Address that owns the LP tokens
117
- * @param options - Slippage tolerance and optional deadline
117
+ * @param options - Slippage tolerance and deadline
118
118
  * @returns Transaction with approval (if needed) and zap out call
119
119
  */
120
120
  buildZapOutTransaction(poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, owner: string, options: LiquidityOptions): Promise<ZapOutTransaction>;
@@ -125,7 +125,7 @@ export declare class LiquidityService {
125
125
  * @param tokenOut - Output token address
126
126
  * @param liquidity - Amount of LP tokens to burn
127
127
  * @param recipient - Address to receive output tokens
128
- * @param options - Slippage tolerance and optional deadline
128
+ * @param options - Slippage tolerance and deadline
129
129
  * @returns Transaction details with encoded call data and routing information
130
130
  */
131
131
  buildZapOutParams(poolAddress: string, tokenOut: string, liquidity: bigint, recipient: string, options: LiquidityOptions): Promise<ZapOutDetails>;
@@ -136,7 +136,7 @@ export declare class LiquidityService {
136
136
  * @param tokenIn - Input token address
137
137
  * @param amountIn - Total input amount
138
138
  * @param amountInSplit - Split ratio (0-1)
139
- * @param options - Slippage tolerance and optional deadline
139
+ * @param options - Slippage tolerance and deadline
140
140
  * @returns Expected LP tokens and minimum amounts for both pool tokens
141
141
  */
142
142
  quoteZapIn(poolAddress: string, tokenIn: string, amountIn: bigint, amountInSplit: number, options: LiquidityOptions): Promise<ZapInQuote>;
@@ -146,7 +146,7 @@ export declare class LiquidityService {
146
146
  * @param poolAddress - FPMM pool address
147
147
  * @param tokenOut - Output token address
148
148
  * @param liquidity - Amount of LP tokens to burn
149
- * @param options - Slippage tolerance and optional deadline
149
+ * @param options - Slippage tolerance and deadline
150
150
  * @returns Expected output amount and minimum amounts after slippage
151
151
  */
152
152
  quoteZapOut(poolAddress: string, tokenOut: string, liquidity: bigint, options: LiquidityOptions): Promise<ZapOutQuote>;