@1inch/fusion-sdk 2.3.6-rc.0 → 2.3.6

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.
@@ -175,7 +175,7 @@ describe(__filename, function() {
175
175
  takingAmount: '147681'
176
176
  },
177
177
  extension: '0x000000830000005e0000005e0000005e0000005e0000002f0000000000000000fb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b840662a597cd1a23c3abeed63c51b86000008',
178
- version: '2.1'
178
+ version: '2.2'
179
179
  },
180
180
  {
181
181
  quoteId: '8343588a-da1e-407f-b41f-aa86f0ec4266',
@@ -196,7 +196,7 @@ describe(__filename, function() {
196
196
  takingAmount: '20653338'
197
197
  },
198
198
  extension: '0x00000079000000540000005400000054000000540000002a0000000000000000fb2809a5314473e1165f6b58018e20ed8f07b840423b06000034016627b1dc0000b444e602447208003cfb2809a5314473e1165f6b58018e20ed8f07b840423b06000034016627b1dc0000b444e602447208003cfb2809a5314473e1165f6b58018e20ed8f07b8406627b1c4d1a23c3abeed63c51b86000008',
199
- version: '2.1'
199
+ version: '2.2'
200
200
  }
201
201
  ],
202
202
  meta: {
@@ -8,9 +8,7 @@ Object.defineProperty(exports, "OrderStatus", {
8
8
  return OrderStatus;
9
9
  }
10
10
  });
11
- /**
12
- * 2.1 is one with fees
13
- */ var OrderStatus = /*#__PURE__*/ function(OrderStatus) {
11
+ var OrderStatus = /*#__PURE__*/ function(OrderStatus) {
14
12
  OrderStatus["Pending"] = "pending";
15
13
  OrderStatus["Filled"] = "filled";
16
14
  OrderStatus["FalsePredicate"] = "false-predicate";
@@ -309,6 +309,43 @@ describe('Quoter API', function() {
309
309
  }
310
310
  });
311
311
  }));
312
+ it('should not throw error with slippage added', /*#__PURE__*/ _async_to_generator(function() {
313
+ var quoter, params, QuoterResponseMock, res;
314
+ return _ts_generator(this, function(_state) {
315
+ switch(_state.label){
316
+ case 0:
317
+ quoter = _quoterapi.QuoterApi.new({
318
+ url: 'https://test.com/quoter',
319
+ network: 1
320
+ }, httpProvider);
321
+ params = _quoterrequest.QuoterRequest.new({
322
+ fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
323
+ toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
324
+ amount: '1000000000000000000000',
325
+ walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
326
+ integratorFee: {
327
+ share: _limitordersdk.Bps.fromPercent(50),
328
+ receiver: _limitordersdk.Address.fromBigInt(10n),
329
+ value: new _limitordersdk.Bps(1n)
330
+ },
331
+ source: '0x6b175474e89094c44da98b954eedeac495271d0f',
332
+ slippage: 1
333
+ });
334
+ QuoterResponseMock = new _index.Quote(params, ResponseMock);
335
+ return [
336
+ 4,
337
+ quoter.getQuote(params)
338
+ ];
339
+ case 1:
340
+ res = _state.sent();
341
+ expect(res).toStrictEqual(QuoterResponseMock);
342
+ expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&fee=1&source=0x6b175474e89094c44da98b954eedeac495271d0f&surplus=true&slippage=1');
343
+ return [
344
+ 2
345
+ ];
346
+ }
347
+ });
348
+ }));
312
349
  it('getQuoteWithCustomPreset', /*#__PURE__*/ _async_to_generator(function() {
313
350
  var quoter, params, body, QuoterResponseMock, res;
314
351
  return _ts_generator(this, function(_state) {
@@ -362,4 +399,58 @@ describe('Quoter API', function() {
362
399
  }
363
400
  });
364
401
  }));
402
+ it('getQuoteWithCustomPreset with slippage', /*#__PURE__*/ _async_to_generator(function() {
403
+ var quoter, params, body, QuoterResponseMock, res;
404
+ return _ts_generator(this, function(_state) {
405
+ switch(_state.label){
406
+ case 0:
407
+ quoter = _quoterapi.QuoterApi.new({
408
+ url: 'https://test.com/quoter',
409
+ network: 1
410
+ }, httpProvider);
411
+ params = _quoterrequest.QuoterRequest.new({
412
+ fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
413
+ toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
414
+ amount: '1000000000000000000000',
415
+ walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
416
+ integratorFee: {
417
+ share: _limitordersdk.Bps.fromPercent(50),
418
+ receiver: _limitordersdk.Address.fromBigInt(10n),
419
+ value: new _limitordersdk.Bps(1n)
420
+ },
421
+ source: '0x6b175474e89094c44da98b954eedeac495271d0f',
422
+ slippage: 1
423
+ });
424
+ body = _quotercustompresetrequest.QuoterCustomPresetRequest.new({
425
+ customPreset: {
426
+ auctionDuration: 180,
427
+ auctionStartAmount: '100000',
428
+ auctionEndAmount: '50000',
429
+ points: [
430
+ {
431
+ toTokenAmount: '90000',
432
+ delay: 20
433
+ },
434
+ {
435
+ toTokenAmount: '70000',
436
+ delay: 40
437
+ }
438
+ ]
439
+ }
440
+ });
441
+ QuoterResponseMock = new _index.Quote(params, ResponseMock);
442
+ return [
443
+ 4,
444
+ quoter.getQuoteWithCustomPreset(params, body)
445
+ ];
446
+ case 1:
447
+ res = _state.sent();
448
+ expect(res).toStrictEqual(QuoterResponseMock);
449
+ expect(httpProvider.post).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&fee=1&source=0x6b175474e89094c44da98b954eedeac495271d0f&surplus=true&slippage=1', body.build());
450
+ return [
451
+ 2
452
+ ];
453
+ }
454
+ });
455
+ }));
365
456
  });
