@cowprotocol/sdk-flash-loans 1.1.1 → 1.1.2
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/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +20 -4
- package/dist/index.mjs +18 -4
- package/package.json +5 -5
package/dist/index.d.mts
CHANGED
|
@@ -98,6 +98,8 @@ declare const DEFAULT_HOOK_GAS_LIMIT: {
|
|
|
98
98
|
post: bigint;
|
|
99
99
|
};
|
|
100
100
|
declare const PERCENT_SCALE = 10000;
|
|
101
|
+
declare const BASIS_POINTS_SCALE: bigint;
|
|
102
|
+
declare const HALF_BASIS_POINTS_SCALE: bigint;
|
|
101
103
|
declare const DEFAULT_VALIDITY: number;
|
|
102
104
|
declare const GAS_ESTIMATION_ADDITION_PERCENT = 10;
|
|
103
105
|
declare const ADAPTER_DOMAIN_NAME = "AaveAdapterFactory";
|
|
@@ -237,9 +239,9 @@ declare class AaveCollateralSwapSdk {
|
|
|
237
239
|
approveCollateral(params: CollateralParameters): Promise<TransactionResponse>;
|
|
238
240
|
getExpectedInstanceAddress(flashLoanType: AaveFlashLoanType, chainId: SupportedChainId, trader: AccountAddress, hookAmounts: FlashLoanHookAmounts, order: EncodedOrder): Promise<AccountAddress>;
|
|
239
241
|
private approveCollateralIfNeeded;
|
|
240
|
-
calculateFlashLoanAmounts({ sellAmount,
|
|
242
|
+
calculateFlashLoanAmounts({ sellAmount, flashLoanFeeBps }: {
|
|
241
243
|
sellAmount: bigint;
|
|
242
|
-
|
|
244
|
+
flashLoanFeeBps: number;
|
|
243
245
|
}): {
|
|
244
246
|
flashLoanFeeAmount: bigint;
|
|
245
247
|
sellAmountToSign: bigint;
|
|
@@ -254,4 +256,4 @@ declare class AaveCollateralSwapSdk {
|
|
|
254
256
|
private adapterEIP1271Signature;
|
|
255
257
|
}
|
|
256
258
|
|
|
257
|
-
export { AAVE_ADAPTER_FACTORY, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, AaveFlashLoanType, type CollateralOrderData, type CollateralParameters, type CollateralPermitData, type CollateralSwapOrder, type CollateralSwapParams, type CollateralSwapPostParams, type CollateralSwapQuoteParams, type CollateralSwapTradeParams, DEFAULT_HOOK_GAS_LIMIT, DEFAULT_VALIDITY, EMPTY_PERMIT, type EncodedOrder, type FlashLoanHint, type FlashLoanHookAmounts, GAS_ESTIMATION_ADDITION_PERCENT, HASH_ZERO, PERCENT_SCALE };
|
|
259
|
+
export { AAVE_ADAPTER_FACTORY, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, AaveFlashLoanType, BASIS_POINTS_SCALE, type CollateralOrderData, type CollateralParameters, type CollateralPermitData, type CollateralSwapOrder, type CollateralSwapParams, type CollateralSwapPostParams, type CollateralSwapQuoteParams, type CollateralSwapTradeParams, DEFAULT_HOOK_GAS_LIMIT, DEFAULT_VALIDITY, EMPTY_PERMIT, type EncodedOrder, type FlashLoanHint, type FlashLoanHookAmounts, GAS_ESTIMATION_ADDITION_PERCENT, HALF_BASIS_POINTS_SCALE, HASH_ZERO, PERCENT_SCALE };
|
package/dist/index.d.ts
CHANGED
|
@@ -98,6 +98,8 @@ declare const DEFAULT_HOOK_GAS_LIMIT: {
|
|
|
98
98
|
post: bigint;
|
|
99
99
|
};
|
|
100
100
|
declare const PERCENT_SCALE = 10000;
|
|
101
|
+
declare const BASIS_POINTS_SCALE: bigint;
|
|
102
|
+
declare const HALF_BASIS_POINTS_SCALE: bigint;
|
|
101
103
|
declare const DEFAULT_VALIDITY: number;
|
|
102
104
|
declare const GAS_ESTIMATION_ADDITION_PERCENT = 10;
|
|
103
105
|
declare const ADAPTER_DOMAIN_NAME = "AaveAdapterFactory";
|
|
@@ -237,9 +239,9 @@ declare class AaveCollateralSwapSdk {
|
|
|
237
239
|
approveCollateral(params: CollateralParameters): Promise<TransactionResponse>;
|
|
238
240
|
getExpectedInstanceAddress(flashLoanType: AaveFlashLoanType, chainId: SupportedChainId, trader: AccountAddress, hookAmounts: FlashLoanHookAmounts, order: EncodedOrder): Promise<AccountAddress>;
|
|
239
241
|
private approveCollateralIfNeeded;
|
|
240
|
-
calculateFlashLoanAmounts({ sellAmount,
|
|
242
|
+
calculateFlashLoanAmounts({ sellAmount, flashLoanFeeBps }: {
|
|
241
243
|
sellAmount: bigint;
|
|
242
|
-
|
|
244
|
+
flashLoanFeeBps: number;
|
|
243
245
|
}): {
|
|
244
246
|
flashLoanFeeAmount: bigint;
|
|
245
247
|
sellAmountToSign: bigint;
|
|
@@ -254,4 +256,4 @@ declare class AaveCollateralSwapSdk {
|
|
|
254
256
|
private adapterEIP1271Signature;
|
|
255
257
|
}
|
|
256
258
|
|
|
257
|
-
export { AAVE_ADAPTER_FACTORY, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, AaveFlashLoanType, type CollateralOrderData, type CollateralParameters, type CollateralPermitData, type CollateralSwapOrder, type CollateralSwapParams, type CollateralSwapPostParams, type CollateralSwapQuoteParams, type CollateralSwapTradeParams, DEFAULT_HOOK_GAS_LIMIT, DEFAULT_VALIDITY, EMPTY_PERMIT, type EncodedOrder, type FlashLoanHint, type FlashLoanHookAmounts, GAS_ESTIMATION_ADDITION_PERCENT, HASH_ZERO, PERCENT_SCALE };
|
|
259
|
+
export { AAVE_ADAPTER_FACTORY, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, AaveFlashLoanType, BASIS_POINTS_SCALE, type CollateralOrderData, type CollateralParameters, type CollateralPermitData, type CollateralSwapOrder, type CollateralSwapParams, type CollateralSwapPostParams, type CollateralSwapQuoteParams, type CollateralSwapTradeParams, DEFAULT_HOOK_GAS_LIMIT, DEFAULT_VALIDITY, EMPTY_PERMIT, type EncodedOrder, type FlashLoanHint, type FlashLoanHookAmounts, GAS_ESTIMATION_ADDITION_PERCENT, HALF_BASIS_POINTS_SCALE, HASH_ZERO, PERCENT_SCALE };
|
package/dist/index.js
CHANGED
|
@@ -28,10 +28,12 @@ __export(src_exports, {
|
|
|
28
28
|
ADAPTER_SIGNATURE_TYPES: () => ADAPTER_SIGNATURE_TYPES,
|
|
29
29
|
AaveCollateralSwapSdk: () => AaveCollateralSwapSdk,
|
|
30
30
|
AaveFlashLoanType: () => AaveFlashLoanType,
|
|
31
|
+
BASIS_POINTS_SCALE: () => BASIS_POINTS_SCALE,
|
|
31
32
|
DEFAULT_HOOK_GAS_LIMIT: () => DEFAULT_HOOK_GAS_LIMIT,
|
|
32
33
|
DEFAULT_VALIDITY: () => DEFAULT_VALIDITY,
|
|
33
34
|
EMPTY_PERMIT: () => EMPTY_PERMIT,
|
|
34
35
|
GAS_ESTIMATION_ADDITION_PERCENT: () => GAS_ESTIMATION_ADDITION_PERCENT,
|
|
36
|
+
HALF_BASIS_POINTS_SCALE: () => HALF_BASIS_POINTS_SCALE,
|
|
35
37
|
HASH_ZERO: () => HASH_ZERO,
|
|
36
38
|
PERCENT_SCALE: () => PERCENT_SCALE
|
|
37
39
|
});
|
|
@@ -66,6 +68,8 @@ var DEFAULT_HOOK_GAS_LIMIT = {
|
|
|
66
68
|
post: 600000n
|
|
67
69
|
};
|
|
68
70
|
var PERCENT_SCALE = 1e4;
|
|
71
|
+
var BASIS_POINTS_SCALE = BigInt(100 * PERCENT_SCALE);
|
|
72
|
+
var HALF_BASIS_POINTS_SCALE = BASIS_POINTS_SCALE / 2n;
|
|
69
73
|
var DEFAULT_VALIDITY = 10 * 60;
|
|
70
74
|
var GAS_ESTIMATION_ADDITION_PERCENT = 10;
|
|
71
75
|
var ADAPTER_DOMAIN_NAME = "AaveAdapterFactory";
|
|
@@ -481,7 +485,11 @@ var AaveCollateralSwapSdk = class {
|
|
|
481
485
|
if (!Number.isFinite(flashLoanFeePercent) || flashLoanFeePercent < 0 || flashLoanFeePercent > 100) {
|
|
482
486
|
throw new Error(`flashLoanFeePercent must be between 0 and 100, got: ${flashLoanFeePercent}`);
|
|
483
487
|
}
|
|
484
|
-
const { flashLoanFeeAmount, sellAmountToSign } = this.calculateFlashLoanAmounts({
|
|
488
|
+
const { flashLoanFeeAmount, sellAmountToSign } = this.calculateFlashLoanAmounts({
|
|
489
|
+
flashLoanFeeBps: flashLoanFeePercent * 100,
|
|
490
|
+
// Convert percentage (0.05 for 0.05%) to bps (5)
|
|
491
|
+
sellAmount
|
|
492
|
+
});
|
|
485
493
|
const { validFor: _, ...restParameters } = tradeParameters;
|
|
486
494
|
return {
|
|
487
495
|
...restParameters,
|
|
@@ -571,7 +579,8 @@ var AaveCollateralSwapSdk = class {
|
|
|
571
579
|
signingScheme: import_sdk_order_book.SigningScheme.EIP1271,
|
|
572
580
|
customEIP1271Signature: (orderToSign2, signer) => {
|
|
573
581
|
return this.adapterEIP1271Signature(chainId, instanceAddress, orderToSign2, signer);
|
|
574
|
-
}
|
|
582
|
+
},
|
|
583
|
+
applyCostsSlippageAndFees: false
|
|
575
584
|
},
|
|
576
585
|
appData: {
|
|
577
586
|
metadata: {
|
|
@@ -671,8 +680,13 @@ var AaveCollateralSwapSdk = class {
|
|
|
671
680
|
await this.approveCollateral(collateralParams);
|
|
672
681
|
}
|
|
673
682
|
}
|
|
674
|
-
calculateFlashLoanAmounts({ sellAmount,
|
|
675
|
-
const
|
|
683
|
+
calculateFlashLoanAmounts({ sellAmount, flashLoanFeeBps }) {
|
|
684
|
+
const bps = BigInt(Math.round(flashLoanFeeBps));
|
|
685
|
+
const PERCENTAGE_FACTOR = BigInt(PERCENT_SCALE);
|
|
686
|
+
const product = sellAmount * bps;
|
|
687
|
+
const quotient = product / PERCENTAGE_FACTOR;
|
|
688
|
+
const remainder = product % PERCENTAGE_FACTOR;
|
|
689
|
+
const flashLoanFeeAmount = quotient + (remainder > 0n ? 1n : 0n);
|
|
676
690
|
return {
|
|
677
691
|
flashLoanFeeAmount,
|
|
678
692
|
sellAmountToSign: sellAmount - flashLoanFeeAmount
|
|
@@ -786,10 +800,12 @@ var AaveCollateralSwapSdk = class {
|
|
|
786
800
|
ADAPTER_SIGNATURE_TYPES,
|
|
787
801
|
AaveCollateralSwapSdk,
|
|
788
802
|
AaveFlashLoanType,
|
|
803
|
+
BASIS_POINTS_SCALE,
|
|
789
804
|
DEFAULT_HOOK_GAS_LIMIT,
|
|
790
805
|
DEFAULT_VALIDITY,
|
|
791
806
|
EMPTY_PERMIT,
|
|
792
807
|
GAS_ESTIMATION_ADDITION_PERCENT,
|
|
808
|
+
HALF_BASIS_POINTS_SCALE,
|
|
793
809
|
HASH_ZERO,
|
|
794
810
|
PERCENT_SCALE
|
|
795
811
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -32,6 +32,8 @@ var DEFAULT_HOOK_GAS_LIMIT = {
|
|
|
32
32
|
post: 600000n
|
|
33
33
|
};
|
|
34
34
|
var PERCENT_SCALE = 1e4;
|
|
35
|
+
var BASIS_POINTS_SCALE = BigInt(100 * PERCENT_SCALE);
|
|
36
|
+
var HALF_BASIS_POINTS_SCALE = BASIS_POINTS_SCALE / 2n;
|
|
35
37
|
var DEFAULT_VALIDITY = 10 * 60;
|
|
36
38
|
var GAS_ESTIMATION_ADDITION_PERCENT = 10;
|
|
37
39
|
var ADAPTER_DOMAIN_NAME = "AaveAdapterFactory";
|
|
@@ -447,7 +449,11 @@ var AaveCollateralSwapSdk = class {
|
|
|
447
449
|
if (!Number.isFinite(flashLoanFeePercent) || flashLoanFeePercent < 0 || flashLoanFeePercent > 100) {
|
|
448
450
|
throw new Error(`flashLoanFeePercent must be between 0 and 100, got: ${flashLoanFeePercent}`);
|
|
449
451
|
}
|
|
450
|
-
const { flashLoanFeeAmount, sellAmountToSign } = this.calculateFlashLoanAmounts({
|
|
452
|
+
const { flashLoanFeeAmount, sellAmountToSign } = this.calculateFlashLoanAmounts({
|
|
453
|
+
flashLoanFeeBps: flashLoanFeePercent * 100,
|
|
454
|
+
// Convert percentage (0.05 for 0.05%) to bps (5)
|
|
455
|
+
sellAmount
|
|
456
|
+
});
|
|
451
457
|
const { validFor: _, ...restParameters } = tradeParameters;
|
|
452
458
|
return {
|
|
453
459
|
...restParameters,
|
|
@@ -537,7 +543,8 @@ var AaveCollateralSwapSdk = class {
|
|
|
537
543
|
signingScheme: SigningScheme.EIP1271,
|
|
538
544
|
customEIP1271Signature: (orderToSign2, signer) => {
|
|
539
545
|
return this.adapterEIP1271Signature(chainId, instanceAddress, orderToSign2, signer);
|
|
540
|
-
}
|
|
546
|
+
},
|
|
547
|
+
applyCostsSlippageAndFees: false
|
|
541
548
|
},
|
|
542
549
|
appData: {
|
|
543
550
|
metadata: {
|
|
@@ -637,8 +644,13 @@ var AaveCollateralSwapSdk = class {
|
|
|
637
644
|
await this.approveCollateral(collateralParams);
|
|
638
645
|
}
|
|
639
646
|
}
|
|
640
|
-
calculateFlashLoanAmounts({ sellAmount,
|
|
641
|
-
const
|
|
647
|
+
calculateFlashLoanAmounts({ sellAmount, flashLoanFeeBps }) {
|
|
648
|
+
const bps = BigInt(Math.round(flashLoanFeeBps));
|
|
649
|
+
const PERCENTAGE_FACTOR = BigInt(PERCENT_SCALE);
|
|
650
|
+
const product = sellAmount * bps;
|
|
651
|
+
const quotient = product / PERCENTAGE_FACTOR;
|
|
652
|
+
const remainder = product % PERCENTAGE_FACTOR;
|
|
653
|
+
const flashLoanFeeAmount = quotient + (remainder > 0n ? 1n : 0n);
|
|
642
654
|
return {
|
|
643
655
|
flashLoanFeeAmount,
|
|
644
656
|
sellAmountToSign: sellAmount - flashLoanFeeAmount
|
|
@@ -751,10 +763,12 @@ export {
|
|
|
751
763
|
ADAPTER_SIGNATURE_TYPES,
|
|
752
764
|
AaveCollateralSwapSdk,
|
|
753
765
|
AaveFlashLoanType,
|
|
766
|
+
BASIS_POINTS_SCALE,
|
|
754
767
|
DEFAULT_HOOK_GAS_LIMIT,
|
|
755
768
|
DEFAULT_VALIDITY,
|
|
756
769
|
EMPTY_PERMIT,
|
|
757
770
|
GAS_ESTIMATION_ADDITION_PERCENT,
|
|
771
|
+
HALF_BASIS_POINTS_SCALE,
|
|
758
772
|
HASH_ZERO,
|
|
759
773
|
PERCENT_SCALE
|
|
760
774
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cowprotocol/sdk-flash-loans",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "Flash loans for CoW Protocol",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"@cowprotocol/sdk-common": "0.3.0",
|
|
18
|
+
"@cowprotocol/sdk-trading": "0.4.4",
|
|
18
19
|
"@cowprotocol/sdk-app-data": "4.1.5",
|
|
19
|
-
"@cowprotocol/sdk-trading": "0.4.3",
|
|
20
|
-
"@cowprotocol/sdk-order-signing": "0.1.8",
|
|
21
20
|
"@cowprotocol/sdk-order-book": "0.1.4",
|
|
21
|
+
"@cowprotocol/sdk-order-signing": "0.1.9",
|
|
22
22
|
"@cowprotocol/sdk-config": "0.2.0"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"viem": "2.30.5",
|
|
37
37
|
"@cow-sdk/typescript-config": "0.0.0-beta.0",
|
|
38
38
|
"@cowprotocol/sdk-ethers-v5-adapter": "0.2.0",
|
|
39
|
-
"@cowprotocol/sdk-
|
|
40
|
-
"@cowprotocol/sdk-
|
|
39
|
+
"@cowprotocol/sdk-ethers-v6-adapter": "0.2.0",
|
|
40
|
+
"@cowprotocol/sdk-viem-adapter": "0.2.0"
|
|
41
41
|
},
|
|
42
42
|
"scripts": {
|
|
43
43
|
"build": "tsup src/index.ts --format esm,cjs --dts",
|