@1inch/fusion-sdk 2.4.7-rc.3 → 2.4.8-rc.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.
Files changed (56) hide show
  1. package/README.md +25 -174
  2. package/dist/cjs/api/quoter/quote/quote.js +20 -6
  3. package/dist/cjs/api/quoter/quoter.api.spec.js +103 -6
  4. package/dist/cjs/api/quoter/quoter.request.js +1 -4
  5. package/dist/cjs/api/quoter/quoter.request.spec.js +2 -8
  6. package/dist/cjs/constants.js +1 -19
  7. package/dist/cjs/fusion-order/fusion-extension.js +10 -3
  8. package/dist/cjs/fusion-order/fusion-order.js +5 -120
  9. package/dist/cjs/fusion-order/fusion-order.spec.js +124 -93
  10. package/dist/cjs/fusion-order/index.js +0 -1
  11. package/dist/cjs/index.js +3 -0
  12. package/dist/cjs/sdk/README.md +18 -14
  13. package/dist/esm/api/quoter/quote/quote.js +20 -6
  14. package/dist/esm/api/quoter/quote/types.js +15 -3
  15. package/dist/esm/api/quoter/quoter.api.spec.js +103 -6
  16. package/dist/esm/api/quoter/quoter.request.js +1 -4
  17. package/dist/esm/api/quoter/quoter.request.spec.js +2 -8
  18. package/dist/esm/constants.js +1 -16
  19. package/dist/esm/fusion-order/fusion-extension.js +10 -3
  20. package/dist/esm/fusion-order/fusion-order.js +6 -121
  21. package/dist/esm/fusion-order/fusion-order.spec.js +125 -94
  22. package/dist/esm/fusion-order/index.js +0 -1
  23. package/dist/esm/fusion-order/types.js +5 -0
  24. package/dist/esm/index.js +1 -1
  25. package/dist/esm/package.json +1 -1
  26. package/dist/esm/sdk/README.md +18 -14
  27. package/dist/types/src/api/quoter/quote/quote.d.ts +3 -2
  28. package/dist/types/src/api/quoter/quote/types.d.ts +6 -1
  29. package/dist/types/src/api/quoter/quoter.request.d.ts +3 -3
  30. package/dist/types/src/api/quoter/types.d.ts +2 -2
  31. package/dist/types/src/constants.d.ts +0 -1
  32. package/dist/types/src/fusion-order/fusion-extension.d.ts +2 -0
  33. package/dist/types/src/fusion-order/fusion-order.d.ts +0 -6
  34. package/dist/types/src/fusion-order/index.d.ts +0 -1
  35. package/dist/types/src/fusion-order/types.d.ts +1 -0
  36. package/dist/types/src/index.d.ts +2 -2
  37. package/dist/types/src/sdk/types.d.ts +3 -3
  38. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  39. package/package.json +4 -4
  40. package/dist/cjs/fusion-order/permit/constants.js +0 -98
  41. package/dist/cjs/fusion-order/permit/index.js +0 -34
  42. package/dist/cjs/fusion-order/permit/permit-transfer-from.js +0 -115
  43. package/dist/cjs/fusion-order/permit/permit-transfer-from.spec.js +0 -232
  44. package/dist/cjs/fusion-order/permit/transfer-from-suffix.js +0 -61
  45. package/dist/cjs/fusion-order/permit/utils.js +0 -35
  46. package/dist/esm/fusion-order/permit/constants.js +0 -71
  47. package/dist/esm/fusion-order/permit/index.js +0 -3
  48. package/dist/esm/fusion-order/permit/permit-transfer-from.js +0 -105
  49. package/dist/esm/fusion-order/permit/permit-transfer-from.spec.js +0 -228
  50. package/dist/esm/fusion-order/permit/transfer-from-suffix.js +0 -38
  51. package/dist/esm/fusion-order/permit/utils.js +0 -12
  52. package/dist/types/src/fusion-order/permit/constants.d.ts +0 -7
  53. package/dist/types/src/fusion-order/permit/index.d.ts +0 -3
  54. package/dist/types/src/fusion-order/permit/permit-transfer-from.d.ts +0 -11
  55. package/dist/types/src/fusion-order/permit/transfer-from-suffix.d.ts +0 -10
  56. package/dist/types/src/fusion-order/permit/utils.d.ts +0 -3
