@1inch/fusion-sdk 2.4.4 → 2.4.5-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/quoter/quote/quote.js +20 -6
- package/dist/cjs/api/quoter/quoter.api.spec.js +101 -5
- package/dist/cjs/api/quoter/quoter.request.js +1 -4
- package/dist/cjs/api/quoter/quoter.request.spec.js +2 -8
- package/dist/esm/api/quoter/quote/quote.js +20 -6
- package/dist/esm/api/quoter/quote/types.js +15 -3
- package/dist/esm/api/quoter/quoter.api.spec.js +101 -5
- package/dist/esm/api/quoter/quoter.request.js +1 -4
- package/dist/esm/api/quoter/quoter.request.spec.js +2 -8
- package/dist/esm/package.json +1 -1
- package/dist/types/src/api/quoter/quote/quote.d.ts +3 -2
- package/dist/types/src/api/quoter/quote/types.d.ts +6 -1
- package/dist/types/src/api/quoter/quoter.request.d.ts +3 -3
- package/dist/types/src/api/quoter/types.d.ts +2 -2
- package/dist/types/src/sdk/types.d.ts +3 -3
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -102,11 +102,7 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
102
102
|
bps: new _limitordersdk.Bps(BigInt(response.fee.bps))
|
|
103
103
|
};
|
|
104
104
|
this.surplusFee = response.surplusFee;
|
|
105
|
-
this.integratorFeeParams =
|
|
106
|
-
receiver: new _limitordersdk.Address(response.integratorFeeReceiver),
|
|
107
|
-
value: new _limitordersdk.Bps(BigInt(response.integratorFee)),
|
|
108
|
-
share: _limitordersdk.Bps.fromPercent(response.integratorFeeShare || 0)
|
|
109
|
-
} : undefined;
|
|
105
|
+
this.integratorFeeParams = this.parseIntegratorFee(response);
|
|
110
106
|
}
|
|
111
107
|
_create_class(Quote, [
|
|
112
108
|
{
|
|
@@ -153,7 +149,7 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
153
149
|
orderExpirationDelay: paramsData === null || paramsData === void 0 ? void 0 : paramsData.orderExpirationDelay,
|
|
154
150
|
source: this.params.source,
|
|
155
151
|
enablePermit2: params.isPermit2,
|
|
156
|
-
fees: buildFees(this.resolverFeePreset, this.
|
|
152
|
+
fees: buildFees(this.resolverFeePreset, this.integratorFeeParams, this.surplusFee)
|
|
157
153
|
};
|
|
158
154
|
return this._createOrder(paramsData.network, this.settlementAddress, orderInfo, details, extra);
|
|
159
155
|
}
|
|
@@ -194,6 +190,24 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
194
190
|
}
|
|
195
191
|
return _index.FusionOrder.new(settlementExtension, orderInfo, details, extra);
|
|
196
192
|
}
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
key: "parseIntegratorFee",
|
|
196
|
+
value: function parseIntegratorFee(response) {
|
|
197
|
+
var _this_params_integratorFee_receiver, _this_params_integratorFee;
|
|
198
|
+
if (!response.integratorFee) {
|
|
199
|
+
return undefined;
|
|
200
|
+
}
|
|
201
|
+
var receiver = response.integratorFeeReceiver || ((_this_params_integratorFee = this.params.integratorFee) === null || _this_params_integratorFee === void 0 ? void 0 : (_this_params_integratorFee_receiver = _this_params_integratorFee.receiver) === null || _this_params_integratorFee_receiver === void 0 ? void 0 : _this_params_integratorFee_receiver.toString());
|
|
202
|
+
if (!receiver) {
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
receiver: new _limitordersdk.Address(receiver),
|
|
207
|
+
value: new _limitordersdk.Bps(BigInt(response.integratorFee)),
|
|
208
|
+
share: _limitordersdk.Bps.fromPercent(response.integratorFeeShare || 0)
|
|
209
|
+
};
|
|
210
|
+
}
|
|
197
211
|
}
|
|
198
212
|
]);
|
|
199
213
|
return Quote;
|
|
@@ -38,6 +38,58 @@ function _async_to_generator(fn) {
|
|
|
38
38
|
});
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
+
function _define_property(obj, key, value) {
|
|
42
|
+
if (key in obj) {
|
|
43
|
+
Object.defineProperty(obj, key, {
|
|
44
|
+
value: value,
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
obj[key] = value;
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
function _object_spread(target) {
|
|
55
|
+
for(var i = 1; i < arguments.length; i++){
|
|
56
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
57
|
+
var ownKeys = Object.keys(source);
|
|
58
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
59
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
60
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
ownKeys.forEach(function(key) {
|
|
64
|
+
_define_property(target, key, source[key]);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return target;
|
|
68
|
+
}
|
|
69
|
+
function ownKeys(object, enumerableOnly) {
|
|
70
|
+
var keys = Object.keys(object);
|
|
71
|
+
if (Object.getOwnPropertySymbols) {
|
|
72
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
73
|
+
if (enumerableOnly) {
|
|
74
|
+
symbols = symbols.filter(function(sym) {
|
|
75
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
keys.push.apply(keys, symbols);
|
|
79
|
+
}
|
|
80
|
+
return keys;
|
|
81
|
+
}
|
|
82
|
+
function _object_spread_props(target, source) {
|
|
83
|
+
source = source != null ? source : {};
|
|
84
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
85
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
86
|
+
} else {
|
|
87
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
88
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return target;
|
|
92
|
+
}
|
|
41
93
|
function _ts_generator(thisArg, body) {
|
|
42
94
|
var f, y, t, g, _ = {
|
|
43
95
|
label: 0,
|
|
@@ -266,7 +318,7 @@ describe('Quoter API', function() {
|
|
|
266
318
|
case 1:
|
|
267
319
|
res = _state.sent();
|
|
268
320
|
expect(res).toStrictEqual(QuoterResponseMock);
|
|
269
|
-
expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&
|
|
321
|
+
expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&surplus=true');
|
|
270
322
|
return [
|
|
271
323
|
2
|
|
272
324
|
];
|
|
@@ -288,7 +340,6 @@ describe('Quoter API', function() {
|
|
|
288
340
|
amount: '1000000000000000000000',
|
|
289
341
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
290
342
|
integratorFee: {
|
|
291
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
292
343
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
293
344
|
value: new _limitordersdk.Bps(1n)
|
|
294
345
|
},
|
|
@@ -324,7 +375,6 @@ describe('Quoter API', function() {
|
|
|
324
375
|
amount: '1000000000000000000000',
|
|
325
376
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
326
377
|
integratorFee: {
|
|
327
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
328
378
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
329
379
|
value: new _limitordersdk.Bps(1n)
|
|
330
380
|
},
|
|
@@ -361,7 +411,6 @@ describe('Quoter API', function() {
|
|
|
361
411
|
amount: '1000000000000000000000',
|
|
362
412
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
363
413
|
integratorFee: {
|
|
364
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
365
414
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
366
415
|
value: new _limitordersdk.Bps(1n)
|
|
367
416
|
},
|
|
@@ -414,7 +463,6 @@ describe('Quoter API', function() {
|
|
|
414
463
|
amount: '1000000000000000000000',
|
|
415
464
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
416
465
|
integratorFee: {
|
|
417
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
418
466
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
419
467
|
value: new _limitordersdk.Bps(1n)
|
|
420
468
|
},
|
|
@@ -453,4 +501,52 @@ describe('Quoter API', function() {
|
|
|
453
501
|
}
|
|
454
502
|
});
|
|
455
503
|
}));
|
|
504
|
+
describe('parseIntegratorFee', function() {
|
|
505
|
+
it('should use response receiver when provided', function() {
|
|
506
|
+
var _quote_integratorFeeParams, _quote_integratorFeeParams1, _quote_integratorFeeParams2;
|
|
507
|
+
var responseWithFee = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
508
|
+
integratorFee: 100,
|
|
509
|
+
integratorFeeReceiver: '0x1234567890123456789012345678901234567890',
|
|
510
|
+
integratorFeeShare: 50
|
|
511
|
+
});
|
|
512
|
+
var quote = new _index.Quote(params, responseWithFee);
|
|
513
|
+
expect(quote.integratorFeeParams).toBeDefined();
|
|
514
|
+
expect((_quote_integratorFeeParams = quote.integratorFeeParams) === null || _quote_integratorFeeParams === void 0 ? void 0 : _quote_integratorFeeParams.receiver.toString()).toBe('0x1234567890123456789012345678901234567890');
|
|
515
|
+
expect(Number((_quote_integratorFeeParams1 = quote.integratorFeeParams) === null || _quote_integratorFeeParams1 === void 0 ? void 0 : _quote_integratorFeeParams1.value.value)).toBe(100);
|
|
516
|
+
expect(Number((_quote_integratorFeeParams2 = quote.integratorFeeParams) === null || _quote_integratorFeeParams2 === void 0 ? void 0 : _quote_integratorFeeParams2.share.value)).toBe(5000);
|
|
517
|
+
});
|
|
518
|
+
it('should fallback to request receiver when response receiver is missing', function() {
|
|
519
|
+
var _quote_integratorFeeParams;
|
|
520
|
+
var responseWithFeeNoReceiver = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
521
|
+
integratorFee: 100,
|
|
522
|
+
integratorFeeShare: 50
|
|
523
|
+
});
|
|
524
|
+
var paramsWithFee = _quoterrequest.QuoterRequest.new({
|
|
525
|
+
fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
526
|
+
toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
527
|
+
amount: '1000000000000000000000',
|
|
528
|
+
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
529
|
+
integratorFee: {
|
|
530
|
+
receiver: new _limitordersdk.Address('0xabcdef0123456789abcdef0123456789abcdef01'),
|
|
531
|
+
value: new _limitordersdk.Bps(100n)
|
|
532
|
+
},
|
|
533
|
+
source: 'test-source'
|
|
534
|
+
});
|
|
535
|
+
var quote = new _index.Quote(paramsWithFee, responseWithFeeNoReceiver);
|
|
536
|
+
expect(quote.integratorFeeParams).toBeDefined();
|
|
537
|
+
expect((_quote_integratorFeeParams = quote.integratorFeeParams) === null || _quote_integratorFeeParams === void 0 ? void 0 : _quote_integratorFeeParams.receiver.toString()).toBe('0xabcdef0123456789abcdef0123456789abcdef01');
|
|
538
|
+
});
|
|
539
|
+
it('should return undefined when no receiver available', function() {
|
|
540
|
+
var responseWithFeeNoReceiver = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
541
|
+
integratorFee: 100,
|
|
542
|
+
integratorFeeShare: 50
|
|
543
|
+
});
|
|
544
|
+
var quote = new _index.Quote(params, responseWithFeeNoReceiver);
|
|
545
|
+
expect(quote.integratorFeeParams).toBeUndefined();
|
|
546
|
+
});
|
|
547
|
+
it('should return undefined when no integratorFee in response', function() {
|
|
548
|
+
var quote = new _index.Quote(params, ResponseMock);
|
|
549
|
+
expect(quote.integratorFeeParams).toBeUndefined();
|
|
550
|
+
});
|
|
551
|
+
});
|
|
456
552
|
});
|
|
@@ -63,7 +63,7 @@ var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
63
63
|
this.enableEstimate = params.enableEstimate || false;
|
|
64
64
|
this.permit = params.permit;
|
|
65
65
|
this.integratorFee = params.integratorFee;
|
|
66
|
-
this.source = params.source
|
|
66
|
+
this.source = params.source;
|
|
67
67
|
var _params_isPermit2;
|
|
68
68
|
this.isPermit2 = (_params_isPermit2 = params.isPermit2) !== null && _params_isPermit2 !== void 0 ? _params_isPermit2 : false;
|
|
69
69
|
this.slippage = params.slippage;
|
|
@@ -76,9 +76,6 @@ var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
76
76
|
if (!(0, _validations.isValidAmount)(this.amount)) {
|
|
77
77
|
throw new Error("".concat(this.amount, " is invalid amount"));
|
|
78
78
|
}
|
|
79
|
-
if (this.integratorFee && this.source === 'sdk') {
|
|
80
|
-
throw new Error('cannot use fee without source');
|
|
81
|
-
}
|
|
82
79
|
}
|
|
83
80
|
_create_class(QuoterRequest, [
|
|
84
81
|
{
|
|
@@ -13,7 +13,6 @@ describe(__filename, function() {
|
|
|
13
13
|
amount: '1000000000000000000000',
|
|
14
14
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
15
15
|
integratorFee: {
|
|
16
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
17
16
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
18
17
|
value: new _limitordersdk.Bps(1n)
|
|
19
18
|
}
|
|
@@ -26,7 +25,6 @@ describe(__filename, function() {
|
|
|
26
25
|
amount: '1000000000000000000000',
|
|
27
26
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
28
27
|
integratorFee: {
|
|
29
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
30
28
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
31
29
|
value: new _limitordersdk.Bps(1n)
|
|
32
30
|
}
|
|
@@ -41,7 +39,6 @@ describe(__filename, function() {
|
|
|
41
39
|
amount: '1000000000000000000000',
|
|
42
40
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
43
41
|
integratorFee: {
|
|
44
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
45
42
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
46
43
|
value: new _limitordersdk.Bps(1n)
|
|
47
44
|
}
|
|
@@ -56,7 +53,6 @@ describe(__filename, function() {
|
|
|
56
53
|
amount: '1000000000000000000000',
|
|
57
54
|
walletAddress: '0x0000000019ab540356cbb839be05303d7705fa1',
|
|
58
55
|
integratorFee: {
|
|
59
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
60
56
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
61
57
|
value: new _limitordersdk.Bps(1n)
|
|
62
58
|
}
|
|
@@ -71,14 +67,13 @@ describe(__filename, function() {
|
|
|
71
67
|
amount: 'dasdad',
|
|
72
68
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
73
69
|
integratorFee: {
|
|
74
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
75
70
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
76
71
|
value: new _limitordersdk.Bps(1n)
|
|
77
72
|
}
|
|
78
73
|
});
|
|
79
74
|
}).toThrow(/is invalid amount/);
|
|
80
75
|
});
|
|
81
|
-
it('
|
|
76
|
+
it('allows fee without source', function() {
|
|
82
77
|
expect(function() {
|
|
83
78
|
return _quoterrequest.QuoterRequest.new({
|
|
84
79
|
fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
@@ -86,11 +81,10 @@ describe(__filename, function() {
|
|
|
86
81
|
amount: '1000000',
|
|
87
82
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
88
83
|
integratorFee: {
|
|
89
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
90
84
|
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
91
85
|
value: new _limitordersdk.Bps(1n)
|
|
92
86
|
}
|
|
93
87
|
});
|
|
94
|
-
}).toThrow(
|
|
88
|
+
}).not.toThrow();
|
|
95
89
|
});
|
|
96
90
|
});
|
|
@@ -87,11 +87,7 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
87
87
|
bps: new Bps(BigInt(response.fee.bps))
|
|
88
88
|
};
|
|
89
89
|
this.surplusFee = response.surplusFee;
|
|
90
|
-
this.integratorFeeParams =
|
|
91
|
-
receiver: new Address(response.integratorFeeReceiver),
|
|
92
|
-
value: new Bps(BigInt(response.integratorFee)),
|
|
93
|
-
share: Bps.fromPercent(response.integratorFeeShare || 0)
|
|
94
|
-
} : undefined;
|
|
90
|
+
this.integratorFeeParams = this.parseIntegratorFee(response);
|
|
95
91
|
}
|
|
96
92
|
_create_class(Quote, [
|
|
97
93
|
{
|
|
@@ -138,7 +134,7 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
138
134
|
orderExpirationDelay: paramsData === null || paramsData === void 0 ? void 0 : paramsData.orderExpirationDelay,
|
|
139
135
|
source: this.params.source,
|
|
140
136
|
enablePermit2: params.isPermit2,
|
|
141
|
-
fees: buildFees(this.resolverFeePreset, this.
|
|
137
|
+
fees: buildFees(this.resolverFeePreset, this.integratorFeeParams, this.surplusFee)
|
|
142
138
|
};
|
|
143
139
|
return this._createOrder(paramsData.network, this.settlementAddress, orderInfo, details, extra);
|
|
144
140
|
}
|
|
@@ -179,6 +175,24 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
179
175
|
}
|
|
180
176
|
return FusionOrder.new(settlementExtension, orderInfo, details, extra);
|
|
181
177
|
}
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
key: "parseIntegratorFee",
|
|
181
|
+
value: function parseIntegratorFee(response) {
|
|
182
|
+
var _this_params_integratorFee_receiver, _this_params_integratorFee;
|
|
183
|
+
if (!response.integratorFee) {
|
|
184
|
+
return undefined;
|
|
185
|
+
}
|
|
186
|
+
var receiver = response.integratorFeeReceiver || ((_this_params_integratorFee = this.params.integratorFee) === null || _this_params_integratorFee === void 0 ? void 0 : (_this_params_integratorFee_receiver = _this_params_integratorFee.receiver) === null || _this_params_integratorFee_receiver === void 0 ? void 0 : _this_params_integratorFee_receiver.toString());
|
|
187
|
+
if (!receiver) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
receiver: new Address(receiver),
|
|
192
|
+
value: new Bps(BigInt(response.integratorFee)),
|
|
193
|
+
share: Bps.fromPercent(response.integratorFeeShare || 0)
|
|
194
|
+
};
|
|
195
|
+
}
|
|
182
196
|
}
|
|
183
197
|
]);
|
|
184
198
|
return Quote;
|
|
@@ -2,11 +2,23 @@
|
|
|
2
2
|
* Order will expire in `orderExpirationDelay` after auction ends
|
|
3
3
|
* Default 12s
|
|
4
4
|
*/ /**
|
|
5
|
+
* Integrator fee parameters for SDK requests.
|
|
6
|
+
* Used when calling getQuote() or createOrder().
|
|
7
|
+
*/ /**
|
|
8
|
+
* Address which will receive integrator's portion of the fee.
|
|
9
|
+
*/ /**
|
|
10
|
+
* How much to charge in basis points (1% = 100 bps)
|
|
11
|
+
*/ /**
|
|
12
|
+
* Integrator fee parameters from API response.
|
|
13
|
+
* Contains authoritative values calculated by backend.
|
|
14
|
+
*/ /**
|
|
5
15
|
* Address which will receive `share` of `value` fee, other part will be sent to protocol
|
|
6
16
|
*/ /**
|
|
7
|
-
* How much to charge
|
|
17
|
+
* How much to charge in basis points
|
|
18
|
+
*/ /**
|
|
19
|
+
* Integrator will receive only `share` part from charged fee (rest goes to protocol)
|
|
8
20
|
*/ /**
|
|
9
|
-
|
|
10
|
-
|
|
21
|
+
* @deprecated Use IntegratorFeeRequest for requests or IntegratorFeeResponse for responses
|
|
22
|
+
*/ export { }; /**
|
|
11
23
|
* protocol address
|
|
12
24
|
*/
|
|
@@ -27,6 +27,58 @@ function _async_to_generator(fn) {
|
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
function _object_spread(target) {
|
|
44
|
+
for(var i = 1; i < arguments.length; i++){
|
|
45
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
46
|
+
var ownKeys = Object.keys(source);
|
|
47
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
48
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
49
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
ownKeys.forEach(function(key) {
|
|
53
|
+
_define_property(target, key, source[key]);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return target;
|
|
57
|
+
}
|
|
58
|
+
function ownKeys(object, enumerableOnly) {
|
|
59
|
+
var keys = Object.keys(object);
|
|
60
|
+
if (Object.getOwnPropertySymbols) {
|
|
61
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
62
|
+
if (enumerableOnly) {
|
|
63
|
+
symbols = symbols.filter(function(sym) {
|
|
64
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
keys.push.apply(keys, symbols);
|
|
68
|
+
}
|
|
69
|
+
return keys;
|
|
70
|
+
}
|
|
71
|
+
function _object_spread_props(target, source) {
|
|
72
|
+
source = source != null ? source : {};
|
|
73
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
74
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
75
|
+
} else {
|
|
76
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
77
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return target;
|
|
81
|
+
}
|
|
30
82
|
function _ts_generator(thisArg, body) {
|
|
31
83
|
var f, y, t, g, _ = {
|
|
32
84
|
label: 0,
|
|
@@ -262,7 +314,7 @@ describe('Quoter API', function() {
|
|
|
262
314
|
case 1:
|
|
263
315
|
res = _state.sent();
|
|
264
316
|
expect(res).toStrictEqual(QuoterResponseMock);
|
|
265
|
-
expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&
|
|
317
|
+
expect(httpProvider.get).toHaveBeenCalledWith('https://test.com/quoter/v2.0/1/quote/receive/?fromTokenAddress=0x6b175474e89094c44da98b954eedeac495271d0f&toTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2&amount=1000000000000000000000&walletAddress=0x00000000219ab540356cbb839cbe05303d7705fa&surplus=true');
|
|
266
318
|
return [
|
|
267
319
|
2
|
|
268
320
|
];
|
|
@@ -284,7 +336,6 @@ describe('Quoter API', function() {
|
|
|
284
336
|
amount: '1000000000000000000000',
|
|
285
337
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
286
338
|
integratorFee: {
|
|
287
|
-
share: Bps.fromPercent(50),
|
|
288
339
|
receiver: Address.fromBigInt(10n),
|
|
289
340
|
value: new Bps(1n)
|
|
290
341
|
},
|
|
@@ -320,7 +371,6 @@ describe('Quoter API', function() {
|
|
|
320
371
|
amount: '1000000000000000000000',
|
|
321
372
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
322
373
|
integratorFee: {
|
|
323
|
-
share: Bps.fromPercent(50),
|
|
324
374
|
receiver: Address.fromBigInt(10n),
|
|
325
375
|
value: new Bps(1n)
|
|
326
376
|
},
|
|
@@ -357,7 +407,6 @@ describe('Quoter API', function() {
|
|
|
357
407
|
amount: '1000000000000000000000',
|
|
358
408
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
359
409
|
integratorFee: {
|
|
360
|
-
share: Bps.fromPercent(50),
|
|
361
410
|
receiver: Address.fromBigInt(10n),
|
|
362
411
|
value: new Bps(1n)
|
|
363
412
|
},
|
|
@@ -410,7 +459,6 @@ describe('Quoter API', function() {
|
|
|
410
459
|
amount: '1000000000000000000000',
|
|
411
460
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
412
461
|
integratorFee: {
|
|
413
|
-
share: Bps.fromPercent(50),
|
|
414
462
|
receiver: Address.fromBigInt(10n),
|
|
415
463
|
value: new Bps(1n)
|
|
416
464
|
},
|
|
@@ -449,4 +497,52 @@ describe('Quoter API', function() {
|
|
|
449
497
|
}
|
|
450
498
|
});
|
|
451
499
|
}));
|
|
500
|
+
describe('parseIntegratorFee', function() {
|
|
501
|
+
it('should use response receiver when provided', function() {
|
|
502
|
+
var _quote_integratorFeeParams, _quote_integratorFeeParams1, _quote_integratorFeeParams2;
|
|
503
|
+
var responseWithFee = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
504
|
+
integratorFee: 100,
|
|
505
|
+
integratorFeeReceiver: '0x1234567890123456789012345678901234567890',
|
|
506
|
+
integratorFeeShare: 50
|
|
507
|
+
});
|
|
508
|
+
var quote = new Quote(params, responseWithFee);
|
|
509
|
+
expect(quote.integratorFeeParams).toBeDefined();
|
|
510
|
+
expect((_quote_integratorFeeParams = quote.integratorFeeParams) === null || _quote_integratorFeeParams === void 0 ? void 0 : _quote_integratorFeeParams.receiver.toString()).toBe('0x1234567890123456789012345678901234567890');
|
|
511
|
+
expect(Number((_quote_integratorFeeParams1 = quote.integratorFeeParams) === null || _quote_integratorFeeParams1 === void 0 ? void 0 : _quote_integratorFeeParams1.value.value)).toBe(100);
|
|
512
|
+
expect(Number((_quote_integratorFeeParams2 = quote.integratorFeeParams) === null || _quote_integratorFeeParams2 === void 0 ? void 0 : _quote_integratorFeeParams2.share.value)).toBe(5000);
|
|
513
|
+
});
|
|
514
|
+
it('should fallback to request receiver when response receiver is missing', function() {
|
|
515
|
+
var _quote_integratorFeeParams;
|
|
516
|
+
var responseWithFeeNoReceiver = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
517
|
+
integratorFee: 100,
|
|
518
|
+
integratorFeeShare: 50
|
|
519
|
+
});
|
|
520
|
+
var paramsWithFee = QuoterRequest.new({
|
|
521
|
+
fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
522
|
+
toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
523
|
+
amount: '1000000000000000000000',
|
|
524
|
+
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
525
|
+
integratorFee: {
|
|
526
|
+
receiver: new Address('0xabcdef0123456789abcdef0123456789abcdef01'),
|
|
527
|
+
value: new Bps(100n)
|
|
528
|
+
},
|
|
529
|
+
source: 'test-source'
|
|
530
|
+
});
|
|
531
|
+
var quote = new Quote(paramsWithFee, responseWithFeeNoReceiver);
|
|
532
|
+
expect(quote.integratorFeeParams).toBeDefined();
|
|
533
|
+
expect((_quote_integratorFeeParams = quote.integratorFeeParams) === null || _quote_integratorFeeParams === void 0 ? void 0 : _quote_integratorFeeParams.receiver.toString()).toBe('0xabcdef0123456789abcdef0123456789abcdef01');
|
|
534
|
+
});
|
|
535
|
+
it('should return undefined when no receiver available', function() {
|
|
536
|
+
var responseWithFeeNoReceiver = _object_spread_props(_object_spread({}, ResponseMock), {
|
|
537
|
+
integratorFee: 100,
|
|
538
|
+
integratorFeeShare: 50
|
|
539
|
+
});
|
|
540
|
+
var quote = new Quote(params, responseWithFeeNoReceiver);
|
|
541
|
+
expect(quote.integratorFeeParams).toBeUndefined();
|
|
542
|
+
});
|
|
543
|
+
it('should return undefined when no integratorFee in response', function() {
|
|
544
|
+
var quote = new Quote(params, ResponseMock);
|
|
545
|
+
expect(quote.integratorFeeParams).toBeUndefined();
|
|
546
|
+
});
|
|
547
|
+
});
|
|
452
548
|
});
|
|
@@ -53,7 +53,7 @@ export var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
53
53
|
this.enableEstimate = params.enableEstimate || false;
|
|
54
54
|
this.permit = params.permit;
|
|
55
55
|
this.integratorFee = params.integratorFee;
|
|
56
|
-
this.source = params.source
|
|
56
|
+
this.source = params.source;
|
|
57
57
|
var _params_isPermit2;
|
|
58
58
|
this.isPermit2 = (_params_isPermit2 = params.isPermit2) !== null && _params_isPermit2 !== void 0 ? _params_isPermit2 : false;
|
|
59
59
|
this.slippage = params.slippage;
|
|
@@ -66,9 +66,6 @@ export var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
66
66
|
if (!isValidAmount(this.amount)) {
|
|
67
67
|
throw new Error("".concat(this.amount, " is invalid amount"));
|
|
68
68
|
}
|
|
69
|
-
if (this.integratorFee && this.source === 'sdk') {
|
|
70
|
-
throw new Error('cannot use fee without source');
|
|
71
|
-
}
|
|
72
69
|
}
|
|
73
70
|
_create_class(QuoterRequest, [
|
|
74
71
|
{
|
|
@@ -9,7 +9,6 @@ describe(__filename, function() {
|
|
|
9
9
|
amount: '1000000000000000000000',
|
|
10
10
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
11
11
|
integratorFee: {
|
|
12
|
-
share: Bps.fromPercent(50),
|
|
13
12
|
receiver: Address.fromBigInt(10n),
|
|
14
13
|
value: new Bps(1n)
|
|
15
14
|
}
|
|
@@ -22,7 +21,6 @@ describe(__filename, function() {
|
|
|
22
21
|
amount: '1000000000000000000000',
|
|
23
22
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
24
23
|
integratorFee: {
|
|
25
|
-
share: Bps.fromPercent(50),
|
|
26
24
|
receiver: Address.fromBigInt(10n),
|
|
27
25
|
value: new Bps(1n)
|
|
28
26
|
}
|
|
@@ -37,7 +35,6 @@ describe(__filename, function() {
|
|
|
37
35
|
amount: '1000000000000000000000',
|
|
38
36
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
39
37
|
integratorFee: {
|
|
40
|
-
share: Bps.fromPercent(50),
|
|
41
38
|
receiver: Address.fromBigInt(10n),
|
|
42
39
|
value: new Bps(1n)
|
|
43
40
|
}
|
|
@@ -52,7 +49,6 @@ describe(__filename, function() {
|
|
|
52
49
|
amount: '1000000000000000000000',
|
|
53
50
|
walletAddress: '0x0000000019ab540356cbb839be05303d7705fa1',
|
|
54
51
|
integratorFee: {
|
|
55
|
-
share: Bps.fromPercent(50),
|
|
56
52
|
receiver: Address.fromBigInt(10n),
|
|
57
53
|
value: new Bps(1n)
|
|
58
54
|
}
|
|
@@ -67,14 +63,13 @@ describe(__filename, function() {
|
|
|
67
63
|
amount: 'dasdad',
|
|
68
64
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
69
65
|
integratorFee: {
|
|
70
|
-
share: Bps.fromPercent(50),
|
|
71
66
|
receiver: Address.fromBigInt(10n),
|
|
72
67
|
value: new Bps(1n)
|
|
73
68
|
}
|
|
74
69
|
});
|
|
75
70
|
}).toThrow(/is invalid amount/);
|
|
76
71
|
});
|
|
77
|
-
it('
|
|
72
|
+
it('allows fee without source', function() {
|
|
78
73
|
expect(function() {
|
|
79
74
|
return QuoterRequest.new({
|
|
80
75
|
fromTokenAddress: '0x6b175474e89094c44da98b954eedeac495271d0f',
|
|
@@ -82,11 +77,10 @@ describe(__filename, function() {
|
|
|
82
77
|
amount: '1000000',
|
|
83
78
|
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
84
79
|
integratorFee: {
|
|
85
|
-
share: Bps.fromPercent(50),
|
|
86
80
|
receiver: Address.fromBigInt(10n),
|
|
87
81
|
value: new Bps(1n)
|
|
88
82
|
}
|
|
89
83
|
});
|
|
90
|
-
}).toThrow(
|
|
84
|
+
}).not.toThrow();
|
|
91
85
|
});
|
|
92
86
|
});
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@1inch/fusion-sdk","version":"2.4.
|
|
1
|
+
{"name":"@1inch/fusion-sdk","version":"2.4.5-rc.0","type":"module"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Address, ProxyFactory } from '@1inch/limit-order-sdk';
|
|
2
|
-
import { FusionOrderParamsData,
|
|
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?:
|
|
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
|
|
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 {
|
|
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?:
|
|
12
|
-
readonly source
|
|
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 {
|
|
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?:
|
|
10
|
+
integratorFee?: IntegratorFeeRequest;
|
|
11
11
|
source?: string;
|
|
12
12
|
isPermit2?: boolean;
|
|
13
13
|
slippage?: number;
|