@@ -55,6 +55,7 @@ var QuoterRequest = /*#__PURE__*/ function() {
55
55
  _define_property(this, "integratorFee", void 0);
56
56
  _define_property(this, "source", void 0);
57
57
  _define_property(this, "isPermit2", void 0);
58
+ _define_property(this, "slippage", void 0);
58
59
  this.fromTokenAddress = new _limitordersdk.Address(params.fromTokenAddress);
59
60
  this.toTokenAddress = new _limitordersdk.Address(params.toTokenAddress);
60
61
  this.amount = params.amount;
@@ -65,6 +66,7 @@ var QuoterRequest = /*#__PURE__*/ function() {
65
66
  this.source = params.source || 'sdk';
66
67
  var _params_isPermit2;
67
68
  this.isPermit2 = (_params_isPermit2 = params.isPermit2) !== null && _params_isPermit2 !== void 0 ? _params_isPermit2 : false;
69
+ this.slippage = params.slippage;
68
70
  if (this.fromTokenAddress.isNative()) {
69
71
  throw new Error("cannot swap ".concat(_limitordersdk.Address.NATIVE_CURRENCY, ": wrap native currency to it's wrapper fist"));
70
72
  }
@@ -96,7 +98,8 @@ var QuoterRequest = /*#__PURE__*/ function() {
96
98
  fee: Number(((_this_integratorFee = this.integratorFee) === null || _this_integratorFee === void 0 ? void 0 : _this_integratorFee.value.value) || 0),
97
99
  source: this.source,
98
100
  isPermit2: this.isPermit2,
99
- surplus: true
101
+ surplus: true,
102
+ slippage: this.slippage
100
103
  };
101
104
  }
102
105
  }
@@ -10,6 +10,9 @@ Object.defineProperty(exports, "PresetEnum", {
10
10
  });
