@1inch/fusion-sdk 2.3.9-rc.1 → 2.3.9-rc.10
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/abi/NativeOrderImpl.abi.json +5 -0
- package/dist/cjs/api/quoter/quote/quote.js +1 -0
- package/dist/cjs/api/quoter/quoter.request.js +0 -3
- package/dist/cjs/api/quoter/quoter.request.spec.js +0 -15
- package/dist/cjs/contracts/index.js +1 -0
- package/dist/cjs/contracts/native-order-impl.js +5 -4
- package/dist/cjs/fusion-order/fusion-order.js +19 -7
- package/dist/cjs/fusion-order/fusion-order.spec.js +33 -0
- package/dist/cjs/sdk/sdk.js +3 -2
- package/dist/esm/abi/NativeOrderImpl.abi.json +5 -0
- package/dist/esm/api/quoter/quote/quote.js +1 -0
- package/dist/esm/api/quoter/quoter.request.js +0 -3
- package/dist/esm/api/quoter/quoter.request.spec.js +0 -15
- package/dist/esm/contracts/index.js +1 -0
- package/dist/esm/contracts/native-order-impl.js +5 -4
- package/dist/esm/fusion-order/fusion-order.js +19 -7
- package/dist/esm/fusion-order/fusion-order.spec.js +33 -0
- package/dist/esm/fusion-order/types.js +4 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/sdk/sdk.js +3 -2
- package/dist/types/src/contracts/index.d.ts +1 -0
- package/dist/types/src/contracts/native-order-impl.d.ts +3 -4
- package/dist/types/src/fusion-order/types.d.ts +1 -0
- package/dist/types/src/sdk/types.d.ts +2 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -119,6 +119,7 @@ var Quote = /*#__PURE__*/ function() {
|
|
|
119
119
|
permit: this.params.permit,
|
|
120
120
|
isPermit2: this.params.isPermit2,
|
|
121
121
|
nonce: paramsData === null || paramsData === void 0 ? void 0 : paramsData.nonce,
|
|
122
|
+
delayAuctionStartTimeBy: paramsData === null || paramsData === void 0 ? void 0 : paramsData.delayAuctionStartTimeBy,
|
|
122
123
|
network: paramsData.network
|
|
123
124
|
});
|
|
124
125
|
var preset = this.getPreset(params.preset);
|
|
@@ -67,9 +67,6 @@ var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
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;
|
|
70
|
-
if (this.fromTokenAddress.isNative()) {
|
|
71
|
-
throw new Error("cannot swap ".concat(_limitordersdk.Address.NATIVE_CURRENCY, ": wrap native currency to it's wrapper fist"));
|
|
72
|
-
}
|
|
73
70
|
if (this.fromTokenAddress.isZero() || this.toTokenAddress.isZero()) {
|
|
74
71
|
throw new Error("replace ".concat(_limitordersdk.Address.ZERO_ADDRESS, " with ").concat(_limitordersdk.Address.NATIVE_CURRENCY));
|
|
75
72
|
}
|
|
@@ -5,21 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
var _limitordersdk = require("@1inch/limit-order-sdk");
|
|
6
6
|
var _quoterrequest = require("./quoter.request.js");
|
|
7
7
|
describe(__filename, function() {
|
|
8
|
-
it('should return error if native currency', function() {
|
|
9
|
-
expect(function() {
|
|
10
|
-
return _quoterrequest.QuoterRequest.new({
|
|
11
|
-
fromTokenAddress: _limitordersdk.Address.NATIVE_CURRENCY.toString(),
|
|
12
|
-
toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
13
|
-
amount: '1000000000000000000000',
|
|
14
|
-
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
15
|
-
integratorFee: {
|
|
16
|
-
share: _limitordersdk.Bps.fromPercent(50),
|
|
17
|
-
receiver: _limitordersdk.Address.fromBigInt(10n),
|
|
18
|
-
value: new _limitordersdk.Bps(1n)
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
}).toThrow(/wrap native currency/);
|
|
22
|
-
});
|
|
23
8
|
it('returns error fromTokenAddress or toTokenAddress equals ZERO_ADDRESS', function() {
|
|
24
9
|
expect(function() {
|
|
25
10
|
return _quoterrequest.QuoterRequest.new({
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
_export_star(require("./native-order-factory.js"), exports);
|
|
6
6
|
_export_star(require("./native-order-impl.js"), exports);
|
|
7
7
|
_export_star(require("./proxy-factory.js"), exports);
|
|
8
|
+
_export_star(require("./types.js"), exports);
|
|
8
9
|
function _export_star(from, to) {
|
|
9
10
|
Object.keys(from).forEach(function(k) {
|
|
10
11
|
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
@@ -103,7 +103,7 @@ var NativeOrdersImpl = /*#__PURE__*/ function() {
|
|
|
103
103
|
to: this.address,
|
|
104
104
|
value: 0n,
|
|
105
105
|
data: this.iface.encodeFunctionData('cancelOrder', [
|
|
106
|
-
_object_spread_props(_object_spread({}, order
|
|
106
|
+
_object_spread_props(_object_spread({}, order), {
|
|
107
107
|
maker: maker.toString()
|
|
108
108
|
})
|
|
109
109
|
])
|
|
@@ -112,14 +112,15 @@ var NativeOrdersImpl = /*#__PURE__*/ function() {
|
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
114
|
key: "cancelExpiredOrderByResolver",
|
|
115
|
-
value: function cancelExpiredOrderByResolver(maker, order) {
|
|
115
|
+
value: function cancelExpiredOrderByResolver(maker, order, rewardLimit) {
|
|
116
116
|
return {
|
|
117
117
|
to: this.address,
|
|
118
118
|
value: 0n,
|
|
119
119
|
data: this.iface.encodeFunctionData('cancelExpiredOrderByResolver', [
|
|
120
|
-
_object_spread_props(_object_spread({}, order
|
|
120
|
+
_object_spread_props(_object_spread({}, order), {
|
|
121
121
|
maker: maker.toString()
|
|
122
|
-
})
|
|
122
|
+
}),
|
|
123
|
+
rewardLimit
|
|
123
124
|
])
|
|
124
125
|
};
|
|
125
126
|
}
|
|
@@ -144,10 +144,13 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
144
144
|
if (orderInfo.makerAsset.isNative()) {
|
|
145
145
|
throw new Error('use FusionOrder.fromNative to create order from native asset');
|
|
146
146
|
}
|
|
147
|
+
var optimizeReceiverAddress = extra.optimizeReceiverAddress !== undefined ? extra.optimizeReceiverAddress : FusionOrder.defaultExtra.optimizeReceiverAddress;
|
|
147
148
|
this.inner = new _limitordersdk.LimitOrder(_object_spread_props(_object_spread({}, orderInfo), {
|
|
148
149
|
receiver: receiver,
|
|
149
150
|
salt: saltWithInjectedTrackCode
|
|
150
|
-
}), makerTraits, builtExtension
|
|
151
|
+
}), makerTraits, builtExtension, {
|
|
152
|
+
optimizeReceiverAddress: optimizeReceiverAddress
|
|
153
|
+
});
|
|
151
154
|
this.fusionExtension = extension;
|
|
152
155
|
}
|
|
153
156
|
_create_class(FusionOrder, [
|
|
@@ -469,7 +472,9 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
469
472
|
takerAsset: this.takerAsset,
|
|
470
473
|
receiver: this.receiver,
|
|
471
474
|
salt: this.salt
|
|
472
|
-
}, this.inner.makerTraits
|
|
475
|
+
}, this.inner.makerTraits, undefined, {
|
|
476
|
+
optimizeReceiverAddress: false
|
|
477
|
+
}).toCalldata();
|
|
473
478
|
}
|
|
474
479
|
}
|
|
475
480
|
], [
|
|
@@ -509,14 +514,19 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
509
514
|
*/ settlementExtension, orderInfo, details, extra) {
|
|
510
515
|
var _orderInfo = _object_spread_props(_object_spread({}, orderInfo), {
|
|
511
516
|
makerAsset: _constants.CHAIN_TO_WRAPPER[chainId],
|
|
512
|
-
receiver: orderInfo.receiver
|
|
517
|
+
receiver: orderInfo.receiver && !orderInfo.receiver.isZero() ? orderInfo.receiver : orderInfo.maker
|
|
513
518
|
});
|
|
514
519
|
// create temp order to calc order hash
|
|
515
|
-
var _order = FusionOrder.new(settlementExtension, _orderInfo, details, extra)
|
|
520
|
+
var _order = FusionOrder.new(settlementExtension, _orderInfo, details, _object_spread_props(_object_spread({}, extra), {
|
|
521
|
+
optimizeReceiverAddress: false
|
|
522
|
+
}));
|
|
516
523
|
var finalOrderInfo = _object_spread_props(_object_spread({}, _orderInfo), {
|
|
517
524
|
maker: ethOrdersFactory.getProxyAddress(_order.getOrderHash(chainId))
|
|
518
525
|
});
|
|
519
|
-
return new FusionOrder(settlementExtension,
|
|
526
|
+
return new FusionOrder(settlementExtension, // use same salt to have same order hash. Remove extension hash from it
|
|
527
|
+
_object_spread_props(_object_spread({}, finalOrderInfo), {
|
|
528
|
+
salt: _order.salt >> 160n
|
|
529
|
+
}), details.auction, details.whitelist, details.surplus, extra);
|
|
520
530
|
}
|
|
521
531
|
},
|
|
522
532
|
{
|
|
@@ -551,7 +561,8 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
551
561
|
permit: extension.makerPermit === _constants1.ZX ? undefined : _limitordersdk.Interaction.decode(extension.makerPermit).data,
|
|
552
562
|
unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
|
|
553
563
|
orderExpirationDelay: orderExpirationDelay,
|
|
554
|
-
fees: extra === null || extra === void 0 ? void 0 : extra.fees
|
|
564
|
+
fees: extra === null || extra === void 0 ? void 0 : extra.fees,
|
|
565
|
+
optimizeReceiverAddress: true
|
|
555
566
|
});
|
|
556
567
|
(0, _assert.default)(providedSalt === fusionOrder.salt, 'invalid salt for passed extension');
|
|
557
568
|
return fusionOrder;
|
|
@@ -565,5 +576,6 @@ _define_property(FusionOrder, "defaultExtra", {
|
|
|
565
576
|
allowMultipleFills: true,
|
|
566
577
|
unwrapWETH: false,
|
|
567
578
|
enablePermit2: false,
|
|
568
|
-
orderExpirationDelay: 12n
|
|
579
|
+
orderExpirationDelay: 12n,
|
|
580
|
+
optimizeReceiverAddress: true
|
|
569
581
|
});
|
|
@@ -333,6 +333,39 @@ describe('FusionOrder Native', function() {
|
|
|
333
333
|
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
334
334
|
expect(_fusionorder.FusionOrder.fromDataAndExtension(nativeOrder.build(), nativeOrder.extension).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
335
335
|
});
|
|
336
|
+
it('should correct detect that order is from native asset (no salt)', function() {
|
|
337
|
+
var ethOrderFactory = new _proxyfactory.ProxyFactory(new _limitordersdk.Address('0x62c650084e97a0fba2ecf365cc6d8a7722425363'), new _limitordersdk.Address('0xe8773a43fce4eedb18d0edbaf319059e1ae786af'));
|
|
338
|
+
var chainId = _constants.NetworkEnum.ETHEREUM;
|
|
339
|
+
var settlementExt = new _limitordersdk.Address('0x2ad5004c60e16e54d5007c80ce329adde5b51ef5');
|
|
340
|
+
var maker = new _limitordersdk.Address('0x962a836519109e162754161000d65d9dc027fa0f');
|
|
341
|
+
var nativeOrder = _fusionorder.FusionOrder.fromNative(chainId, ethOrderFactory, settlementExt, {
|
|
342
|
+
takerAsset: new _limitordersdk.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
343
|
+
makingAmount: 1000000000000000000n,
|
|
344
|
+
takingAmount: 1420000000n,
|
|
345
|
+
maker: maker
|
|
346
|
+
}, {
|
|
347
|
+
auction: new _index.AuctionDetails({
|
|
348
|
+
duration: 180n,
|
|
349
|
+
startTime: 1673548149n,
|
|
350
|
+
initialRateBump: 50000,
|
|
351
|
+
points: [
|
|
352
|
+
{
|
|
353
|
+
coefficient: 20000,
|
|
354
|
+
delay: 12
|
|
355
|
+
}
|
|
356
|
+
]
|
|
357
|
+
}),
|
|
358
|
+
whitelist: _index1.Whitelist.new(1673548139n, [
|
|
359
|
+
{
|
|
360
|
+
address: new _limitordersdk.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
361
|
+
allowFrom: 0n
|
|
362
|
+
}
|
|
363
|
+
]),
|
|
364
|
+
surplus: _surplusparams.SurplusParams.NO_FEE
|
|
365
|
+
});
|
|
366
|
+
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
367
|
+
expect(_fusionorder.FusionOrder.fromDataAndExtension(nativeOrder.build(), _limitordersdk.Extension.decode(nativeOrder.extension.encode())).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
368
|
+
});
|
|
336
369
|
it('should correct detect that order is NOT from native asset', function() {
|
|
337
370
|
var ethOrderFactory = new _proxyfactory.ProxyFactory(_limitordersdk.Address.fromBigInt(1n), _limitordersdk.Address.fromBigInt(2n));
|
|
338
371
|
var chainId = _constants.NetworkEnum.ETHEREUM;
|
package/dist/cjs/sdk/sdk.js
CHANGED
|
@@ -303,7 +303,7 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
303
303
|
value: function createOrder(params) {
|
|
304
304
|
var _this = this;
|
|
305
305
|
return _async_to_generator(function() {
|
|
306
|
-
var quote, order, hash;
|
|
306
|
+
var _quote_nativeOrderFactory, quote, order, hash;
|
|
307
307
|
return _ts_generator(this, function(_state) {
|
|
308
308
|
switch(_state.label){
|
|
309
309
|
case 0:
|
|
@@ -331,7 +331,8 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
331
331
|
{
|
|
332
332
|
order: order,
|
|
333
333
|
hash: hash,
|
|
334
|
-
quoteId: quote.quoteId
|
|
334
|
+
quoteId: quote.quoteId,
|
|
335
|
+
nativeOrderFactory: (_quote_nativeOrderFactory = quote.nativeOrderFactory) === null || _quote_nativeOrderFactory === void 0 ? void 0 : _quote_nativeOrderFactory.factory
|
|
335
336
|
}
|
|
336
337
|
];
|
|
337
338
|
}
|
|
@@ -104,6 +104,7 @@ export var Quote = /*#__PURE__*/ function() {
|
|
|
104
104
|
permit: this.params.permit,
|
|
105
105
|
isPermit2: this.params.isPermit2,
|
|
106
106
|
nonce: paramsData === null || paramsData === void 0 ? void 0 : paramsData.nonce,
|
|
107
|
+
delayAuctionStartTimeBy: paramsData === null || paramsData === void 0 ? void 0 : paramsData.delayAuctionStartTimeBy,
|
|
107
108
|
network: paramsData.network
|
|
108
109
|
});
|
|
109
110
|
var preset = this.getPreset(params.preset);
|
|
@@ -57,9 +57,6 @@ export var QuoterRequest = /*#__PURE__*/ function() {
|
|
|
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;
|
|
60
|
-
if (this.fromTokenAddress.isNative()) {
|
|
61
|
-
throw new Error("cannot swap ".concat(Address.NATIVE_CURRENCY, ": wrap native currency to it's wrapper fist"));
|
|
62
|
-
}
|
|
63
60
|
if (this.fromTokenAddress.isZero() || this.toTokenAddress.isZero()) {
|
|
64
61
|
throw new Error("replace ".concat(Address.ZERO_ADDRESS, " with ").concat(Address.NATIVE_CURRENCY));
|
|
65
62
|
}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import { Address, Bps } from '@1inch/limit-order-sdk';
|
|
2
2
|
import { QuoterRequest } from './quoter.request.js';
|
|
3
3
|
describe(__filename, function() {
|
|
4
|
-
it('should return error if native currency', function() {
|
|
5
|
-
expect(function() {
|
|
6
|
-
return QuoterRequest.new({
|
|
7
|
-
fromTokenAddress: Address.NATIVE_CURRENCY.toString(),
|
|
8
|
-
toTokenAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
|
|
9
|
-
amount: '1000000000000000000000',
|
|
10
|
-
walletAddress: '0x00000000219ab540356cbb839cbe05303d7705fa',
|
|
11
|
-
integratorFee: {
|
|
12
|
-
share: Bps.fromPercent(50),
|
|
13
|
-
receiver: Address.fromBigInt(10n),
|
|
14
|
-
value: new Bps(1n)
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
}).toThrow(/wrap native currency/);
|
|
18
|
-
});
|
|
19
4
|
it('returns error fromTokenAddress or toTokenAddress equals ZERO_ADDRESS', function() {
|
|
20
5
|
expect(function() {
|
|
21
6
|
return QuoterRequest.new({
|
|
@@ -88,7 +88,7 @@ export var NativeOrdersImpl = /*#__PURE__*/ function() {
|
|
|
88
88
|
to: this.address,
|
|
89
89
|
value: 0n,
|
|
90
90
|
data: this.iface.encodeFunctionData('cancelOrder', [
|
|
91
|
-
_object_spread_props(_object_spread({}, order
|
|
91
|
+
_object_spread_props(_object_spread({}, order), {
|
|
92
92
|
maker: maker.toString()
|
|
93
93
|
})
|
|
94
94
|
])
|
|
@@ -97,14 +97,15 @@ export var NativeOrdersImpl = /*#__PURE__*/ function() {
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
key: "cancelExpiredOrderByResolver",
|
|
100
|
-
value: function cancelExpiredOrderByResolver(maker, order) {
|
|
100
|
+
value: function cancelExpiredOrderByResolver(maker, order, rewardLimit) {
|
|
101
101
|
return {
|
|
102
102
|
to: this.address,
|
|
103
103
|
value: 0n,
|
|
104
104
|
data: this.iface.encodeFunctionData('cancelExpiredOrderByResolver', [
|
|
105
|
-
_object_spread_props(_object_spread({}, order
|
|
105
|
+
_object_spread_props(_object_spread({}, order), {
|
|
106
106
|
maker: maker.toString()
|
|
107
|
-
})
|
|
107
|
+
}),
|
|
108
|
+
rewardLimit
|
|
108
109
|
])
|
|
109
110
|
};
|
|
110
111
|
}
|
|
@@ -129,10 +129,13 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
129
129
|
if (orderInfo.makerAsset.isNative()) {
|
|
130
130
|
throw new Error('use FusionOrder.fromNative to create order from native asset');
|
|
131
131
|
}
|
|
132
|
+
var optimizeReceiverAddress = extra.optimizeReceiverAddress !== undefined ? extra.optimizeReceiverAddress : FusionOrder.defaultExtra.optimizeReceiverAddress;
|
|
132
133
|
this.inner = new LimitOrder(_object_spread_props(_object_spread({}, orderInfo), {
|
|
133
134
|
receiver: receiver,
|
|
134
135
|
salt: saltWithInjectedTrackCode
|
|
135
|
-
}), makerTraits, builtExtension
|
|
136
|
+
}), makerTraits, builtExtension, {
|
|
137
|
+
optimizeReceiverAddress: optimizeReceiverAddress
|
|
138
|
+
});
|
|
136
139
|
this.fusionExtension = extension;
|
|
137
140
|
}
|
|
138
141
|
_create_class(FusionOrder, [
|
|
@@ -454,7 +457,9 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
454
457
|
takerAsset: this.takerAsset,
|
|
455
458
|
receiver: this.receiver,
|
|
456
459
|
salt: this.salt
|
|
457
|
-
}, this.inner.makerTraits
|
|
460
|
+
}, this.inner.makerTraits, undefined, {
|
|
461
|
+
optimizeReceiverAddress: false
|
|
462
|
+
}).toCalldata();
|
|
458
463
|
}
|
|
459
464
|
}
|
|
460
465
|
], [
|
|
@@ -494,14 +499,19 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
494
499
|
*/ settlementExtension, orderInfo, details, extra) {
|
|
495
500
|
var _orderInfo = _object_spread_props(_object_spread({}, orderInfo), {
|
|
496
501
|
makerAsset: CHAIN_TO_WRAPPER[chainId],
|
|
497
|
-
receiver: orderInfo.receiver
|
|
502
|
+
receiver: orderInfo.receiver && !orderInfo.receiver.isZero() ? orderInfo.receiver : orderInfo.maker
|
|
498
503
|
});
|
|
499
504
|
// create temp order to calc order hash
|
|
500
|
-
var _order = FusionOrder.new(settlementExtension, _orderInfo, details, extra)
|
|
505
|
+
var _order = FusionOrder.new(settlementExtension, _orderInfo, details, _object_spread_props(_object_spread({}, extra), {
|
|
506
|
+
optimizeReceiverAddress: false
|
|
507
|
+
}));
|
|
501
508
|
var finalOrderInfo = _object_spread_props(_object_spread({}, _orderInfo), {
|
|
502
509
|
maker: ethOrdersFactory.getProxyAddress(_order.getOrderHash(chainId))
|
|
503
510
|
});
|
|
504
|
-
return new FusionOrder(settlementExtension,
|
|
511
|
+
return new FusionOrder(settlementExtension, // use same salt to have same order hash. Remove extension hash from it
|
|
512
|
+
_object_spread_props(_object_spread({}, finalOrderInfo), {
|
|
513
|
+
salt: _order.salt >> 160n
|
|
514
|
+
}), details.auction, details.whitelist, details.surplus, extra);
|
|
505
515
|
}
|
|
506
516
|
},
|
|
507
517
|
{
|
|
@@ -536,7 +546,8 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
536
546
|
permit: extension.makerPermit === ZX ? undefined : Interaction.decode(extension.makerPermit).data,
|
|
537
547
|
unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
|
|
538
548
|
orderExpirationDelay: orderExpirationDelay,
|
|
539
|
-
fees: extra === null || extra === void 0 ? void 0 : extra.fees
|
|
549
|
+
fees: extra === null || extra === void 0 ? void 0 : extra.fees,
|
|
550
|
+
optimizeReceiverAddress: true
|
|
540
551
|
});
|
|
541
552
|
assert(providedSalt === fusionOrder.salt, 'invalid salt for passed extension');
|
|
542
553
|
return fusionOrder;
|
|
@@ -550,5 +561,6 @@ _define_property(FusionOrder, "defaultExtra", {
|
|
|
550
561
|
allowMultipleFills: true,
|
|
551
562
|
unwrapWETH: false,
|
|
552
563
|
enablePermit2: false,
|
|
553
|
-
orderExpirationDelay: 12n
|
|
564
|
+
orderExpirationDelay: 12n,
|
|
565
|
+
optimizeReceiverAddress: true
|
|
554
566
|
});
|
|
@@ -329,6 +329,39 @@ describe('FusionOrder Native', function() {
|
|
|
329
329
|
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
330
330
|
expect(FusionOrder.fromDataAndExtension(nativeOrder.build(), nativeOrder.extension).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
331
331
|
});
|
|
332
|
+
it('should correct detect that order is from native asset (no salt)', function() {
|
|
333
|
+
var ethOrderFactory = new ProxyFactory(new Address('0x62c650084e97a0fba2ecf365cc6d8a7722425363'), new Address('0xe8773a43fce4eedb18d0edbaf319059e1ae786af'));
|
|
334
|
+
var chainId = NetworkEnum.ETHEREUM;
|
|
335
|
+
var settlementExt = new Address('0x2ad5004c60e16e54d5007c80ce329adde5b51ef5');
|
|
336
|
+
var maker = new Address('0x962a836519109e162754161000d65d9dc027fa0f');
|
|
337
|
+
var nativeOrder = FusionOrder.fromNative(chainId, ethOrderFactory, settlementExt, {
|
|
338
|
+
takerAsset: new Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
339
|
+
makingAmount: 1000000000000000000n,
|
|
340
|
+
takingAmount: 1420000000n,
|
|
341
|
+
maker: maker
|
|
342
|
+
}, {
|
|
343
|
+
auction: new AuctionDetails({
|
|
344
|
+
duration: 180n,
|
|
345
|
+
startTime: 1673548149n,
|
|
346
|
+
initialRateBump: 50000,
|
|
347
|
+
points: [
|
|
348
|
+
{
|
|
349
|
+
coefficient: 20000,
|
|
350
|
+
delay: 12
|
|
351
|
+
}
|
|
352
|
+
]
|
|
353
|
+
}),
|
|
354
|
+
whitelist: Whitelist.new(1673548139n, [
|
|
355
|
+
{
|
|
356
|
+
address: new Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
357
|
+
allowFrom: 0n
|
|
358
|
+
}
|
|
359
|
+
]),
|
|
360
|
+
surplus: SurplusParams.NO_FEE
|
|
361
|
+
});
|
|
362
|
+
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
363
|
+
expect(FusionOrder.fromDataAndExtension(nativeOrder.build(), Extension.decode(nativeOrder.extension.encode())).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
364
|
+
});
|
|
332
365
|
it('should correct detect that order is NOT from native asset', function() {
|
|
333
366
|
var ethOrderFactory = new ProxyFactory(Address.fromBigInt(1n), Address.fromBigInt(2n));
|
|
334
367
|
var chainId = NetworkEnum.ETHEREUM;
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@1inch/fusion-sdk","version":"2.3.9-rc.
|
|
1
|
+
{"name":"@1inch/fusion-sdk","version":"2.3.9-rc.10","type":"module"}
|
package/dist/esm/sdk/sdk.js
CHANGED
|
@@ -293,7 +293,7 @@ export var FusionSDK = /*#__PURE__*/ function() {
|
|
|
293
293
|
value: function createOrder(params) {
|
|
294
294
|
var _this = this;
|
|
295
295
|
return _async_to_generator(function() {
|
|
296
|
-
var quote, order, hash;
|
|
296
|
+
var _quote_nativeOrderFactory, quote, order, hash;
|
|
297
297
|
return _ts_generator(this, function(_state) {
|
|
298
298
|
switch(_state.label){
|
|
299
299
|
case 0:
|
|
@@ -321,7 +321,8 @@ export var FusionSDK = /*#__PURE__*/ function() {
|
|
|
321
321
|
{
|
|
322
322
|
order: order,
|
|
323
323
|
hash: hash,
|
|
324
|
-
quoteId: quote.quoteId
|
|
324
|
+
quoteId: quote.quoteId,
|
|
325
|
+
nativeOrderFactory: (_quote_nativeOrderFactory = quote.nativeOrderFactory) === null || _quote_nativeOrderFactory === void 0 ? void 0 : _quote_nativeOrderFactory.factory
|
|
325
326
|
}
|
|
326
327
|
];
|
|
327
328
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { Address } from '@1inch/limit-order-sdk';
|
|
1
|
+
import { Address, LimitOrderV4Struct } from '@1inch/limit-order-sdk';
|
|
2
2
|
import { CallInfo } from './types.js';
|
|
3
|
-
import { FusionOrder } from '../fusion-order/index.js';
|
|
4
3
|
export declare class NativeOrdersImpl {
|
|
5
4
|
address: Address;
|
|
6
5
|
private readonly iface;
|
|
7
6
|
constructor(address: Address);
|
|
8
|
-
cancel(maker: Address, order:
|
|
9
|
-
cancelExpiredOrderByResolver(maker: Address, order:
|
|
7
|
+
cancel(maker: Address, order: LimitOrderV4Struct): CallInfo;
|
|
8
|
+
cancelExpiredOrderByResolver(maker: Address, order: LimitOrderV4Struct, rewardLimit: bigint): CallInfo;
|
|
10
9
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LimitOrderV4Struct } from '@1inch/limit-order-sdk';
|
|
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
4
|
import { CustomPreset, IntegratorFeeParams, PresetEnum } from '../api/index.js';
|
|
@@ -54,4 +54,5 @@ export type PreparedOrder = {
|
|
|
54
54
|
order: FusionOrder;
|
|
55
55
|
hash: string;
|
|
56
56
|
quoteId: string;
|
|
57
|
+
nativeOrderFactory?: Address;
|
|
57
58
|
};
|