@@ -1,4 +1,4 @@
1
- import { Address, Bps, MakerTraits, Extension, ProxyFactory } from '@1inch/limit-order-sdk';
1
+ import { Address, Bps, MakerTraits, Extension, Interaction, ProxyFactory } from '@1inch/limit-order-sdk';
2
2
  import { parseEther, parseUnits } from 'ethers';
3
3
  import { FusionOrder } from './fusion-order.js';
4
4
  import { AuctionDetails } from './auction-details/index.js';
@@ -461,104 +461,135 @@ describe('FusionOrder Native', function() {
461
461
  });
462
462
  expect(nativeOrder.build().receiver).toEqual(settlementExt.toString());
463
463
  });
464
- describe('isTransferPermit', function() {
465
- var extensionContract = new Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c');
466
- var permit2Proxy = new Address('0x1234567890abcdef1234567890abcdef12345678');
467
- var baseOrder = function() {
468
- return FusionOrder.new(extensionContract, {
469
- makerAsset: new Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
470
- takerAsset: new Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
471
- makingAmount: parseEther('1'),
472
- takingAmount: parseUnits('1000', 6),
473
- maker: new Address('0x00000000219ab540356cbb839cbe05303d7705fa')
474
- }, {
475
- auction: new AuctionDetails({
476
- duration: 180n,
477
- startTime: 1673548149n,
478
- initialRateBump: 0,
479
- points: []
480
- }),
481
- whitelist: Whitelist.new(1673548139n, [
464
+ });
465
+ describe('FusionOrder preInteraction', function() {
466
+ it('should create order with preInteraction and set PRE_INTERACTION_CALL_FLAG in makerTraits', function() {
467
+ var extensionContract = new Address('0x2ad5004c60e16e54d5007c80ce329adde5b51ef5');
468
+ var preInteraction = new Interaction(new Address('0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1'), '0xdeadbeef01020304');
469
+ var order = FusionOrder.new(extensionContract, {
470
+ makerAsset: new Address('0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'),
471
+ takerAsset: new Address('0xda7ad9dea9397cffddae2f8a052b82f1484252b3'),
472
+ makingAmount: 1983000000000000n,
473
+ takingAmount: 79052953622246027n,
474
+ maker: new Address('0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1')
475
+ }, {
476
+ auction: new AuctionDetails({
477
+ duration: 180n,
478
+ startTime: 1673548149n,
479
+ initialRateBump: 50000,
480
+ points: [
482
481
  {
483
- address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
484
- allowFrom: 0n
482
+ coefficient: 20000,
483
+ delay: 12
485
484
  }
486
- ]),
487
- surplus: SurplusParams.NO_FEE
488
- }, {
489
- allowPartialFills: false,
490
- allowMultipleFills: false,
491
- nonce: 1n
492
- });
493
- };
494
- it('should return false for regular order', function() {
495
- var order = FusionOrder.new(extensionContract, {
496
- makerAsset: new Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
497
- takerAsset: new Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
498
- makingAmount: parseEther('1'),
499
- takingAmount: parseUnits('1000', 6),
500
- maker: new Address('0x00000000219ab540356cbb839cbe05303d7705fa')
501
- }, {
502
- auction: new AuctionDetails({
503
- duration: 180n,
504
- startTime: 1673548149n,
505
- initialRateBump: 0,
506
- points: []
507
- }),
508
- whitelist: Whitelist.new(1673548139n, [
485
+ ]
486
+ }),
487
+ whitelist: Whitelist.new(1673548139n, [
488
+ {
489
+ address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
490
+ allowFrom: 0n
491
+ }
492
+ ]),
493
+ surplus: SurplusParams.NO_FEE
494
+ }, {
495
+ preInteraction: preInteraction.encode()
496
+ });
497
+ var makerTraits = new MakerTraits(BigInt(order.build().makerTraits));
498
+ expect(makerTraits.hasPreInteraction()).toBe(true);
499
+ });
500
+ it('should not set PRE_INTERACTION_CALL_FLAG when no preInteraction', function() {
501
+ var extensionContract = new Address('0x2ad5004c60e16e54d5007c80ce329adde5b51ef5');
502
+ var order = FusionOrder.new(extensionContract, {
503
+ makerAsset: new Address('0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'),
504
+ takerAsset: new Address('0xda7ad9dea9397cffddae2f8a052b82f1484252b3'),
505
+ makingAmount: 1983000000000000n,
506
+ takingAmount: 79052953622246027n,
507
+ maker: new Address('0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1')
508
+ }, {
509
+ auction: new AuctionDetails({
510
+ duration: 180n,
511
+ startTime: 1673548149n,
512
+ initialRateBump: 50000,
513
+ points: [
509
514
  {
510
- address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
511
- allowFrom: 0n
515
+ coefficient: 20000,
516
+ delay: 12
512
517
  }
513
- ]),
514
- surplus: SurplusParams.NO_FEE
515
- });
516
- expect(order.isTransferPermit()).toBe(false);
517
- });
518
- it('should return true after withTransferPermit', function() {
519
- var order = baseOrder();
520
- var permit = order.createTransferPermit(permit2Proxy);
521
- var fakeSignature = '0x' + 'ab'.repeat(65);
522
- var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
523
- expect(orderWithPermit.isTransferPermit()).toBe(true);
524
- });
525
- it('should return real token as makerAsset after withTransferPermit', function() {
526
- var weth = new Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2');
527
- var order = baseOrder();
528
- var permit = order.createTransferPermit(permit2Proxy);
529
- var fakeSignature = '0x' + 'ab'.repeat(65);
530
- var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
531
- expect(orderWithPermit.makerAsset).toEqual(weth);
532
- });
533
- it('should round-trip Permit2 order through fromDataAndExtension', function() {
534
- var order = baseOrder();
535
- var permit = order.createTransferPermit(permit2Proxy);
536
- var fakeSignature = '0x' + 'ab'.repeat(65);
537
- var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
538
- var built = orderWithPermit.build();
539
- var rebuilt = FusionOrder.fromDataAndExtension(built, orderWithPermit.extension);
540
- expect(rebuilt.isTransferPermit()).toBe(true);
541
- expect(rebuilt.makerAsset).toEqual(orderWithPermit.makerAsset);
542
- expect(rebuilt.salt).toEqual(orderWithPermit.salt);
543
- expect(rebuilt.build()).toEqual(built);
518
+ ]
519
+ }),
520
+ whitelist: Whitelist.new(1673548139n, [
521
+ {
522
+ address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
523
+ allowFrom: 0n
524
+ }
525
+ ]),
526
+ surplus: SurplusParams.NO_FEE
544
527
  });
545
- it('should reject tampered makerAssetSuffix via salt check', function() {
546
- var order = baseOrder();
547
- var ext = order.extension;
548
- var tampered = new Extension({
549
- makerAssetSuffix: '0xdeadbeef',
550
- takerAssetSuffix: ext.takerAssetSuffix,
551
- makingAmountData: ext.makingAmountData,
552
- takingAmountData: ext.takingAmountData,
553
- predicate: ext.predicate,
554
- makerPermit: ext.makerPermit,
555
- preInteraction: ext.preInteraction,
556
- postInteraction: ext.postInteraction,
557
- customData: ext.customData
558
- });
559
- expect(function() {
560
- return FusionOrder.fromDataAndExtension(order.build(), tampered);
561
- }).toThrow('invalid salt for passed extension');
528
+ var makerTraits = new MakerTraits(BigInt(order.build().makerTraits));
529
+ expect(makerTraits.hasPreInteraction()).toBe(false);
530
+ });
531
+ it('should round-trip order with preInteraction via fromDataAndExtension', function() {
532
+ var extensionContract = new Address('0x2ad5004c60e16e54d5007c80ce329adde5b51ef5');
533
+ var preInteractionTarget = new Address('0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1');
534
+ var preInteractionCalldata = '0x0599a1fd1975848548e5b765925a935093a96ecc6f2ca216f77dcfd328b8a491';
535
+ var preInteraction = new Interaction(preInteractionTarget, preInteractionCalldata);
536
+ var order = FusionOrder.new(extensionContract, {
537
+ makerAsset: new Address('0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c'),
538
+ takerAsset: new Address('0xda7ad9dea9397cffddae2f8a052b82f1484252b3'),
539
+ makingAmount: 1983000000000000n,
540
+ takingAmount: 79052953622246027n,
541
+ maker: new Address('0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1')
542
+ }, {
543
+ auction: new AuctionDetails({
544
+ duration: 180n,
545
+ startTime: 1673548149n,
546
+ initialRateBump: 50000,
547
+ points: [
548
+ {
549
+ coefficient: 20000,
550
+ delay: 12
551
+ }
552
+ ]
553
+ }),
554
+ whitelist: Whitelist.new(1673548139n, [
555
+ {
556
+ address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
557
+ allowFrom: 0n
558
+ }
559
+ ]),
560
+ surplus: SurplusParams.NO_FEE
561
+ }, {
562
+ preInteraction: preInteraction.encode()
562
563
  });
564
+ var built = order.build();
565
+ var extension = order.extension;
566
+ var restored = FusionOrder.fromDataAndExtension({
567
+ salt: built.salt,
568
+ maker: built.maker,
569
+ receiver: built.receiver,
570
+ makerAsset: built.makerAsset,
571
+ takerAsset: built.takerAsset,
572
+ makerTraits: built.makerTraits,
573
+ makingAmount: built.makingAmount,
574
+ takingAmount: built.takingAmount
575
+ }, extension);
576
+ expect(restored.build().salt).toEqual(built.salt);
577
+ expect(restored.extension.encode()).toEqual(extension.encode());
578
+ });
579
+ it('should validate OKX order with preInteraction (real customer data)', function() {
580
+ var extensionHex = '0x000002b800000207000000d2000000d2000000d20000006900000000000000002ad5004c60e16e54d5007c80ce329adde5b51ef50000000000000069c930cb0000b403e4e400000000000064062324dfe7924cb4f3257d000000000000000000006ea9a11ae13b29f5c555d18bd45f0b94f54a968faa848f727be12534f24895770895ad27ad6b0d952ad5004c60e16e54d5007c80ce329adde5b51ef50000000000000069c930cb0000b403e4e400000000000064062324dfe7924cb4f3257d000000000000000000006ea9a11ae13b29f5c555d18bd45f0b94f54a968faa848f727be12534f24895770895ad27ad6b0d953a617c2fbaf8d7c58c793fbbd2d14eb4927876c10100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070b872a96f0000000000000000000000000000000000000000000000000006715eae5b898683d0000000000000000000000000000000000000000000000000000000069c931e800000000000000000000000000000000000000000000000000000000000000410599a1fd1975848548e5b765925a935093a96ecc6f2ca216f77dcfd328b8a4917028648ec3e33d048184f9877d4892fb829ddc5d75a19c1c2ef064d2a38c012b1b000000000000000000000000000000000000000000000000000000000000002ad5004c60e16e54d5007c80ce329adde5b51ef500000000000000000000000000000000000000000090cbe4bdd538d6e9b379bff5fe72c3d67a521de500000000006469c930cb062324dfe7924cb4f3257d000c0000000000000000000000006ea9a11ae13b29f5c5550000d18bd45f0b94f54a968f0000aa848f727be12534f248000095770895ad27ad6b0d950000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00';
581
+ var extension = Extension.decode(extensionHex);
582
+ expect(function() {
583
+ FusionOrder.fromDataAndExtension({
584
+ maker: '0x3a617c2fbaf8d7c58c793fbbd2d14eb4927876c1',
585
+ makerAsset: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
586
+ makerTraits: '69656178681823023809491920669288819567982727296017585526061607372909138935808',
587
+ makingAmount: '1983000000000000',
588
+ receiver: '0xb698362cc878094c406115efeeb13089b544e6c8',
589
+ salt: '1084071965642925953405739669729447852001208220133',
590
+ takerAsset: '0xda7ad9dea9397cffddae2f8a052b82f1484252b3',
591
+ takingAmount: '79052953622246027'
592
+ }, extension);
593
+ }).not.toThrow();
563
594
  });
564
595
  });
@@ -6,4 +6,3 @@ export * from './fees/index.js';
6
6
  export { CHAIN_TO_WRAPPER } from './constants.js';
7
7
  export * from './surplus-params.js';
8
8
  export * from './cancellation-auction.js';
9
- export * from './permit/index.js';
@@ -2,6 +2,11 @@
2
2
  * Required if `allowPartialFills` or `allowMultipleFills` is false
3
3
  * Max size is 40bit
4
4
  */ /**
5
+ * Encoded pre-interaction: target address (20 bytes) followed by calldata.
6
+ * Format matches `Interaction.encode()`: `0x{target}{calldata}`.
7
+ * When set, the PRE_INTERACTION_CALL_FLAG is enabled in makerTraits
8
+ * and the LOP contract calls IPreInteraction on the target before the swap.
9
+ */ /**
5
10
  * Default is true
6
11
  */ /**
7
12
  * Default is true
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { Address, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder, AmountMode, getLimitOrderV4Domain, LimitOrderContract, MakerTraits, ProxyFactory, NativeOrdersFactory, NativeOrdersImpl } from '@1inch/limit-order-sdk';
1
+ export { Address, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder, AmountMode, getLimitOrderV4Domain, LimitOrderContract, MakerTraits, ProxyFactory, NativeOrdersFactory, NativeOrdersImpl, Bps } from '@1inch/limit-order-sdk';
2
2
  export * from './fusion-order/index.js';
3
3
  export * from './amount-calculator//index.js';
4
4
  export * from './connector/index.js';
@@ -1 +1 @@
1
- {"name":"@1inch/fusion-sdk","version":"2.4.7-rc.3","type":"module"}
1
+ {"name":"@1inch/fusion-sdk","version":"2.4.8-rc.0","type":"module"}
@@ -204,12 +204,11 @@ sdk.placeOrder({
204
204
  toTokenAddress: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
205
205
  amount: '50000000000000000', // 0.05 ETH
206
206
  walletAddress: makerAddress,
207
- // fee is an optional field
208
- fee: {
209
- takingFeeBps: 100, // 1% as we use bps format, 1% is equal to 100bps
210
- takingFeeReceiver: '0x0000000000000000000000000000000000000000' // fee receiver address
211
- },
212
- source: 'platform-name'
207
+ // integratorFee is an optional field
208
+ integratorFee: {
209
+ receiver: new Address('0x0000000000000000000000000000000000000000'), // fee receiver address
210
+ value: new Bps(100n) // 1% as we use bps format, 1% is equal to 100bps
211
+ }
213
212
  }).then(console.log)
214
213
  ```
215
214
 
@@ -224,6 +223,15 @@ type PaginationParams = {
224
223
  }
225
224
  ```
226
225
 
226
+ ### IntegratorFeeRequest
227
+
228
+ ```typescript
229
+ type IntegratorFeeRequest = {
230
+ receiver: Address // fee receiver address
231
+ value: Bps // 100 == 1%
232
+ }
233
+ ```
234
+
227
235
  ### QuoteParams
228
236
 
229
237
  ```typescript
@@ -231,8 +239,9 @@ type QuoteParams = {
231
239
  fromTokenAddress: string
232
240
  toTokenAddress: string
233
241
  amount: string
242
+ walletAddress?: string
234
243
  permit?: string // a permit (EIP-2612) call data, user approval sign
235
- takingFeeBps?: number // 100 == 1%
244
+ integratorFee?: IntegratorFeeRequest
236
245
  }
237
246
  ```
238
247
 
@@ -253,12 +262,7 @@ type OrderParams = {
253
262
  permit?: string // a permit (EIP-2612) call data, user approval sign
254
263
  receiver?: string // address
255
264
  preset?: PresetEnum
256
- nonce?: OrderNonce | string | number // allows to batch cancel orders. by default: not used
257
- fee?: TakingFeeInfo
258
- }
259
-
260
- export type TakingFeeInfo = {
261
- takingFeeBps: number // 100 == 1%
262
- takingFeeReceiver: string
265
+ nonce?: bigint // allows to batch cancel orders
266
+ integratorFee?: IntegratorFeeRequest
263
267
  }
264
268
  ```
@@ -1,5 +1,5 @@
1
1
  import { Address, ProxyFactory } from '@1inch/limit-order-sdk';
2
- import { FusionOrderParamsData, IntegratorFeeParams, ResolverFeePreset } from './types.js';
2
+ import { FusionOrderParamsData, IntegratorFeeResponse, ResolverFeePreset } from './types.js';
3
3
  import { Cost, PresetEnum, QuoterResponse } from '../types.js';
4
4
  import { Preset } from '../preset.js';
5
5
  import { FusionOrder } from '../../../fusion-order/index.js';
@@ -25,10 +25,11 @@ export declare class Quote {
25
25
  readonly slippage: number;
26
26
  readonly resolverFeePreset: ResolverFeePreset;
27
27
  readonly surplusFee?: number;
28
- readonly integratorFeeParams?: IntegratorFeeParams;
28
+ readonly integratorFeeParams?: IntegratorFeeResponse;
29
29
  constructor(params: QuoterRequest, response: QuoterResponse);
30
30
  createFusionOrder(paramsData: Omit<FusionOrderParamsData, 'permit' | 'isPermit2'>): FusionOrder;
31
31
  getPreset(type?: PresetEnum): Preset;
32
32
  private getWhitelist;
33
33
  private _createOrder;
34
+ private parseIntegratorFee;
34
35
  }
@@ -13,11 +13,16 @@ export type FusionOrderParamsData = {
13
13
  delayAuctionStartTimeBy?: bigint;
14
14
  orderExpirationDelay?: bigint;
15
15
  };
16
- export type IntegratorFeeParams = {
16
+ export type IntegratorFeeRequest = {
17
+ receiver: Address;
18
+ value: Bps;
19
+ };
20
+ export type IntegratorFeeResponse = {
17
21
  receiver: Address;
18
22
  value: Bps;
19
23
  share: Bps;
20
24
  };
25
+ export type IntegratorFeeParams = IntegratorFeeResponse;
21
26
  export type ResolverFeePreset = {
22
27
  receiver: Address;
23
28
  bps: Bps;
@@ -1,6 +1,6 @@
1
1
  import { Address } from '@1inch/limit-order-sdk';
2
2
  import { QuoterRequestParams, QuoterRequestParamsRaw } from './types.js';
3
- import { IntegratorFeeParams } from './quote/index.js';
3
+ import { IntegratorFeeRequest } from './quote/index.js';
4
4
  export declare class QuoterRequest {
5
5
  readonly fromTokenAddress: Address;
6
6
  readonly toTokenAddress: Address;
@@ -8,8 +8,8 @@ export declare class QuoterRequest {
8
8
  readonly walletAddress: Address;
9
9
  readonly enableEstimate: boolean;
10
10
  readonly permit: string | undefined;
11
- readonly integratorFee?: IntegratorFeeParams;
12
- readonly source: string;
11
+ readonly integratorFee?: IntegratorFeeRequest;
12
+ readonly source?: string;
13
13
  readonly isPermit2: boolean;
14
14
  readonly slippage?: number;
15
15
  constructor(params: QuoterRequestParams);
@@ -1,4 +1,4 @@
1
- import { IntegratorFeeParams } from './quote/index.js';
1
+ import { IntegratorFeeRequest } from './quote/index.js';
2
2
  import { NetworkEnum } from '../../constants.js';
3
3
  export type QuoterRequestParams = {
4
4
  fromTokenAddress: string;
@@ -7,7 +7,7 @@ export type QuoterRequestParams = {
7
7
  walletAddress: string;
8
8
  enableEstimate?: boolean;
9
9
  permit?: string;
10
- integratorFee?: IntegratorFeeParams;
10
+ integratorFee?: IntegratorFeeRequest;
11
11
  source?: string;
12
12
  isPermit2?: boolean;
13
13
  slippage?: number;
@@ -15,7 +15,6 @@ export declare enum NetworkEnum {
15
15
  UNICHAIN = 130
16
16
  }
17
17
  export declare const ONE_INCH_LIMIT_ORDER_V4 = "0x111111125421ca6dc452d289314280a0f8842a65";
18
- export declare const ONE_INCH_LIMIT_ORDER_V4_ADDRESSES: Record<NetworkEnum, string>;
19
18
  export declare const UINT_160_MAX: bigint;
20
19
  export declare const UINT_16_MAX: bigint;
21
20
  export declare const UINT_80_MAX: bigint;
@@ -10,12 +10,14 @@ export declare class FusionExtension {
10
10
  readonly surplus: SurplusParams;
11
11
  readonly extra?: {
12
12
  makerPermit?: Interaction;
13
+ preInteraction?: Interaction;
13
14
  customReceiver?: Address;
14
15
  fees?: Fees;
15
16
  } | undefined;
16
17
  private static CUSTOM_RECEIVER_FLAG_BIT;
17
18
  constructor(address: Address, auctionDetails: AuctionDetails, whitelist: Whitelist, surplus: SurplusParams, extra?: {
18
19
  makerPermit?: Interaction;
20
+ preInteraction?: Interaction;
19
21
  customReceiver?: Address;
20
22
  fees?: Fees;
21
23
  } | undefined);
@@ -4,7 +4,6 @@ import { AuctionDetails } from './auction-details/index.js';
4
4
  import { Whitelist } from './whitelist/whitelist.js';
5
5
  import { SurplusParams } from './surplus-params.js';
6
6
  import type { Details, Extra } from './types.js';
7
- import { PermitTransferFrom } from './permit/permit-transfer-from.js';
8
7
  import { AuctionCalculator } from '../amount-calculator/auction-calculator/index.js';
9
8
  import { NetworkEnum } from '../constants.js';
10
9
  import { AmountCalculator } from '../amount-calculator/amount-calculator.js';
@@ -34,8 +33,6 @@ export declare class FusionOrder {
34
33
  static isNativeOrder(chainId: number, ethOrderFactory: ProxyFactory, order: LimitOrderV4Struct, signature: string): boolean;
35
34
  static fromNative(chainId: NetworkEnum, ethOrdersFactory: ProxyFactory, settlementExtension: Address, orderInfo: Omit<OrderInfoData, 'makerAsset'>, details: Details, extra?: Extra): FusionOrder;
36
35
  static fromDataAndExtension(order: LimitOrderV4Struct, extension: Extension): FusionOrder;
37
- isTransferPermit(): boolean;
38
- withTransferPermit(permit: PermitTransferFrom, signature: string): this;
39
36
  build(): LimitOrderV4Struct;
40
37
  getOrderHash(chainId: number): string;
41
38
  getTypedData(chainId: number): EIP712TypedData;
@@ -54,7 +51,4 @@ export declare class FusionOrder {
54
51
  getAmountCalculator(): AmountCalculator;
55
52
  isNative(chainId: number, ethOrderFactory: ProxyFactory, signature: string): boolean;
56
53
  nativeSignature(maker: Address): string;
57
- createTransferPermit(chainIdOrPermit2Proxy: number | Address, permit2Proxy?: Address): PermitTransferFrom;
58
- private restoreMakerAssetSuffix;
59
- private decodeTransferPermitSuffix;
60
54
  }
@@ -6,4 +6,3 @@ export * from './fees/index.js';
6
6
  export { CHAIN_TO_WRAPPER } from './constants.js';
7
7
  export * from './surplus-params.js';
8
8
  export * from './cancellation-auction.js';
9
- export * from './permit/index.js';
@@ -6,6 +6,7 @@ export type Extra = {
6
6
  unwrapWETH?: boolean;
7
7
  nonce?: bigint;
8
8
  permit?: string;
9
+ preInteraction?: string;
9
10
  allowPartialFills?: boolean;
10
11
  allowMultipleFills?: boolean;
11
12
  orderExpirationDelay?: bigint;
@@ -1,4 +1,4 @@
1
- export { Address, type LimitOrderV4Struct, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder, AmountMode, getLimitOrderV4Domain, LimitOrderContract, type OrderInfoData, type EIP712TypedData, MakerTraits, ProxyFactory, NativeOrdersFactory, NativeOrdersImpl } from '@1inch/limit-order-sdk';
1
+ export { Address, type LimitOrderV4Struct, Extension, randBigInt, getLimitOrderContract, Interaction, TakerTraits, ExtensionBuilder, AmountMode, getLimitOrderV4Domain, LimitOrderContract, type OrderInfoData, type EIP712TypedData, MakerTraits, ProxyFactory, NativeOrdersFactory, NativeOrdersImpl, Bps } from '@1inch/limit-order-sdk';
2
2
  export * from './fusion-order/index.js';
3
3
  export * from './amount-calculator//index.js';
4
4
  export * from './connector/index.js';
@@ -10,4 +10,4 @@ export * from './utils/time.js';
10
10
  export * from './validations.js';
11
11
  export * from './ws-api/index.js';
12
12
  export * from './errors.js';
13
- export { QuoterRequest, type QuoterResponse, RelayerRequest, QuoterCustomPresetRequest, PresetEnum, Preset, Quote, type OrderStatusResponse, OrderStatus } from './api/index.js';
13
+ export { QuoterRequest, type QuoterResponse, RelayerRequest, QuoterCustomPresetRequest, PresetEnum, Preset, Quote, type OrderStatusResponse, OrderStatus, type IntegratorFeeRequest, type IntegratorFeeResponse } from './api/index.js';
@@ -1,7 +1,7 @@
1
1
  import { Address, LimitOrderV4Struct } from '@1inch/limit-order-sdk';
2
2
  import { BlockchainProviderConnector, HttpProviderConnector } from '../connector/index.js';
3
3
  import { NetworkEnum } from '../constants.js';
4
- import { CustomPreset, IntegratorFeeParams, PresetEnum } from '../api/index.js';
4
+ import { CustomPreset, IntegratorFeeRequest, PresetEnum } from '../api/index.js';
5
5
  import { FusionOrder } from '../fusion-order/index.js';
6
6
  export type FusionSDKConfigParams = {
7
7
  url: string;
@@ -17,7 +17,7 @@ export type QuoteParams = {
17
17
  walletAddress?: string;
18
18
  enableEstimate?: boolean;
19
19
  permit?: string;
20
- integratorFee?: IntegratorFeeParams;
20
+ integratorFee?: IntegratorFeeRequest;
21
21
  source?: string;
22
22
  isPermit2?: boolean;
23
23
  slippage?: number;
@@ -40,7 +40,7 @@ export type OrderParams = {
40
40
  orderExpirationDelay?: bigint;
41
41
  allowPartialFills?: boolean;
42
42
  allowMultipleFills?: boolean;
43
- integratorFee?: IntegratorFeeParams;
43
+ integratorFee?: IntegratorFeeRequest;
44
44
  slippage?: number;
45
45
  };
46
46
  export type OrderInfo = {