11
11
  /**
12
12
  * tells quoter to use new settlement with surplus
13
+ */ /**
14
+ * Optional slippage value in percent (e.g., 1 for 1%, max 50)
15
+ * Must be between 1 and 50 inclusive
13
16
  */ var PresetEnum = /*#__PURE__*/ function(PresetEnum) {
14
17
  PresetEnum["fast"] = "fast";
15
18
  PresetEnum["medium"] = "medium";
@@ -258,7 +258,8 @@ var FusionSDK = /*#__PURE__*/ function() {
258
258
  enableEstimate: !!params.enableEstimate,
259
259
  source: params.source,
260
260
  isPermit2: params.isPermit2,
261
- integratorFee: params.integratorFee
261
+ integratorFee: params.integratorFee,
262
+ slippage: params.slippage
262
263
  });
263
264
  return [
264
265
  2,
@@ -475,7 +476,8 @@ var FusionSDK = /*#__PURE__*/ function() {
475
476
  enableEstimate: true,
476
477
  source: params.source,
477
478
  isPermit2: params.isPermit2,
478
- integratorFee: params === null || params === void 0 ? void 0 : params.integratorFee
479
+ integratorFee: params === null || params === void 0 ? void 0 : params.integratorFee,
480
+ slippage: params === null || params === void 0 ? void 0 : params.slippage
479
481
  });
480
482
  if (!params.customPreset) {
481
483
  return [
@@ -171,7 +171,7 @@ describe(__filename, function() {
171
171
  takingAmount: '147681'
172
172
  },
173
173
  extension: '0x000000830000005e0000005e0000005e0000005e0000002f0000000000000000fb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b840662a597cd1a23c3abeed63c51b86000008',
174
- version: '2.1'
174
+ version: '2.2'
175
175
  },
176
176
  {
177
177
  quoteId: '8343588a-da1e-407f-b41f-aa86f0ec4266',
@@ -192,7 +192,7 @@ describe(__filename, function() {
192
192
  takingAmount: '20653338'
193
193
  },
194
194
  extension: '0x00000079000000540000005400000054000000540000002a0000000000000000fb2809a5314473e1165f6b58018e20ed8f07b840423b06000034016627b1dc0000b444e602447208003cfb2809a5314473e1165f6b58018e20ed8f07b840423b06000034016627b1dc0000b444e602447208003cfb2809a5314473e1165f6b58018e20ed8f07b8406627b1c4d1a23c3abeed63c51b86000008',
195
- version: '2.1'
195
+ version: '2.2'
196
196
  }
197
197
  ],
198
198
  meta: {
@@ -1,6 +1,4 @@
1
- /**
2
- * 2.1 is one with fees
3
- */ export var OrderStatus = /*#__PURE__*/ function(OrderStatus) {
1
+ export var OrderStatus = /*#__PURE__*/ function(OrderStatus) {
4
2
  OrderStatus["Pending"] = "pending";
5
3
  OrderStatus["Filled"] = "filled";
6
4
  OrderStatus["FalsePredicate"] = "false-predicate";
@@ -305,6 +305,43 @@ describe('Quoter API', function() {
305
305
  }
306
306
  });
307
307
  }));
308
+ it('should not throw error with slippage added', /*#__PURE__*/ _async_to_generator(function() {
309
+ var quoter, params, QuoterResponseMock, res;
310
+ return _ts_generator(this, function(_state) {
311
+ switch(_state.label){
312
+ case 0:
313
+ quoter = QuoterApi.new({
314
+ url: 'https://test.com/quoter',
315
+ network: 1
316
+ }, httpProvider);
317
+ params = QuoterRequest.new({
318
+ fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
319
+ toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
320
+ amount: '1000000000000000000000',
321
+ walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
322
+ integratorFee: {
323
+ share: Bps.fromPercent(50),
324
+ receiver: Address.fromBigInt(10n),
325
+ value: new Bps(1n)
326
+ },
327
+ source: '0x6b175474e89094c44da98b954eedeac495271d0f',
328
+ slippage: 1
329
+ });
330
+ QuoterResponseMock = new Quote(params, ResponseMock);
331
+ return [
332
+ 4,
333
+ quoter.getQuote(params)
334
+ ];
335
+ case 1:
336
+ res = _state.sent();
337
+ expect(res).toStrictEqual(QuoterResponseMock);
338
+ expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&fee=1&source=0x6b175474e89094c44da98b954eedeac495271d0f&surplus=true&slippage=1');
339
+ return [
340
+ 2
341
+ ];
342
+ }
343
+ });
344
+ }));
308
345
  it('getQuoteWithCustomPreset', /*#__PURE__*/ _async_to_generator(function() {
309
346
  var quoter, params, body, QuoterResponseMock, res;
310
347
  return _ts_generator(this, function(_state) {
@@ -358,4 +395,58 @@ describe('Quoter API', function() {
358
395
  }
359
396
  });
360
397
  }));
398
+ it('getQuoteWithCustomPreset with slippage', /*#__PURE__*/ _async_to_generator(function() {
399
+ var quoter, params, body, QuoterResponseMock, res;
400
+ return _ts_generator(this, function(_state) {
401
+ switch(_state.label){
402
+ case 0:
403
+ quoter = QuoterApi.new({
404
+ url: 'https://test.com/quoter',
405
+ network: 1
406
+ }, httpProvider);
407
+ params = QuoterRequest.new({
408
+ fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
409
+ toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
410
+ amount: '1000000000000000000000',
411
+ walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
412
+ integratorFee: {
413
+ share: Bps.fromPercent(50),
414
+ receiver: Address.fromBigInt(10n),
415
+ value: new Bps(1n)
416
+ },
417
+ source: '0x6b175474e89094c44da98b954eedeac495271d0f',
418
+ slippage: 1
419
+ });
420
+ body = QuoterCustomPresetRequest.new({
421
+ customPreset: {
422
+ auctionDuration: 180,
423
+ auctionStartAmount: '100000',
424
+ auctionEndAmount: '50000',
425
+ points: [
426
+ {
427
+ toTokenAmount: '90000',
428
+ delay: 20
429
+ },
430
+ {
431
+ toTokenAmount: '70000',
432
+ delay: 40
433
+ }
434
+ ]
435
+ }
436
+ });
437
+ QuoterResponseMock = new Quote(params, ResponseMock);
438
+ return [
439
+ 4,
440
+ quoter.getQuoteWithCustomPreset(params, body)
441
+ ];
442
+ case 1:
443
+ res = _state.sent();
444
+ expect(res).toStrictEqual(QuoterResponseMock);
445
+ expect(httpProvider.post).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&fee=1&source=0x6b175474e89094c44da98b954eedeac495271d0f&surplus=true&slippage=1', body.build());
446
+ return [
447
+ 2
448
+ ];
449
+ }
450
+ });
451
+ }));
361
452
  });
