@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.
- package/dist/core/abis/activePool.d.ts +2 -0
- package/dist/core/abis/activePool.d.ts.map +1 -0
- package/dist/core/abis/activePool.js +14 -0
- package/dist/core/abis/activePool.js.map +1 -0
- package/dist/core/abis/addressesRegistry.d.ts +2 -0
- package/dist/core/abis/addressesRegistry.d.ts.map +1 -0
- package/dist/core/abis/addressesRegistry.js +26 -0
- package/dist/core/abis/addressesRegistry.js.map +1 -0
- package/dist/core/abis/borrowerOperations.d.ts +9 -0
- package/dist/core/abis/borrowerOperations.d.ts.map +1 -0
- package/dist/core/abis/borrowerOperations.js +89 -0
- package/dist/core/abis/borrowerOperations.js.map +1 -0
- package/dist/core/abis/hintHelpers.d.ts +2 -0
- package/dist/core/abis/hintHelpers.d.ts.map +1 -0
- package/dist/core/abis/hintHelpers.js +14 -0
- package/dist/core/abis/hintHelpers.js.map +1 -0
- package/dist/core/abis/index.d.ts +10 -0
- package/dist/core/abis/index.d.ts.map +1 -1
- package/dist/core/abis/index.js +10 -0
- package/dist/core/abis/index.js.map +1 -1
- package/dist/core/abis/multiTroveGetter.d.ts +8 -0
- package/dist/core/abis/multiTroveGetter.d.ts.map +1 -0
- package/dist/core/abis/multiTroveGetter.js +15 -0
- package/dist/core/abis/multiTroveGetter.js.map +1 -0
- package/dist/core/abis/priceFeed.d.ts +7 -0
- package/dist/core/abis/priceFeed.d.ts.map +1 -0
- package/dist/core/abis/priceFeed.js +16 -0
- package/dist/core/abis/priceFeed.js.map +1 -0
- package/dist/core/abis/sortedTroves.d.ts +2 -0
- package/dist/core/abis/sortedTroves.d.ts.map +1 -0
- package/dist/core/abis/sortedTroves.js +15 -0
- package/dist/core/abis/sortedTroves.js.map +1 -0
- package/dist/core/abis/systemParams.d.ts +2 -0
- package/dist/core/abis/systemParams.d.ts.map +1 -0
- package/dist/core/abis/systemParams.js +14 -0
- package/dist/core/abis/systemParams.js.map +1 -0
- package/dist/core/abis/troveManager.d.ts +2 -0
- package/dist/core/abis/troveManager.d.ts.map +1 -0
- package/dist/core/abis/troveManager.js +27 -0
- package/dist/core/abis/troveManager.js.map +1 -0
- package/dist/core/abis/troveNFT.d.ts +2 -0
- package/dist/core/abis/troveNFT.d.ts.map +1 -0
- package/dist/core/abis/troveNFT.js +9 -0
- package/dist/core/abis/troveNFT.js.map +1 -0
- package/dist/core/constants/borrowConstants.d.ts +10 -0
- package/dist/core/constants/borrowConstants.d.ts.map +1 -0
- package/dist/core/constants/borrowConstants.js +16 -0
- package/dist/core/constants/borrowConstants.js.map +1 -0
- package/dist/core/constants/borrowRegistries.d.ts +7 -0
- package/dist/core/constants/borrowRegistries.d.ts.map +1 -0
- package/dist/core/constants/borrowRegistries.js +31 -0
- package/dist/core/constants/borrowRegistries.js.map +1 -0
- package/dist/core/constants/index.d.ts +2 -0
- package/dist/core/constants/index.d.ts.map +1 -1
- package/dist/core/constants/index.js +2 -0
- package/dist/core/constants/index.js.map +1 -1
- package/dist/core/types/borrow.d.ts +87 -0
- package/dist/core/types/borrow.d.ts.map +1 -0
- package/dist/core/types/borrow.js +3 -0
- package/dist/core/types/borrow.js.map +1 -0
- package/dist/core/types/index.d.ts +1 -0
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -0
- package/dist/core/types/index.js.map +1 -1
- package/dist/core/types/liquidity.d.ts +10 -10
- package/dist/core/types/liquidity.d.ts.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index.js.map +1 -1
- package/dist/services/borrow/BorrowService.d.ts +54 -0
- package/dist/services/borrow/BorrowService.d.ts.map +1 -0
- package/dist/services/borrow/BorrowService.js +129 -0
- package/dist/services/borrow/BorrowService.js.map +1 -0
- package/dist/services/borrow/borrowHelpers.d.ts +4 -0
- package/dist/services/borrow/borrowHelpers.d.ts.map +1 -0
- package/dist/services/borrow/borrowHelpers.js +13 -0
- package/dist/services/borrow/borrowHelpers.js.map +1 -0
- package/dist/services/borrow/borrowMath.d.ts +13 -0
- package/dist/services/borrow/borrowMath.d.ts.map +1 -0
- package/dist/services/borrow/borrowMath.js +129 -0
- package/dist/services/borrow/borrowMath.js.map +1 -0
- package/dist/services/borrow/index.d.ts +2 -0
- package/dist/services/borrow/index.d.ts.map +1 -0
- package/dist/services/borrow/index.js +18 -0
- package/dist/services/borrow/index.js.map +1 -0
- package/dist/services/borrow/internal/borrowApprovalService.d.ts +14 -0
- package/dist/services/borrow/internal/borrowApprovalService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowApprovalService.js +53 -0
- package/dist/services/borrow/internal/borrowApprovalService.js.map +1 -0
- package/dist/services/borrow/internal/borrowContextStore.d.ts +11 -0
- package/dist/services/borrow/internal/borrowContextStore.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowContextStore.js +40 -0
- package/dist/services/borrow/internal/borrowContextStore.js.map +1 -0
- package/dist/services/borrow/internal/borrowErc20.d.ts +5 -0
- package/dist/services/borrow/internal/borrowErc20.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowErc20.js +43 -0
- package/dist/services/borrow/internal/borrowErc20.js.map +1 -0
- package/dist/services/borrow/internal/borrowHints.d.ts +7 -0
- package/dist/services/borrow/internal/borrowHints.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowHints.js +31 -0
- package/dist/services/borrow/internal/borrowHints.js.map +1 -0
- package/dist/services/borrow/internal/borrowPositionParser.d.ts +4 -0
- package/dist/services/borrow/internal/borrowPositionParser.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowPositionParser.js +87 -0
- package/dist/services/borrow/internal/borrowPositionParser.js.map +1 -0
- package/dist/services/borrow/internal/borrowReadService.d.ts +28 -0
- package/dist/services/borrow/internal/borrowReadService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowReadService.js +218 -0
- package/dist/services/borrow/internal/borrowReadService.js.map +1 -0
- package/dist/services/borrow/internal/borrowRegistryReader.d.ts +5 -0
- package/dist/services/borrow/internal/borrowRegistryReader.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowRegistryReader.js +96 -0
- package/dist/services/borrow/internal/borrowRegistryReader.js.map +1 -0
- package/dist/services/borrow/internal/borrowTransactionService.d.ts +23 -0
- package/dist/services/borrow/internal/borrowTransactionService.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowTransactionService.js +276 -0
- package/dist/services/borrow/internal/borrowTransactionService.js.map +1 -0
- package/dist/services/borrow/internal/borrowTypes.d.ts +15 -0
- package/dist/services/borrow/internal/borrowTypes.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowTypes.js +3 -0
- package/dist/services/borrow/internal/borrowTypes.js.map +1 -0
- package/dist/services/borrow/internal/borrowValidation.d.ts +13 -0
- package/dist/services/borrow/internal/borrowValidation.d.ts.map +1 -0
- package/dist/services/borrow/internal/borrowValidation.js +96 -0
- package/dist/services/borrow/internal/borrowValidation.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/liquidity/LiquidityService.d.ts +10 -10
- package/dist/services/liquidity/LiquidityService.js +10 -10
- package/dist/services/liquidity/basicLiquidity.d.ts.map +1 -1
- package/dist/services/liquidity/basicLiquidity.js +6 -8
- package/dist/services/liquidity/basicLiquidity.js.map +1 -1
- package/dist/services/liquidity/liquidityHelpers.d.ts +1 -2
- package/dist/services/liquidity/liquidityHelpers.d.ts.map +1 -1
- package/dist/services/liquidity/liquidityHelpers.js +0 -4
- package/dist/services/liquidity/liquidityHelpers.js.map +1 -1
- package/dist/services/liquidity/zapHelpers.d.ts +9 -4
- package/dist/services/liquidity/zapHelpers.d.ts.map +1 -1
- package/dist/services/liquidity/zapHelpers.js +9 -4
- package/dist/services/liquidity/zapHelpers.js.map +1 -1
- package/dist/services/liquidity/zapIn.d.ts.map +1 -1
- package/dist/services/liquidity/zapIn.js +13 -9
- package/dist/services/liquidity/zapIn.js.map +1 -1
- package/dist/services/liquidity/zapOut.d.ts.map +1 -1
- package/dist/services/liquidity/zapOut.js +6 -4
- package/dist/services/liquidity/zapOut.js.map +1 -1
- package/dist/services/pools/PoolService.d.ts +13 -0
- package/dist/services/pools/PoolService.d.ts.map +1 -1
- package/dist/services/pools/PoolService.js +20 -2
- package/dist/services/pools/PoolService.js.map +1 -1
- package/dist/services/quotes/QuoteService.js.map +1 -1
- package/dist/services/swap/SwapService.d.ts +5 -5
- package/dist/services/swap/SwapService.d.ts.map +1 -1
- package/dist/services/swap/SwapService.js +7 -6
- package/dist/services/swap/SwapService.js.map +1 -1
- package/dist/utils/deadline.d.ts +21 -0
- package/dist/utils/deadline.d.ts.map +1 -0
- package/dist/utils/deadline.js +26 -0
- package/dist/utils/deadline.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pathEncoder.d.ts +5 -0
- package/dist/utils/pathEncoder.d.ts.map +1 -1
- package/dist/utils/pathEncoder.js.map +1 -1
- 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 @@
|
|
|
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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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/services/index.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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>;
|