@1inch/fusion-sdk 2.3.6-rc.0 → 2.3.7-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.
- package/dist/cjs/api/orders/order-api.spec.js +2 -2
- package/dist/cjs/api/orders/types.js +1 -3
- package/dist/cjs/api/quoter/quote/quote.js +7 -1
- package/dist/cjs/api/quoter/quoter.api.spec.js +91 -0
- package/dist/cjs/api/quoter/quoter.request.js +4 -1
- package/dist/cjs/api/quoter/types.js +7 -0
- package/dist/cjs/sdk/sdk.js +4 -2
- package/dist/esm/api/orders/order-api.spec.js +2 -2
- package/dist/esm/api/orders/types.js +1 -3
- package/dist/esm/api/quoter/quote/quote.js +7 -1
- package/dist/esm/api/quoter/quoter.api.spec.js +91 -0
- package/dist/esm/api/quoter/quoter.request.js +4 -1
- package/dist/esm/api/quoter/types.js +7 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/sdk/sdk.js +4 -2
- package/dist/types/src/api/orders/types.d.ts +1 -1
- package/dist/types/src/api/quoter/quote/quote.d.ts +2 -1
- package/dist/types/src/api/quoter/quoter.request.d.ts +1 -0
- package/dist/types/src/api/quoter/types.d.ts +5 -0
- package/dist/types/src/sdk/types.d.ts +2 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -175,7 +175,7 @@ describe(__filename, function() {
|
|
|
175
175
|
takingAmount: '147681'
|
|
176
176
|
},
|
|
177
177
|
extension: '0x000000830000005e0000005e0000005e0000005e0000002f0000000000000000fb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b8400c956a00003e1b662a59940000b40ecaaa002b1d00540e41ea003cfb2809a5314473e1165f6b58018e20ed8f07b840662a597cd1a23c3abeed63c51b86000008',
|
|
178
|
-
version: '2.
|
|
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.
|
|
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";
|
|
@@ -69,6 +69,7 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
69
69
|
_define_property(this, "slippage", void 0);
|
|
70
70
|
_define_property(this, "resolverFeePreset", void 0);
|
|
71
71
|
_define_property(this, "surplusFee", void 0);
|
|
72
|
+
_define_property(this, "integratorFeeParams", void 0);
|
|
72
73
|
this.params = params;
|
|
73
74
|
this.fromTokenAmount = BigInt(response.fromTokenAmount);
|
|
74
75
|
var _obj;
|
|
@@ -90,6 +91,11 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
90
91
|
bps: new _limitordersdk.Bps(BigInt(response.fee.bps))
|
|
91
92
|
};
|
|
92
93
|
this.surplusFee = response.surplusFee;
|
|
94
|
+
this.integratorFeeParams = response.integratorFee && response.integratorFeeReceiver ? {
|
|
95
|
+
receiver: new _limitordersdk.Address(response.integratorFeeReceiver),
|
|
96
|
+
value: new _limitordersdk.Bps(BigInt(response.integratorFee)),
|
|
97
|
+
share: _limitordersdk.Bps.fromPercent(response.integratorFeeShare || 0)
|
|
98
|
+
} : undefined;
|
|
93
99
|
}
|
|
94
100
|
_create_class(Quote, [
|
|
95
101
|
{
|
|
@@ -133,7 +139,7 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
133
139
|
orderExpirationDelay: paramsData === null || paramsData === void 0 ? void 0 : paramsData.orderExpirationDelay,
|
|
134
140
|
source: this.params.source,
|
|
135
141
|
enablePermit2: params.isPermit2,
|
|
136
|
-
fees: buildFees(this.resolverFeePreset, this.params.integratorFee, this.surplusFee)
|
|
142
|
+
fees: buildFees(this.resolverFeePreset, this.params.integratorFee || this.integratorFeeParams, this.surplusFee)
|
|
137
143
|
});
|
|
138
144
|
}
|
|
139
145
|
},
|
|
@@ -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,13 @@ 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
|
|
16
|
+
*/ /**
|
|
17
|
+
* In bps
|
|
18
|
+
*/ /**
|
|
19
|
+
* Percentage of the integrator fee that will be shared with the integrator.
|
|
13
20
|
*/ var PresetEnum = /*#__PURE__*/ function(PresetEnum) {
|
|
14
21
|
PresetEnum["fast"] = "fast";
|
|
15
22
|
PresetEnum["medium"] = "medium";
|
package/dist/cjs/sdk/sdk.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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";
|
|
@@ -59,6 +59,7 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
59
59
|
_define_property(this, "slippage", void 0);
|
|
60
60
|
_define_property(this, "resolverFeePreset", void 0);
|
|
61
61
|
_define_property(this, "surplusFee", void 0);
|
|
62
|
+
_define_property(this, "integratorFeeParams", void 0);
|
|
62
63
|
this.params = params;
|
|
63
64
|
this.fromTokenAmount = BigInt(response.fromTokenAmount);
|
|
64
65
|
var _obj;
|
|
@@ -80,6 +81,11 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
80
81
|
bps: new Bps(BigInt(response.fee.bps))
|
|
81
82
|
};
|
|
82
83
|
this.surplusFee = response.surplusFee;
|
|
84
|
+
this.integratorFeeParams = response.integratorFee && response.integratorFeeReceiver ? {
|
|
85
|
+
receiver: new Address(response.integratorFeeReceiver),
|
|
86
|
+
value: new Bps(BigInt(response.integratorFee)),
|
|
87
|
+
share: Bps.fromPercent(response.integratorFeeShare || 0)
|
|
88
|
+
} : undefined;
|
|
83
89
|
}
|
|
84
90
|
_create_class(Quote, [
|
|
85
91
|
{
|
|
@@ -123,7 +129,7 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
123
129
|
orderExpirationDelay: paramsData === null || paramsData === void 0 ? void 0 : paramsData.orderExpirationDelay,
|
|
124
130
|
source: this.params.source,
|
|
125
131
|
enablePermit2: params.isPermit2,
|
|
126
|
-
fees: buildFees(this.resolverFeePreset, this.params.integratorFee, this.surplusFee)
|
|
132
|
+
fees: buildFees(this.resolverFeePreset, this.params.integratorFee || this.integratorFeeParams, this.surplusFee)
|
|
127
133
|
});
|
|
128
134
|
}
|
|
129
135
|
},
|
|
@@ -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,12 @@
|
|
|
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
|
|
6
|
+
*/ /**
|
|
7
|
+
* In bps
|
|
8
|
+
*/ /**
|
|
9
|
+
* Percentage of the integrator fee that will be shared with the integrator.
|
|
3
10
|
*/ export var PresetEnum = /*#__PURE__*/ function(PresetEnum) {
|
|
4
11
|
PresetEnum["fast"] = "fast";
|
|
5
12
|
PresetEnum["medium"] = "medium";
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@1inch/fusion-sdk","version":"2.3.
|
|
1
|
+
{"name":"@1inch/fusion-sdk","version":"2.3.7-rc.0","type":"module"}
|
package/dist/esm/sdk/sdk.js
CHANGED
|
@@ -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.
|
|
22
|
+
version: '2.2';
|
|
23
23
|
};
|
|
24
24
|
export type ActiveOrdersResponse = PaginationOutput<ActiveOrder>;
|
|
25
25
|
export type OrderStatusParams = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Address } from '@1inch/limit-order-sdk';
|
|
2
|
-
import { FusionOrderParamsData, ResolverFeePreset } from './types.js';
|
|
2
|
+
import { FusionOrderParamsData, IntegratorFeeParams, 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';
|
|
@@ -24,6 +24,7 @@ export declare class Quote {
|
|
|
24
24
|
readonly slippage: number;
|
|
25
25
|
readonly resolverFeePreset: ResolverFeePreset;
|
|
26
26
|
readonly surplusFee?: number;
|
|
27
|
+
readonly integratorFeeParams?: IntegratorFeeParams;
|
|
27
28
|
constructor(params: QuoterRequest, response: QuoterResponse);
|
|
28
29
|
createFusionOrder(paramsData: Omit<FusionOrderParamsData, 'permit' | 'isPermit2'>): FusionOrder;
|
|
29
30
|
getPreset(type?: PresetEnum): Preset;
|
|
@@ -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;
|
|
@@ -37,6 +39,9 @@ export type QuoterResponse = {
|
|
|
37
39
|
fee: ResolverFeePresetRaw;
|
|
38
40
|
surplusFee?: number;
|
|
39
41
|
marketAmount: string;
|
|
42
|
+
integratorFee: number;
|
|
43
|
+
integratorFeeReceiver?: string;
|
|
44
|
+
integratorFeeShare: number;
|
|
40
45
|
};
|
|
41
46
|
export type QuoterPresets = {
|
|
42
47
|
fast: PresetData;
|
|
@@ -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;
|