@cowprotocol/sdk-flash-loans 1.3.0 → 1.5.0

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 CHANGED
@@ -114,6 +114,25 @@ declare const ADAPTER_SIGNATURE_TYPES: {
114
114
  declare const EMPTY_PERMIT: CollateralPermitData;
115
115
  declare const AAVE_DAPP_ID_PER_TYPE: Record<AaveFlashLoanType, string>;
116
116
 
117
+ /**
118
+ * Configuration options for the AaveCollateralSwapSdk.
119
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} hookAdapterPerType -
120
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
121
+ * Defaults to the predefined addresses from the constants.
122
+ * @example
123
+ * ```typescript
124
+ * const config: AaveCollateralSwapSdkConfig = {
125
+ * hookAdapterPerType: {
126
+ * [AaveFlashLoanType.CollateralSwap]: {
127
+ * [SupportedChainId.GNOSIS_CHAIN]: '0x...',
128
+ * },
129
+ * },
130
+ * }
131
+ * ```
132
+ */
133
+ type AaveCollateralSwapSdkConfig = {
134
+ hookAdapterPerType?: Record<AaveFlashLoanType, Record<SupportedChainId, string>>;
135
+ };
117
136
  /**
118
137
  * SDK for executing Aave flash loan operations, particularly collateral swaps.
119
138
  *
@@ -125,6 +144,16 @@ declare const AAVE_DAPP_ID_PER_TYPE: Record<AaveFlashLoanType, string>;
125
144
  * @see https://docs.cow.fi/
126
145
  */
127
146
  declare class AaveCollateralSwapSdk {
147
+ private readonly hookAdapterPerType;
148
+ /**
149
+ * Creates an instance of AaveCollateralSwapSdk.
150
+ *
151
+ * @param {Object} config - Configuration options for the SDK.
152
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} config.hookAdapterPerType -
153
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
154
+ * Defaults to the predefined addresses from the constants.
155
+ */
156
+ constructor(config?: AaveCollateralSwapSdkConfig);
128
157
  /**
129
158
  * Executes a collateral swap using Aave flash loans.
130
159
  *
@@ -258,4 +287,4 @@ declare class AaveCollateralSwapSdk {
258
287
  private adapterEIP1271Signature;
259
288
  }
260
289
 
261
- export { AAVE_ADAPTER_FACTORY, AAVE_DAPP_ID_PER_TYPE, 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 };
290
+ export { AAVE_ADAPTER_FACTORY, AAVE_DAPP_ID_PER_TYPE, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, type AaveCollateralSwapSdkConfig, 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
@@ -114,6 +114,25 @@ declare const ADAPTER_SIGNATURE_TYPES: {
114
114
  declare const EMPTY_PERMIT: CollateralPermitData;
115
115
  declare const AAVE_DAPP_ID_PER_TYPE: Record<AaveFlashLoanType, string>;
116
116
 
117
+ /**
118
+ * Configuration options for the AaveCollateralSwapSdk.
119
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} hookAdapterPerType -
120
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
121
+ * Defaults to the predefined addresses from the constants.
122
+ * @example
123
+ * ```typescript
124
+ * const config: AaveCollateralSwapSdkConfig = {
125
+ * hookAdapterPerType: {
126
+ * [AaveFlashLoanType.CollateralSwap]: {
127
+ * [SupportedChainId.GNOSIS_CHAIN]: '0x...',
128
+ * },
129
+ * },
130
+ * }
131
+ * ```
132
+ */
133
+ type AaveCollateralSwapSdkConfig = {
134
+ hookAdapterPerType?: Record<AaveFlashLoanType, Record<SupportedChainId, string>>;
135
+ };
117
136
  /**
118
137
  * SDK for executing Aave flash loan operations, particularly collateral swaps.
119
138
  *
@@ -125,6 +144,16 @@ declare const AAVE_DAPP_ID_PER_TYPE: Record<AaveFlashLoanType, string>;
125
144
  * @see https://docs.cow.fi/
126
145
  */
127
146
  declare class AaveCollateralSwapSdk {
147
+ private readonly hookAdapterPerType;
148
+ /**
149
+ * Creates an instance of AaveCollateralSwapSdk.
150
+ *
151
+ * @param {Object} config - Configuration options for the SDK.
152
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} config.hookAdapterPerType -
153
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
154
+ * Defaults to the predefined addresses from the constants.
155
+ */
156
+ constructor(config?: AaveCollateralSwapSdkConfig);
128
157
  /**
129
158
  * Executes a collateral swap using Aave flash loans.
130
159
  *
@@ -258,4 +287,4 @@ declare class AaveCollateralSwapSdk {
258
287
  private adapterEIP1271Signature;
259
288
  }
260
289
 
261
- export { AAVE_ADAPTER_FACTORY, AAVE_DAPP_ID_PER_TYPE, 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 };
290
+ export { AAVE_ADAPTER_FACTORY, AAVE_DAPP_ID_PER_TYPE, AAVE_HOOK_ADAPTER_PER_TYPE, AAVE_POOL_ADDRESS, ADAPTER_DOMAIN_NAME, ADAPTER_DOMAIN_VERSION, ADAPTER_SIGNATURE_TYPES, AaveCollateralSwapSdk, type AaveCollateralSwapSdkConfig, 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
@@ -67,30 +67,18 @@ var AAVE_POOL_ADDRESS = {
67
67
  [import_sdk_config.SupportedChainId.LINEA]: "0xc47b8C00b0f69a36fa203Ffeac0334874574a8Ac",
68
68
  [import_sdk_config.SupportedChainId.PLASMA]: "0x925a2A7214Ed92428B5b1B090F80b25700095e12"
69
69
  };
70
- var AAVE_ADAPTER_FACTORY = {
71
- ...(0, import_sdk_config.mapAddressToSupportedNetworks)(""),
72
- [import_sdk_config.SupportedChainId.GNOSIS_CHAIN]: "0x7f230F7Cee38ca371b871B74B3C6ded4932A2f93",
73
- [import_sdk_config.SupportedChainId.MAINNET]: "0x22E08c56a6799e28e7b05A117D853B9b46abc017",
74
- [import_sdk_config.SupportedChainId.BASE]: "0xc5D68e305e0b5998f895e34d4440954072F285B6"
75
- };
76
- var AAVE_COLLATERAL_SWAP_ADAPTER_HOOK = {
77
- ...(0, import_sdk_config.mapAddressToSupportedNetworks)(""),
78
- [import_sdk_config.SupportedChainId.GNOSIS_CHAIN]: "0x837aA74e8daf7Fd7160f078ca455a67B7F441E4b",
79
- [import_sdk_config.SupportedChainId.MAINNET]: "0xFEb471EC22E5572dbb44229301c266f4C305A78a",
80
- [import_sdk_config.SupportedChainId.BASE]: "0xBb45A7898A6f06a9c148BfeD0C103140F0079cd9"
81
- };
82
- var AAVE_DEBT_SWAP_ADAPTER_HOOK = {
83
- ...(0, import_sdk_config.mapAddressToSupportedNetworks)(""),
84
- [import_sdk_config.SupportedChainId.GNOSIS_CHAIN]: "0xC9A495A17B1eeC18AE0f0865840B8fd3f8a9DE3F",
85
- [import_sdk_config.SupportedChainId.MAINNET]: "0x238f57A2c3F0696fB20295075a0F9A18EfC67D3a",
86
- [import_sdk_config.SupportedChainId.BASE]: "0xaCbd34fAB78BD6C8738eb32dDAFd688df98CD2E3"
87
- };
88
- var AAVE_REPAY_COLLATERAL_ADAPTER_HOOK = {
89
- ...(0, import_sdk_config.mapAddressToSupportedNetworks)(""),
90
- [import_sdk_config.SupportedChainId.GNOSIS_CHAIN]: "0x2890CE372f3a397B6f3BB3a71B1836A6F3F33657",
91
- [import_sdk_config.SupportedChainId.MAINNET]: "0x9eB0ffd318e862D344792a8e589e8393E8bEd96F",
92
- [import_sdk_config.SupportedChainId.BASE]: "0x1549445700D0Cb2D7Ce85ECd5a7FD7Ba4a3D40A7"
93
- };
70
+ var AAVE_ADAPTER_FACTORY = (0, import_sdk_config.mapAddressToSupportedNetworks)(
71
+ "0x43c658Ea38bBfD897706fDb35e2468ef5D8F6927"
72
+ );
73
+ var AAVE_COLLATERAL_SWAP_ADAPTER_HOOK = (0, import_sdk_config.mapAddressToSupportedNetworks)(
74
+ "0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F"
75
+ );
76
+ var AAVE_DEBT_SWAP_ADAPTER_HOOK = (0, import_sdk_config.mapAddressToSupportedNetworks)(
77
+ "0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1"
78
+ );
79
+ var AAVE_REPAY_COLLATERAL_ADAPTER_HOOK = (0, import_sdk_config.mapAddressToSupportedNetworks)(
80
+ "0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F"
81
+ );
94
82
  var AAVE_HOOK_ADAPTER_PER_TYPE = {
95
83
  ["CollateralSwap" /* CollateralSwap */]: AAVE_COLLATERAL_SWAP_ADAPTER_HOOK,
96
84
  ["DebtSwap" /* DebtSwap */]: AAVE_DEBT_SWAP_ADAPTER_HOOK,
@@ -449,6 +437,18 @@ var repayWithCollateralAdapterAbi = [
449
437
 
450
438
  // src/aave/AaveCollateralSwapSdk.ts
451
439
  var AaveCollateralSwapSdk = class {
440
+ hookAdapterPerType;
441
+ /**
442
+ * Creates an instance of AaveCollateralSwapSdk.
443
+ *
444
+ * @param {Object} config - Configuration options for the SDK.
445
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} config.hookAdapterPerType -
446
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
447
+ * Defaults to the predefined addresses from the constants.
448
+ */
449
+ constructor(config) {
450
+ this.hookAdapterPerType = config?.hookAdapterPerType ?? AAVE_HOOK_ADAPTER_PER_TYPE;
451
+ }
452
452
  /**
453
453
  * Executes a collateral swap using Aave flash loans.
454
454
  *
@@ -704,7 +704,7 @@ var AaveCollateralSwapSdk = class {
704
704
  const hookData = this.buildHookOrderData(trader, hookAmounts, order);
705
705
  return await (0, import_sdk_common.getGlobalAdapter)().readContract({
706
706
  address: AAVE_ADAPTER_FACTORY[chainId],
707
- args: [AAVE_HOOK_ADAPTER_PER_TYPE[flashLoanType][chainId], hookData],
707
+ args: [this.hookAdapterPerType[flashLoanType][chainId], hookData],
708
708
  functionName: "getInstanceDeterministicAddress",
709
709
  abi: aaveAdapterFactoryAbi
710
710
  });
@@ -732,7 +732,7 @@ var AaveCollateralSwapSdk = class {
732
732
  }
733
733
  getPreHookCallData(flashLoanType, chainId, trader, hookAmounts, order, instanceAddress) {
734
734
  const hookData = this.buildHookOrderData(trader, hookAmounts, order);
735
- const adapterImplementation = AAVE_HOOK_ADAPTER_PER_TYPE[flashLoanType][chainId];
735
+ const adapterImplementation = this.hookAdapterPerType[flashLoanType][chainId];
736
736
  return (0, import_sdk_common.getGlobalAdapter)().utils.encodeFunction(aaveAdapterFactoryAbi, "deployAndTransferFlashLoan", [
737
737
  adapterImplementation,
738
738
  { ...hookData, receiver: instanceAddress }
package/dist/index.mjs CHANGED
@@ -30,30 +30,18 @@ var AAVE_POOL_ADDRESS = {
30
30
  [SupportedChainId.LINEA]: "0xc47b8C00b0f69a36fa203Ffeac0334874574a8Ac",
31
31
  [SupportedChainId.PLASMA]: "0x925a2A7214Ed92428B5b1B090F80b25700095e12"
32
32
  };
33
- var AAVE_ADAPTER_FACTORY = {
34
- ...mapAddressToSupportedNetworks(""),
35
- [SupportedChainId.GNOSIS_CHAIN]: "0x7f230F7Cee38ca371b871B74B3C6ded4932A2f93",
36
- [SupportedChainId.MAINNET]: "0x22E08c56a6799e28e7b05A117D853B9b46abc017",
37
- [SupportedChainId.BASE]: "0xc5D68e305e0b5998f895e34d4440954072F285B6"
38
- };
39
- var AAVE_COLLATERAL_SWAP_ADAPTER_HOOK = {
40
- ...mapAddressToSupportedNetworks(""),
41
- [SupportedChainId.GNOSIS_CHAIN]: "0x837aA74e8daf7Fd7160f078ca455a67B7F441E4b",
42
- [SupportedChainId.MAINNET]: "0xFEb471EC22E5572dbb44229301c266f4C305A78a",
43
- [SupportedChainId.BASE]: "0xBb45A7898A6f06a9c148BfeD0C103140F0079cd9"
44
- };
45
- var AAVE_DEBT_SWAP_ADAPTER_HOOK = {
46
- ...mapAddressToSupportedNetworks(""),
47
- [SupportedChainId.GNOSIS_CHAIN]: "0xC9A495A17B1eeC18AE0f0865840B8fd3f8a9DE3F",
48
- [SupportedChainId.MAINNET]: "0x238f57A2c3F0696fB20295075a0F9A18EfC67D3a",
49
- [SupportedChainId.BASE]: "0xaCbd34fAB78BD6C8738eb32dDAFd688df98CD2E3"
50
- };
51
- var AAVE_REPAY_COLLATERAL_ADAPTER_HOOK = {
52
- ...mapAddressToSupportedNetworks(""),
53
- [SupportedChainId.GNOSIS_CHAIN]: "0x2890CE372f3a397B6f3BB3a71B1836A6F3F33657",
54
- [SupportedChainId.MAINNET]: "0x9eB0ffd318e862D344792a8e589e8393E8bEd96F",
55
- [SupportedChainId.BASE]: "0x1549445700D0Cb2D7Ce85ECd5a7FD7Ba4a3D40A7"
56
- };
33
+ var AAVE_ADAPTER_FACTORY = mapAddressToSupportedNetworks(
34
+ "0x43c658Ea38bBfD897706fDb35e2468ef5D8F6927"
35
+ );
36
+ var AAVE_COLLATERAL_SWAP_ADAPTER_HOOK = mapAddressToSupportedNetworks(
37
+ "0x29A9b0a13c81d59f13BA0f39DBDCAA1AB2adc95F"
38
+ );
39
+ var AAVE_DEBT_SWAP_ADAPTER_HOOK = mapAddressToSupportedNetworks(
40
+ "0xbE9A121bb958BBBb027dA728DEC0D5496811b7d1"
41
+ );
42
+ var AAVE_REPAY_COLLATERAL_ADAPTER_HOOK = mapAddressToSupportedNetworks(
43
+ "0x8e25d1210FabB0fcAdE92a82C4a89568B4b10E0F"
44
+ );
57
45
  var AAVE_HOOK_ADAPTER_PER_TYPE = {
58
46
  ["CollateralSwap" /* CollateralSwap */]: AAVE_COLLATERAL_SWAP_ADAPTER_HOOK,
59
47
  ["DebtSwap" /* DebtSwap */]: AAVE_DEBT_SWAP_ADAPTER_HOOK,
@@ -412,6 +400,18 @@ var repayWithCollateralAdapterAbi = [
412
400
 
413
401
  // src/aave/AaveCollateralSwapSdk.ts
414
402
  var AaveCollateralSwapSdk = class {
403
+ hookAdapterPerType;
404
+ /**
405
+ * Creates an instance of AaveCollateralSwapSdk.
406
+ *
407
+ * @param {Object} config - Configuration options for the SDK.
408
+ * @param {Record<AaveFlashLoanType, Record<SupportedChainId, string>>} config.hookAdapterPerType -
409
+ * Mapping of flash loan types to chain-specific hook adapter addresses.
410
+ * Defaults to the predefined addresses from the constants.
411
+ */
412
+ constructor(config) {
413
+ this.hookAdapterPerType = config?.hookAdapterPerType ?? AAVE_HOOK_ADAPTER_PER_TYPE;
414
+ }
415
415
  /**
416
416
  * Executes a collateral swap using Aave flash loans.
417
417
  *
@@ -667,7 +667,7 @@ var AaveCollateralSwapSdk = class {
667
667
  const hookData = this.buildHookOrderData(trader, hookAmounts, order);
668
668
  return await getGlobalAdapter().readContract({
669
669
  address: AAVE_ADAPTER_FACTORY[chainId],
670
- args: [AAVE_HOOK_ADAPTER_PER_TYPE[flashLoanType][chainId], hookData],
670
+ args: [this.hookAdapterPerType[flashLoanType][chainId], hookData],
671
671
  functionName: "getInstanceDeterministicAddress",
672
672
  abi: aaveAdapterFactoryAbi
673
673
  });
@@ -695,7 +695,7 @@ var AaveCollateralSwapSdk = class {
695
695
  }
696
696
  getPreHookCallData(flashLoanType, chainId, trader, hookAmounts, order, instanceAddress) {
697
697
  const hookData = this.buildHookOrderData(trader, hookAmounts, order);
698
- const adapterImplementation = AAVE_HOOK_ADAPTER_PER_TYPE[flashLoanType][chainId];
698
+ const adapterImplementation = this.hookAdapterPerType[flashLoanType][chainId];
699
699
  return getGlobalAdapter().utils.encodeFunction(aaveAdapterFactoryAbi, "deployAndTransferFlashLoan", [
700
700
  adapterImplementation,
701
701
  { ...hookData, receiver: instanceAddress }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cowprotocol/sdk-flash-loans",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Flash loans for CoW Protocol",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -14,12 +14,12 @@
14
14
  "access": "public"
15
15
  },
16
16
  "dependencies": {
17
- "@cowprotocol/sdk-common": "0.3.0",
18
17
  "@cowprotocol/sdk-app-data": "4.1.6",
19
- "@cowprotocol/sdk-trading": "0.4.6",
20
- "@cowprotocol/sdk-order-signing": "0.1.11",
18
+ "@cowprotocol/sdk-common": "0.3.0",
21
19
  "@cowprotocol/sdk-order-book": "0.2.0",
22
- "@cowprotocol/sdk-config": "0.3.0"
20
+ "@cowprotocol/sdk-config": "0.3.0",
21
+ "@cowprotocol/sdk-trading": "0.4.6",
22
+ "@cowprotocol/sdk-order-signing": "0.1.11"
23
23
  },
24
24
  "devDependencies": {
25
25
  "ethers-v5": "npm:ethers@^5.7.2",