@@ -45,6 +45,7 @@ export var QuoterRequest = /*#__PURE__*/ function() {
45
45
  _define_property(this, "integratorFee", void 0);
46
46
  _define_property(this, "source", void 0);
47
47
  _define_property(this, "isPermit2", void 0);
48
+ _define_property(this, "slippage", void 0);
48
49
  this.fromTokenAddress = new Address(params.fromTokenAddress);
49
50
  this.toTokenAddress = new Address(params.toTokenAddress);
50
51
  this.amount = params.amount;
@@ -55,6 +56,7 @@ export var QuoterRequest = /*#__PURE__*/ function() {
55
56
  this.source = params.source || 'sdk';
56
57
  var _params_isPermit2;
57
58
  this.isPermit2 = (_params_isPermit2 = params.isPermit2) !== null && _params_isPermit2 !== void 0 ? _params_isPermit2 : false;
59
+ this.slippage = params.slippage;
58
60
  if (this.fromTokenAddress.isNative()) {
59
61
  throw new Error("cannot swap ".concat(Address.NATIVE_CURRENCY, ": wrap native currency to it's wrapper fist"));
60
62
  }
@@ -86,7 +88,8 @@ export var QuoterRequest = /*#__PURE__*/ function() {
86
88
  fee: Number(((_this_integratorFee = this.integratorFee) === null || _this_integratorFee === void 0 ? void 0 : _this_integratorFee.value.value) || 0),
87
89
  source: this.source,
88
90
  isPermit2: this.isPermit2,
89
- surplus: true
91
+ surplus: true,
92
+ slippage: this.slippage
90
93
  };
91
94
  }
92
95
  }
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * tells quoter to use new settlement with surplus
3
+ */ /**
4
+ * Optional slippage value in percent (e.g., 1 for 1%, max 50)
5
+ * Must be between 1 and 50 inclusive
3
6
  */ export var PresetEnum = /*#__PURE__*/ function(PresetEnum) {
4
7
  PresetEnum["fast"] = "fast";
5
8
  PresetEnum["medium"] = "medium";
@@ -1 +1 @@
1
- {"name":"@1inch/fusion-sdk","version":"2.3.6-rc.0","type":"module"}
1
+ {"name":"@1inch/fusion-sdk","version":"2.3.6","type":"module"}
@@ -248,7 +248,8 @@ export var FusionSDK = /*#__PURE__*/ function() {
248
248
  enableEstimate: !!params.enableEstimate,
249
249
  source: params.source,
250
250
  isPermit2: params.isPermit2,
251
- integratorFee: params.integratorFee
251
+ integratorFee: params.integratorFee,
252
+ slippage: params.slippage
252
253
  });
