@1inch/fusion-sdk 2.3.9-rc.0 → 2.3.9-rc.2
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/NativeOrderFactory.abi.json +217 -0
- package/dist/cjs/abi/NativeOrderImpl.abi.json +281 -0
- package/dist/cjs/api/quoter/quote/quote.js +5 -4
- package/dist/cjs/api/quoter/types.js +0 -2
- package/dist/cjs/contracts/index.js +20 -0
- package/dist/cjs/contracts/native-order-factory.js +115 -0
- package/dist/cjs/contracts/native-order-impl.js +129 -0
- package/dist/cjs/contracts/proxy-factory.js +87 -0
- package/dist/cjs/fusion-order/fusion-order.js +66 -2
- package/dist/cjs/fusion-order/fusion-order.spec.js +73 -0
- package/dist/cjs/fusion-order/index.js +0 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/sdk/sdk.js +76 -38
- package/dist/esm/abi/NativeOrderFactory.abi.json +217 -0
- package/dist/esm/abi/NativeOrderImpl.abi.json +281 -0
- package/dist/esm/api/quoter/quote/quote.js +6 -5
- package/dist/esm/api/quoter/types.js +0 -2
- package/dist/esm/contracts/index.js +3 -0
- package/dist/esm/contracts/native-order-factory.js +100 -0
- package/dist/esm/contracts/native-order-impl.js +114 -0
- package/dist/esm/contracts/proxy-factory.js +72 -0
- package/dist/esm/fusion-order/fusion-order.js +64 -0
- package/dist/esm/fusion-order/fusion-order.spec.js +73 -0
- package/dist/esm/fusion-order/index.js +0 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/sdk/sdk.js +76 -38
- package/dist/types/src/api/quoter/quote/quote.d.ts +4 -3
- package/dist/types/src/api/quoter/types.d.ts +2 -1
- package/dist/types/src/contracts/index.d.ts +3 -0
- package/dist/types/src/contracts/native-order-factory.d.ts +9 -0
- package/dist/types/src/contracts/native-order-impl.d.ts +9 -0
- package/dist/types/src/contracts/proxy-factory.d.ts +8 -0
- package/dist/types/src/fusion-order/fusion-order.d.ts +6 -0
- package/dist/types/src/fusion-order/index.d.ts +0 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/sdk/sdk.d.ts +4 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/cjs/abi/ETHOrders.abi.json +0 -431
- package/dist/cjs/contracts/eth-orders.extension.js +0 -105
- package/dist/cjs/fusion-order/fusion-order-from-native.js +0 -183
- package/dist/esm/abi/ETHOrders.abi.json +0 -431
- package/dist/esm/contracts/eth-orders.extension.js +0 -90
- package/dist/esm/fusion-order/fusion-order-from-native.js +0 -173
- package/dist/types/src/contracts/eth-orders.extension.d.ts +0 -11
- package/dist/types/src/fusion-order/fusion-order-from-native.d.ts +0 -13
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "NativeOrdersImpl", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return NativeOrdersImpl;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _ethers = require("ethers");
|
|
12
|
+
var _NativeOrderImplabijson = /*#__PURE__*/ _interop_require_default(require("../abi/NativeOrderImpl.abi.json"));
|
|
13
|
+
function _class_call_check(instance, Constructor) {
|
|
14
|
+
if (!(instance instanceof Constructor)) {
|
|
15
|
+
throw new TypeError("Cannot call a class as a function");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function _defineProperties(target, props) {
|
|
19
|
+
for(var i = 0; i < props.length; i++){
|
|
20
|
+
var descriptor = props[i];
|
|
21
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
22
|
+
descriptor.configurable = true;
|
|
23
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
24
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
28
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
29
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
|
+
return Constructor;
|
|
31
|
+
}
|
|
32
|
+
function _define_property(obj, key, value) {
|
|
33
|
+
if (key in obj) {
|
|
34
|
+
Object.defineProperty(obj, key, {
|
|
35
|
+
value: value,
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
obj[key] = value;
|
|
42
|
+
}
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
function _interop_require_default(obj) {
|
|
46
|
+
return obj && obj.__esModule ? obj : {
|
|
47
|
+
default: obj
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function _object_spread(target) {
|
|
51
|
+
for(var i = 1; i < arguments.length; i++){
|
|
52
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
53
|
+
var ownKeys = Object.keys(source);
|
|
54
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
55
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
56
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
ownKeys.forEach(function(key) {
|
|
60
|
+
_define_property(target, key, source[key]);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return target;
|
|
64
|
+
}
|
|
65
|
+
function ownKeys(object, enumerableOnly) {
|
|
66
|
+
var keys = Object.keys(object);
|
|
67
|
+
if (Object.getOwnPropertySymbols) {
|
|
68
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
69
|
+
if (enumerableOnly) {
|
|
70
|
+
symbols = symbols.filter(function(sym) {
|
|
71
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
keys.push.apply(keys, symbols);
|
|
75
|
+
}
|
|
76
|
+
return keys;
|
|
77
|
+
}
|
|
78
|
+
function _object_spread_props(target, source) {
|
|
79
|
+
source = source != null ? source : {};
|
|
80
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
81
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
82
|
+
} else {
|
|
83
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
84
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return target;
|
|
88
|
+
}
|
|
89
|
+
var NativeOrdersImpl = /*#__PURE__*/ function() {
|
|
90
|
+
"use strict";
|
|
91
|
+
function NativeOrdersImpl(address) {
|
|
92
|
+
_class_call_check(this, NativeOrdersImpl);
|
|
93
|
+
_define_property(this, "address", void 0);
|
|
94
|
+
_define_property(this, "iface", void 0);
|
|
95
|
+
this.address = address;
|
|
96
|
+
this.iface = new _ethers.Interface(_NativeOrderImplabijson.default);
|
|
97
|
+
}
|
|
98
|
+
_create_class(NativeOrdersImpl, [
|
|
99
|
+
{
|
|
100
|
+
key: "cancel",
|
|
101
|
+
value: function cancel(maker, order) {
|
|
102
|
+
return {
|
|
103
|
+
to: this.address,
|
|
104
|
+
value: 0n,
|
|
105
|
+
data: this.iface.encodeFunctionData('cancelOrder', [
|
|
106
|
+
_object_spread_props(_object_spread({}, order), {
|
|
107
|
+
maker: maker.toString()
|
|
108
|
+
})
|
|
109
|
+
])
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
key: "cancelExpiredOrderByResolver",
|
|
115
|
+
value: function cancelExpiredOrderByResolver(maker, order) {
|
|
116
|
+
return {
|
|
117
|
+
to: this.address,
|
|
118
|
+
value: 0n,
|
|
119
|
+
data: this.iface.encodeFunctionData('cancelExpiredOrderByResolver', [
|
|
120
|
+
_object_spread_props(_object_spread({}, order), {
|
|
121
|
+
maker: maker.toString()
|
|
122
|
+
})
|
|
123
|
+
])
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
]);
|
|
128
|
+
return NativeOrdersImpl;
|
|
129
|
+
}();
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "ProxyFactory", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ProxyFactory;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _byteutils = require("@1inch/byte-utils");
|
|
12
|
+
var _limitordersdk = require("@1inch/limit-order-sdk");
|
|
13
|
+
var _ethers = require("ethers");
|
|
14
|
+
var _assert = /*#__PURE__*/ _interop_require_default(require("assert"));
|
|
15
|
+
function _class_call_check(instance, Constructor) {
|
|
16
|
+
if (!(instance instanceof Constructor)) {
|
|
17
|
+
throw new TypeError("Cannot call a class as a function");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function _defineProperties(target, props) {
|
|
21
|
+
for(var i = 0; i < props.length; i++){
|
|
22
|
+
var descriptor = props[i];
|
|
23
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
24
|
+
descriptor.configurable = true;
|
|
25
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
26
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
30
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
31
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
32
|
+
return Constructor;
|
|
33
|
+
}
|
|
34
|
+
function _define_property(obj, key, value) {
|
|
35
|
+
if (key in obj) {
|
|
36
|
+
Object.defineProperty(obj, key, {
|
|
37
|
+
value: value,
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true
|
|
41
|
+
});
|
|
42
|
+
} else {
|
|
43
|
+
obj[key] = value;
|
|
44
|
+
}
|
|
45
|
+
return obj;
|
|
46
|
+
}
|
|
47
|
+
function _interop_require_default(obj) {
|
|
48
|
+
return obj && obj.__esModule ? obj : {
|
|
49
|
+
default: obj
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
var ProxyFactory = /*#__PURE__*/ function() {
|
|
53
|
+
"use strict";
|
|
54
|
+
function ProxyFactory(factory, implementation) {
|
|
55
|
+
_class_call_check(this, ProxyFactory);
|
|
56
|
+
_define_property(this, "factory", void 0);
|
|
57
|
+
_define_property(this, "implementation", void 0);
|
|
58
|
+
this.factory = factory;
|
|
59
|
+
this.implementation = implementation;
|
|
60
|
+
}
|
|
61
|
+
_create_class(ProxyFactory, [
|
|
62
|
+
{
|
|
63
|
+
key: "getProxyAddress",
|
|
64
|
+
value: /**
|
|
65
|
+
* Calculates deterministic address of proxy contract
|
|
66
|
+
*
|
|
67
|
+
* @see https://github.com/OpenZeppelin/openzeppelin-contracts/blob/69c8def5f222ff96f2b5beff05dfba996368aa79/contracts/proxy/Clones.sol#L60
|
|
68
|
+
*
|
|
69
|
+
* @param salt must be valid hex string
|
|
70
|
+
* @returns address of proxy contract
|
|
71
|
+
*/ function getProxyAddress(salt) {
|
|
72
|
+
(0, _assert.default)((0, _byteutils.isHexBytes)(salt), 'invalid salt');
|
|
73
|
+
return new _limitordersdk.Address((0, _ethers.getCreate2Address)(this.factory.toString(), salt, ProxyFactory.calcProxyBytecodeHash(this.implementation)));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
], [
|
|
77
|
+
{
|
|
78
|
+
key: "calcProxyBytecodeHash",
|
|
79
|
+
value: /**
|
|
80
|
+
* See https://github.com/1inch/cross-chain-swap/blob/03d99b9604d8f7a5a396720fbe1059f7d94db762/contracts/libraries/ProxyHashLib.sol#L14
|
|
81
|
+
*/ function calcProxyBytecodeHash(impl) {
|
|
82
|
+
return (0, _ethers.keccak256)("0x3d602d80600a3d3981f3363d3d373d3d3d363d73".concat((0, _byteutils.trim0x)(impl.toString()), "5af43d82803e903d91602b57fd5bf3"));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]);
|
|
86
|
+
return ProxyFactory;
|
|
87
|
+
}();
|
|
@@ -13,8 +13,9 @@ var _assert = /*#__PURE__*/ _interop_require_default(require("assert"));
|
|
|
13
13
|
var _fusionextension = require("./fusion-extension.js");
|
|
14
14
|
var _sourcetrack = require("./source-track.js");
|
|
15
15
|
var _surplusparams = require("./surplus-params.js");
|
|
16
|
+
var _constants = require("./constants.js");
|
|
16
17
|
var _index = require("../amount-calculator/auction-calculator/index.js");
|
|
17
|
-
var
|
|
18
|
+
var _constants1 = require("../constants.js");
|
|
18
19
|
var _amounts = require("../utils/amounts.js");
|
|
19
20
|
var _time = require("../utils/time.js");
|
|
20
21
|
var _amountcalculator = require("../amount-calculator/amount-calculator.js");
|
|
@@ -444,6 +445,32 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
444
445
|
value: function getAmountCalculator() {
|
|
445
446
|
return _amountcalculator.AmountCalculator.fromExtension(this.fusionExtension);
|
|
446
447
|
}
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
key: "isNative",
|
|
451
|
+
value: function isNative(chainId, ethOrderFactory, signature) {
|
|
452
|
+
return FusionOrder.isNativeOrder(chainId, ethOrderFactory, this.build(), signature);
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
key: "nativeSignature",
|
|
457
|
+
value: /**
|
|
458
|
+
* Returns signature for submitting native order on-chain
|
|
459
|
+
* Only valid if order is native
|
|
460
|
+
*
|
|
461
|
+
* @see FusionOrder.isNative
|
|
462
|
+
* @see FusionOrder.fromNative
|
|
463
|
+
*/ function nativeSignature(maker) {
|
|
464
|
+
return new _limitordersdk.LimitOrder({
|
|
465
|
+
maker: maker,
|
|
466
|
+
makerAsset: this.makerAsset,
|
|
467
|
+
makingAmount: this.makingAmount,
|
|
468
|
+
takingAmount: this.takingAmount,
|
|
469
|
+
takerAsset: this.takerAsset,
|
|
470
|
+
receiver: this.receiver,
|
|
471
|
+
salt: this.salt
|
|
472
|
+
}, this.inner.makerTraits).toCalldata();
|
|
473
|
+
}
|
|
447
474
|
}
|
|
448
475
|
], [
|
|
449
476
|
{
|
|
@@ -455,6 +482,43 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
455
482
|
return new FusionOrder(settlementExtension, orderInfo, details.auction, details.whitelist, details.surplus, extra);
|
|
456
483
|
}
|
|
457
484
|
},
|
|
485
|
+
{
|
|
486
|
+
key: "isNativeOrder",
|
|
487
|
+
value: function isNativeOrder(chainId, ethOrderFactory, order, signature) {
|
|
488
|
+
try {
|
|
489
|
+
var orderWithRealMaker = _limitordersdk.LimitOrder.fromCalldata(signature);
|
|
490
|
+
var expectedAddress = ethOrderFactory.getProxyAddress(orderWithRealMaker.getOrderHash(chainId));
|
|
491
|
+
return expectedAddress.equal(new _limitordersdk.Address(order.maker));
|
|
492
|
+
} catch (e) {
|
|
493
|
+
return false;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
key: "fromNative",
|
|
499
|
+
value: /**
|
|
500
|
+
* Create new order from native asset
|
|
501
|
+
*
|
|
502
|
+
*
|
|
503
|
+
* Note, that such order should be submitted on-chain through `ETHOrders.depositForOrder` AND off-chain through submit to relayer
|
|
504
|
+
* // todo: update link
|
|
505
|
+
* @see ETHOrders.depositForOrder https://github.com/1inch/limit-order-protocol/blob/c100474444cd71cf7989cd8a63f375e72656b8b4/contracts/extensions/ETHOrders.sol#L89
|
|
506
|
+
*/ function fromNative(chainId, ethOrdersFactory, /**
|
|
507
|
+
* Fusion extension address
|
|
508
|
+
* @see https://github.com/1inch/limit-order-settlement
|
|
509
|
+
*/ settlementExtension, orderInfo, details, extra) {
|
|
510
|
+
var _orderInfo = _object_spread_props(_object_spread({}, orderInfo), {
|
|
511
|
+
makerAsset: _constants.CHAIN_TO_WRAPPER[chainId],
|
|
512
|
+
receiver: orderInfo.receiver || orderInfo.maker
|
|
513
|
+
});
|
|
514
|
+
// create temp order to calc order hash
|
|
515
|
+
var _order = FusionOrder.new(settlementExtension, _orderInfo, details, extra);
|
|
516
|
+
var finalOrderInfo = _object_spread_props(_object_spread({}, _orderInfo), {
|
|
517
|
+
maker: ethOrdersFactory.getProxyAddress(_order.getOrderHash(chainId))
|
|
518
|
+
});
|
|
519
|
+
return new FusionOrder(settlementExtension, finalOrderInfo, details.auction, details.whitelist, details.surplus, extra);
|
|
520
|
+
}
|
|
521
|
+
},
|
|
458
522
|
{
|
|
459
523
|
key: "fromDataAndExtension",
|
|
460
524
|
value: /**
|
|
@@ -484,7 +548,7 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
484
548
|
allowPartialFills: makerTraits.isPartialFillAllowed(),
|
|
485
549
|
enablePermit2: makerTraits.isPermit2(),
|
|
486
550
|
nonce: makerTraits.nonceOrEpoch(),
|
|
487
|
-
permit: extension.makerPermit ===
|
|
551
|
+
permit: extension.makerPermit === _constants1.ZX ? undefined : _limitordersdk.Interaction.decode(extension.makerPermit).data,
|
|
488
552
|
unwrapWETH: makerTraits.isNativeUnwrapEnabled(),
|
|
489
553
|
orderExpirationDelay: orderExpirationDelay,
|
|
490
554
|
fees: extra === null || extra === void 0 ? void 0 : extra.fees
|
|
@@ -9,6 +9,8 @@ var _index = require("./auction-details/index.js");
|
|
|
9
9
|
var _index1 = require("./whitelist/index.js");
|
|
10
10
|
var _surplusparams = require("./surplus-params.js");
|
|
11
11
|
var _index2 = require("./fees/index.js");
|
|
12
|
+
var _proxyfactory = require("../contracts/proxy-factory.js");
|
|
13
|
+
var _constants = require("../constants.js");
|
|
12
14
|
var _index3 = require("../amount-calculator/index.js");
|
|
13
15
|
var _time = require("../utils/time.js");
|
|
14
16
|
describe('Fusion Order', function() {
|
|
@@ -296,3 +298,74 @@ describe('Fusion Order', function() {
|
|
|
296
298
|
expect(surplus).toEqual(25000000n);
|
|
297
299
|
});
|
|
298
300
|
});
|
|
301
|
+
describe('FusionOrder Native', function() {
|
|
302
|
+
it('should correct detect that order is from native asset', function() {
|
|
303
|
+
var ethOrderFactory = new _proxyfactory.ProxyFactory(_limitordersdk.Address.fromBigInt(1n), _limitordersdk.Address.fromBigInt(2n));
|
|
304
|
+
var chainId = _constants.NetworkEnum.ETHEREUM;
|
|
305
|
+
var settlementExt = _limitordersdk.Address.fromBigInt(3n);
|
|
306
|
+
var maker = new _limitordersdk.Address('0x00000000219ab540356cbb839cbe05303d7705fa');
|
|
307
|
+
var nativeOrder = _fusionorder.FusionOrder.fromNative(chainId, ethOrderFactory, settlementExt, {
|
|
308
|
+
takerAsset: new _limitordersdk.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
309
|
+
makingAmount: 1000000000000000000n,
|
|
310
|
+
takingAmount: 1420000000n,
|
|
311
|
+
maker: maker,
|
|
312
|
+
salt: 10n
|
|
313
|
+
}, {
|
|
314
|
+
auction: new _index.AuctionDetails({
|
|
315
|
+
duration: 180n,
|
|
316
|
+
startTime: 1673548149n,
|
|
317
|
+
initialRateBump: 50000,
|
|
318
|
+
points: [
|
|
319
|
+
{
|
|
320
|
+
coefficient: 20000,
|
|
321
|
+
delay: 12
|
|
322
|
+
}
|
|
323
|
+
]
|
|
324
|
+
}),
|
|
325
|
+
whitelist: _index1.Whitelist.new(1673548139n, [
|
|
326
|
+
{
|
|
327
|
+
address: new _limitordersdk.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
328
|
+
allowFrom: 0n
|
|
329
|
+
}
|
|
330
|
+
]),
|
|
331
|
+
surplus: _surplusparams.SurplusParams.NO_FEE
|
|
332
|
+
});
|
|
333
|
+
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
334
|
+
expect(_fusionorder.FusionOrder.fromDataAndExtension(nativeOrder.build(), nativeOrder.extension).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(true);
|
|
335
|
+
});
|
|
336
|
+
it('should correct detect that order is NOT from native asset', function() {
|
|
337
|
+
var ethOrderFactory = new _proxyfactory.ProxyFactory(_limitordersdk.Address.fromBigInt(1n), _limitordersdk.Address.fromBigInt(2n));
|
|
338
|
+
var chainId = _constants.NetworkEnum.ETHEREUM;
|
|
339
|
+
var settlementExt = _limitordersdk.Address.fromBigInt(3n);
|
|
340
|
+
var maker = new _limitordersdk.Address('0x00000000219ab540356cbb839cbe05303d7705fa');
|
|
341
|
+
var nativeOrder = _fusionorder.FusionOrder.new(settlementExt, {
|
|
342
|
+
makerAsset: new _limitordersdk.Address('0x1000000000000000000000000000000000000000'),
|
|
343
|
+
takerAsset: new _limitordersdk.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
344
|
+
makingAmount: 1000000000000000000n,
|
|
345
|
+
takingAmount: 1420000000n,
|
|
346
|
+
maker: maker,
|
|
347
|
+
salt: 10n
|
|
348
|
+
}, {
|
|
349
|
+
auction: new _index.AuctionDetails({
|
|
350
|
+
duration: 180n,
|
|
351
|
+
startTime: 1673548149n,
|
|
352
|
+
initialRateBump: 50000,
|
|
353
|
+
points: [
|
|
354
|
+
{
|
|
355
|
+
coefficient: 20000,
|
|
356
|
+
delay: 12
|
|
357
|
+
}
|
|
358
|
+
]
|
|
359
|
+
}),
|
|
360
|
+
whitelist: _index1.Whitelist.new(1673548139n, [
|
|
361
|
+
{
|
|
362
|
+
address: new _limitordersdk.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
363
|
+
allowFrom: 0n
|
|
364
|
+
}
|
|
365
|
+
]),
|
|
366
|
+
surplus: _surplusparams.SurplusParams.NO_FEE
|
|
367
|
+
});
|
|
368
|
+
expect(nativeOrder.isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(false);
|
|
369
|
+
expect(_fusionorder.FusionOrder.fromDataAndExtension(nativeOrder.build(), nativeOrder.extension).isNative(chainId, ethOrderFactory, nativeOrder.nativeSignature(maker))).toEqual(false);
|
|
370
|
+
});
|
|
371
|
+
});
|
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "CHAIN_TO_WRAPPER", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
_export_star(require("./fusion-order.js"), exports);
|
|
12
|
-
_export_star(require("./fusion-order-from-native.js"), exports);
|
|
13
12
|
_export_star(require("./auction-details/index.js"), exports);
|
|
14
13
|
_export_star(require("./whitelist/index.js"), exports);
|
|
15
14
|
_export_star(require("./fusion-extension.js"), exports);
|
package/dist/cjs/index.js
CHANGED
|
@@ -76,6 +76,7 @@ _export_star(require("./utils/time.js"), exports);
|
|
|
76
76
|
_export_star(require("./validations.js"), exports);
|
|
77
77
|
_export_star(require("./ws-api/index.js"), exports);
|
|
78
78
|
_export_star(require("./errors.js"), exports);
|
|
79
|
+
_export_star(require("./contracts/index.js"), exports);
|
|
79
80
|
var _index = require("./api/index.js");
|
|
80
81
|
function _export_star(from, to) {
|
|
81
82
|
Object.keys(from).forEach(function(k) {
|
package/dist/cjs/sdk/sdk.js
CHANGED
|
@@ -12,7 +12,6 @@ var _limitordersdk = require("@1inch/limit-order-sdk");
|
|
|
12
12
|
var _index = require("./encoders/index.js");
|
|
13
13
|
var _index1 = require("../api/index.js");
|
|
14
14
|
var _index2 = require("../api/orders/index.js");
|
|
15
|
-
var _index3 = require("../fusion-order/index.js");
|
|
16
15
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
17
16
|
try {
|
|
18
17
|
var info = gen[key](arg);
|
|
@@ -74,13 +73,6 @@ function _define_property(obj, key, value) {
|
|
|
74
73
|
}
|
|
75
74
|
return obj;
|
|
76
75
|
}
|
|
77
|
-
function _instanceof(left, right) {
|
|
78
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
79
|
-
return !!right[Symbol.hasInstance](left);
|
|
80
|
-
} else {
|
|
81
|
-
return left instanceof right;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
76
|
function _ts_generator(thisArg, body) {
|
|
85
77
|
var f, y, t, g, _ = {
|
|
86
78
|
label: 0,
|
|
@@ -352,12 +344,13 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
352
344
|
value: /**
|
|
353
345
|
* Submit order to relayer
|
|
354
346
|
*
|
|
355
|
-
* Note, that orders from native assets must be submitted
|
|
356
|
-
*
|
|
347
|
+
* Note, that orders from native assets must be submitted with `submitNativeOrder`
|
|
348
|
+
*
|
|
349
|
+
* @see FusionSDK.submitNativeOrder
|
|
357
350
|
*/ function submitOrder(order, quoteId) {
|
|
358
351
|
var _this = this;
|
|
359
352
|
return _async_to_generator(function() {
|
|
360
|
-
var signature
|
|
353
|
+
var signature;
|
|
361
354
|
return _ts_generator(this, function(_state) {
|
|
362
355
|
switch(_state.label){
|
|
363
356
|
case 0:
|
|
@@ -367,34 +360,36 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
367
360
|
];
|
|
368
361
|
case 1:
|
|
369
362
|
signature = _state.sent();
|
|
370
|
-
orderStruct = order.build();
|
|
371
|
-
relayerRequest = _index1.RelayerRequest.new({
|
|
372
|
-
order: orderStruct,
|
|
373
|
-
signature: signature,
|
|
374
|
-
quoteId: quoteId,
|
|
375
|
-
extension: order.extension.encode()
|
|
376
|
-
});
|
|
377
|
-
return [
|
|
378
|
-
4,
|
|
379
|
-
_this.api.submitOrder(relayerRequest)
|
|
380
|
-
];
|
|
381
|
-
case 2:
|
|
382
|
-
_state.sent();
|
|
383
363
|
return [
|
|
384
364
|
2,
|
|
385
|
-
|
|
386
|
-
order: orderStruct,
|
|
387
|
-
signature: signature,
|
|
388
|
-
quoteId: quoteId,
|
|
389
|
-
orderHash: order.getOrderHash(_this.config.network),
|
|
390
|
-
extension: relayerRequest.extension
|
|
391
|
-
}
|
|
365
|
+
_this._submitOrder(order, quoteId, signature)
|
|
392
366
|
];
|
|
393
367
|
}
|
|
394
368
|
});
|
|
395
369
|
})();
|
|
396
370
|
}
|
|
397
371
|
},
|
|
372
|
+
{
|
|
373
|
+
key: "submitNativeOrder",
|
|
374
|
+
value: /**
|
|
375
|
+
* Submit order to relayer
|
|
376
|
+
*
|
|
377
|
+
* Note, that orders from native assets must be submitted on-chain as well
|
|
378
|
+
* @see NativeOrdersFactory.create
|
|
379
|
+
*/ function submitNativeOrder(order, maker, quoteId) {
|
|
380
|
+
var _this = this;
|
|
381
|
+
return _async_to_generator(function() {
|
|
382
|
+
var signature;
|
|
383
|
+
return _ts_generator(this, function(_state) {
|
|
384
|
+
signature = _this.signNativeOrder(order, maker);
|
|
385
|
+
return [
|
|
386
|
+
2,
|
|
387
|
+
_this._submitOrder(order, quoteId, signature)
|
|
388
|
+
];
|
|
389
|
+
});
|
|
390
|
+
})();
|
|
391
|
+
}
|
|
392
|
+
},
|
|
398
393
|
{
|
|
399
394
|
key: "placeOrder",
|
|
400
395
|
value: function placeOrder(params) {
|
|
@@ -452,17 +447,17 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
452
447
|
},
|
|
453
448
|
{
|
|
454
449
|
key: "signOrder",
|
|
455
|
-
value:
|
|
450
|
+
value: /**
|
|
451
|
+
* Sign order using `blockchainProvider` from config
|
|
452
|
+
*
|
|
453
|
+
* Use FusionSDK.signNativeOrder for signing orders from native asset
|
|
454
|
+
*
|
|
455
|
+
* @see FusionSDK.signNativeOrder
|
|
456
|
+
*/ function signOrder(order) {
|
|
456
457
|
var _this = this;
|
|
457
458
|
return _async_to_generator(function() {
|
|
458
459
|
var orderStruct, data;
|
|
459
460
|
return _ts_generator(this, function(_state) {
|
|
460
|
-
if (_instanceof(order, _index3.FusionOrderFromNative)) {
|
|
461
|
-
return [
|
|
462
|
-
2,
|
|
463
|
-
order.realMaker.toString()
|
|
464
|
-
];
|
|
465
|
-
}
|
|
466
461
|
if (!_this.config.blockchainProvider) {
|
|
467
462
|
throw new Error('blockchainProvider has not set to config');
|
|
468
463
|
}
|
|
@@ -476,6 +471,49 @@ var FusionSDK = /*#__PURE__*/ function() {
|
|
|
476
471
|
})();
|
|
477
472
|
}
|
|
478
473
|
},
|
|
474
|
+
{
|
|
475
|
+
key: "signNativeOrder",
|
|
476
|
+
value: function signNativeOrder(order, maker) {
|
|
477
|
+
return order.nativeSignature(maker);
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
key: "_submitOrder",
|
|
482
|
+
value: function _submitOrder(order, quoteId, signature) {
|
|
483
|
+
var _this = this;
|
|
484
|
+
return _async_to_generator(function() {
|
|
485
|
+
var orderStruct, relayerRequest;
|
|
486
|
+
return _ts_generator(this, function(_state) {
|
|
487
|
+
switch(_state.label){
|
|
488
|
+
case 0:
|
|
489
|
+
orderStruct = order.build();
|
|
490
|
+
relayerRequest = _index1.RelayerRequest.new({
|
|
491
|
+
order: orderStruct,
|
|
492
|
+
signature: signature,
|
|
493
|
+
quoteId: quoteId,
|
|
494
|
+
extension: order.extension.encode()
|
|
495
|
+
});
|
|
496
|
+
return [
|
|
497
|
+
4,
|
|
498
|
+
_this.api.submitOrder(relayerRequest)
|
|
499
|
+
];
|
|
500
|
+
case 1:
|
|
501
|
+
_state.sent();
|
|
502
|
+
return [
|
|
503
|
+
2,
|
|
504
|
+
{
|
|
505
|
+
order: orderStruct,
|
|
506
|
+
signature: signature,
|
|
507
|
+
quoteId: quoteId,
|
|
508
|
+
orderHash: order.getOrderHash(_this.config.network),
|
|
509
|
+
extension: relayerRequest.extension
|
|
510
|
+
}
|
|
511
|
+
];
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
})();
|
|
515
|
+
}
|
|
516
|
+
},
|
|
479
517
|
{
|
|
480
518
|
key: "getQuoteResult",
|
|
481
519
|
value: function getQuoteResult(params) {
|