@defisaver/automation-sdk 1.2.28 → 1.2.30
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/esm/services/triggerService.d.ts +16 -0
- package/esm/services/triggerService.js +38 -0
- package/package.json +1 -1
- package/src/services/triggerService.ts +55 -0
- package/umd/index.js +2536 -566
- package/yarn-error.log +7233 -0
|
@@ -130,3 +130,19 @@ export declare const sparkQuotePriceTrigger: {
|
|
|
130
130
|
ratioState: RatioState;
|
|
131
131
|
};
|
|
132
132
|
};
|
|
133
|
+
export declare const curveUsdBorrowRateTrigger: {
|
|
134
|
+
encode(market: EthereumAddress, targetRate: string, rateState: RatioState): string[];
|
|
135
|
+
decode(triggerData: string[]): {
|
|
136
|
+
market: EthereumAddress;
|
|
137
|
+
targetRate: string;
|
|
138
|
+
rateState: RatioState;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
export declare const curveUsdSoftLiquidationTrigger: {
|
|
142
|
+
encode(market: EthereumAddress, owner: EthereumAddress, percentage: string): string[];
|
|
143
|
+
decode(triggerData: string[]): {
|
|
144
|
+
market: EthereumAddress;
|
|
145
|
+
owner: EthereumAddress;
|
|
146
|
+
percentage: string;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
@@ -222,3 +222,41 @@ export const sparkQuotePriceTrigger = {
|
|
|
222
222
|
};
|
|
223
223
|
},
|
|
224
224
|
};
|
|
225
|
+
export const curveUsdBorrowRateTrigger = {
|
|
226
|
+
encode(market, targetRate, rateState) {
|
|
227
|
+
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
228
|
+
// we reverse engineer that so we can calculate rate = ln(y/100 + 1) / 365*86400 where y is input in %
|
|
229
|
+
const rate = new Dec(new Dec(new Dec(targetRate).div(100)).plus(1)).ln().div(365).div(86400)
|
|
230
|
+
.toString();
|
|
231
|
+
const rateWei = new Dec(rate).mul(Math.pow(10, 18)).floor().toString(); // 18 decimals
|
|
232
|
+
return [mockedWeb3.eth.abi.encodeParameters(['address', 'uint256', 'uint8'], [market, rateWei, rateState])];
|
|
233
|
+
},
|
|
234
|
+
decode(triggerData) {
|
|
235
|
+
const decodedData = mockedWeb3.eth.abi.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]);
|
|
236
|
+
const rateEth = mockedWeb3.utils.fromWei(decodedData[1]);
|
|
237
|
+
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
238
|
+
const exponentRate = new Dec(rateEth).mul(365).mul(86400);
|
|
239
|
+
const targetRate = new Dec(new Dec(2.718281828459).pow(exponentRate).minus(1)).mul(100)
|
|
240
|
+
.toString();
|
|
241
|
+
return {
|
|
242
|
+
market: decodedData[0],
|
|
243
|
+
targetRate,
|
|
244
|
+
rateState: +decodedData[2],
|
|
245
|
+
};
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
export const curveUsdSoftLiquidationTrigger = {
|
|
249
|
+
encode(market, owner, percentage) {
|
|
250
|
+
// 100% = 1e18 => 0.01 = 1e16
|
|
251
|
+
const _percentage = new Dec(percentage).mul(Math.pow(10, 18)).floor().toString();
|
|
252
|
+
return [mockedWeb3.eth.abi.encodeParameters(['address', 'address', 'uint256'], [market, owner, _percentage])];
|
|
253
|
+
},
|
|
254
|
+
decode(triggerData) {
|
|
255
|
+
const decodedData = mockedWeb3.eth.abi.decodeParameters(['address', 'address', 'uint256'], triggerData[0]);
|
|
256
|
+
return {
|
|
257
|
+
market: decodedData[0],
|
|
258
|
+
owner: decodedData[1],
|
|
259
|
+
percentage: mockedWeb3.utils.fromWei(decodedData[2]),
|
|
260
|
+
};
|
|
261
|
+
},
|
|
262
|
+
};
|
package/package.json
CHANGED
|
@@ -278,3 +278,58 @@ export const sparkQuotePriceTrigger = {
|
|
|
278
278
|
};
|
|
279
279
|
},
|
|
280
280
|
};
|
|
281
|
+
|
|
282
|
+
export const curveUsdBorrowRateTrigger = {
|
|
283
|
+
encode(
|
|
284
|
+
market: EthereumAddress,
|
|
285
|
+
targetRate: string,
|
|
286
|
+
rateState: RatioState,
|
|
287
|
+
) {
|
|
288
|
+
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
289
|
+
// we reverse engineer that so we can calculate rate = ln(y/100 + 1) / 365*86400 where y is input in %
|
|
290
|
+
const rate = new Dec(new Dec(new Dec(targetRate).div(100)).plus(1)).ln().div(365).div(86400)
|
|
291
|
+
.toString();
|
|
292
|
+
const rateWei = new Dec(rate).mul(10 ** 18).floor().toString(); // 18 decimals
|
|
293
|
+
|
|
294
|
+
return [mockedWeb3.eth.abi.encodeParameters(['address', 'uint256', 'uint8'], [market, rateWei, rateState])];
|
|
295
|
+
},
|
|
296
|
+
decode(
|
|
297
|
+
triggerData: TriggerData,
|
|
298
|
+
): { market: EthereumAddress, targetRate: string, rateState: RatioState } {
|
|
299
|
+
const decodedData = mockedWeb3.eth.abi.decodeParameters(['address', 'uint256', 'uint8'], triggerData[0]) as Array<string>;
|
|
300
|
+
const rateEth = mockedWeb3.utils.fromWei(decodedData[1]);
|
|
301
|
+
|
|
302
|
+
// the form is x = (e**(rate*365*86400))-1 where x*100 is number in %
|
|
303
|
+
const exponentRate = new Dec(rateEth).mul(365).mul(86400);
|
|
304
|
+
const targetRate = new Dec(new Dec(2.718281828459).pow(exponentRate).minus(1)).mul(100)
|
|
305
|
+
.toString();
|
|
306
|
+
return {
|
|
307
|
+
market: decodedData[0],
|
|
308
|
+
targetRate,
|
|
309
|
+
rateState: +decodedData[2],
|
|
310
|
+
};
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
export const curveUsdSoftLiquidationTrigger = {
|
|
315
|
+
encode(
|
|
316
|
+
market: EthereumAddress,
|
|
317
|
+
owner: EthereumAddress,
|
|
318
|
+
percentage: string,
|
|
319
|
+
) {
|
|
320
|
+
// 100% = 1e18 => 0.01 = 1e16
|
|
321
|
+
const _percentage = new Dec(percentage).mul(10 ** 18).floor().toString();
|
|
322
|
+
return [mockedWeb3.eth.abi.encodeParameters(['address', 'address', 'uint256'], [market, owner, _percentage])];
|
|
323
|
+
},
|
|
324
|
+
decode(
|
|
325
|
+
triggerData: TriggerData,
|
|
326
|
+
): { market: EthereumAddress, owner: EthereumAddress, percentage: string } {
|
|
327
|
+
const decodedData = mockedWeb3.eth.abi.decodeParameters(['address', 'address', 'uint256'], triggerData[0]) as Array<string>;
|
|
328
|
+
|
|
329
|
+
return {
|
|
330
|
+
market: decodedData[0],
|
|
331
|
+
owner: decodedData[1],
|
|
332
|
+
percentage: mockedWeb3.utils.fromWei(decodedData[2]),
|
|
333
|
+
};
|
|
334
|
+
},
|
|
335
|
+
};
|