@1inch/fusion-sdk 2.3.9-rc.4 → 2.3.9-rc.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.
@@ -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({
@@ -509,14 +509,17 @@ var FusionOrder = /*#__PURE__*/ function() {
509
509
  */ settlementExtension, orderInfo, details, extra) {
510
510
  var _orderInfo = _object_spread_props(_object_spread({}, orderInfo), {
511
511
  makerAsset: _constants.CHAIN_TO_WRAPPER[chainId],
512
- receiver: orderInfo.receiver || orderInfo.maker
512
+ receiver: orderInfo.receiver && !orderInfo.receiver.isZero() ? orderInfo.receiver : orderInfo.maker
513
513
  });
514
514
  // create temp order to calc order hash
515
515
  var _order = FusionOrder.new(settlementExtension, _orderInfo, details, extra);
516
516
  var finalOrderInfo = _object_spread_props(_object_spread({}, _orderInfo), {
517
517
  maker: ethOrdersFactory.getProxyAddress(_order.getOrderHash(chainId))
518
518
  });
519
- return new FusionOrder(settlementExtension, finalOrderInfo, details.auction, details.whitelist, details.surplus, extra);
519
+ return new FusionOrder(settlementExtension, // use same salt to have same order hash. Remove extension hash from it
520
+ _object_spread_props(_object_spread({}, finalOrderInfo), {
521
+ salt: _order.salt >> 160n
522
+ }), details.auction, details.whitelist, details.surplus, extra);
520
523
  }
521
524
  },
522
525
  {
@@ -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;
@@ -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({
@@ -494,14 +494,17 @@ export var FusionOrder = /*#__PURE__*/ function() {
494
494
  */ settlementExtension, orderInfo, details, extra) {
495
495
  var _orderInfo = _object_spread_props(_object_spread({}, orderInfo), {
496
496
  makerAsset: CHAIN_TO_WRAPPER[chainId],
497
- receiver: orderInfo.receiver || orderInfo.maker
497
+ receiver: orderInfo.receiver && !orderInfo.receiver.isZero() ? orderInfo.receiver : orderInfo.maker
498
498
  });
499
499
  // create temp order to calc order hash
500
500
  var _order = FusionOrder.new(settlementExtension, _orderInfo, details, extra);
501
501
  var finalOrderInfo = _object_spread_props(_object_spread({}, _orderInfo), {
502
502
  maker: ethOrdersFactory.getProxyAddress(_order.getOrderHash(chainId))
503
503
  });
504
- return new FusionOrder(settlementExtension, finalOrderInfo, details.auction, details.whitelist, details.surplus, extra);
504
+ return new FusionOrder(settlementExtension, // use same salt to have same order hash. Remove extension hash from it
505
+ _object_spread_props(_object_spread({}, finalOrderInfo), {
506
+ salt: _order.salt >> 160n
507
+ }), details.auction, details.whitelist, details.surplus, extra);
505
508
  }
506
509
  },
507
510
  {
@@ -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;
@@ -1 +1 @@
1
- {"name":"@1inch/fusion-sdk","version":"2.3.9-rc.4","type":"module"}
1
+ {"name":"@1inch/fusion-sdk","version":"2.3.9-rc.6","type":"module"}