253
254
  return [
254
255
  2,
@@ -465,7 +466,8 @@ export var FusionSDK = /*#__PURE__*/ function() {
465
466
  enableEstimate: true,
466
467
  source: params.source,
467
468
  isPermit2: params.isPermit2,
468
- integratorFee: params === null || params === void 0 ? void 0 : params.integratorFee
469
+ integratorFee: params === null || params === void 0 ? void 0 : params.integratorFee,
470
+ slippage: params === null || params === void 0 ? void 0 : params.slippage
469
471
  });
470
472
  if (!params.customPreset) {
471
473
  return [
@@ -19,7 +19,7 @@ export type ActiveOrder = {
19
19
  remainingMakerAmount: string;
20
20
  order: LimitOrderV4Struct;
21
21
  extension: string;
22
- version: '2.0' | '2.1';
22
+ version: '2.2';
23
23
  };
24
24
  export type ActiveOrdersResponse = PaginationOutput<ActiveOrder>;
25
25
  export type OrderStatusParams = {
@@ -11,6 +11,7 @@ export declare class QuoterRequest {
11
11
  readonly integratorFee?: IntegratorFeeParams;
12
12
  readonly source: string;
13
13
  readonly isPermit2: boolean;
14
+ readonly slippage?: number;
14
15
  constructor(params: QuoterRequestParams);
15
16
  static new(params: QuoterRequestParams): QuoterRequest;
16
17
  build(): QuoterRequestParamsRaw;
@@ -10,10 +10,12 @@ export type QuoterRequestParams = {
10
10
  integratorFee?: IntegratorFeeParams;
11
11
  source?: string;
12
12
  isPermit2?: boolean;
13
+ slippage?: number;
13
14
  };
14
15
  export type QuoterRequestParamsRaw = Omit<QuoterRequestParams, 'integratorFee'> & {
15
16
  fee?: number;
16
17
  surplus: true;
18
+ slippage?: number;
17
19
  };
18
20
  export type QuoterCustomPresetRequestParams = {
19
21
  customPreset: CustomPreset;
@@ -20,6 +20,7 @@ export type QuoteParams = {
20
20
  integratorFee?: IntegratorFeeParams;
21
21
  source?: string;
22
22
  isPermit2?: boolean;
23
+ slippage?: number;
23
24
  };
24
25
  export type QuoteCustomPresetParams = {
25
26
  customPreset: CustomPreset;
@@ -40,6 +41,7 @@ export type OrderParams = {
40
41
  allowPartialFills?: boolean;
41
42
  allowMultipleFills?: boolean;
42
43
  integratorFee?: IntegratorFeeParams;
44
+ slippage?: number;
43
45
  };
44
46
  export type OrderInfo = {
45
47
  order: LimitOrderV4Struct;