@1inch/fusion-sdk 2.4.7-rc.0 → 2.4.7-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/fusion-order/fusion-order.js +26 -0
- package/dist/cjs/fusion-order/fusion-order.spec.js +16 -3
- package/dist/esm/fusion-order/fusion-order.js +26 -0
- package/dist/esm/fusion-order/fusion-order.spec.js +16 -3
- package/dist/esm/package.json +1 -1
- package/dist/types/src/fusion-order/fusion-order.d.ts +1 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -553,6 +553,29 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
553
553
|
return new _permittransferfrom.PermitTransferFrom(this.makerAsset, this.makingAmount, spender, (0, _limitordersdk.randBigInt)(_byteutils.UINT_256_MAX), this.deadline);
|
|
554
554
|
}
|
|
555
555
|
},
|
|
556
|
+
{
|
|
557
|
+
key: "restoreMakerAssetSuffix",
|
|
558
|
+
value: /**
|
|
559
|
+
* Restores the original `makerAssetSuffix` that `FusionExtension.build()` does not preserve.
|
|
560
|
+
* Recomputes the salt to match the patched extension hash.
|
|
561
|
+
*/ function restoreMakerAssetSuffix(makerAssetSuffix) {
|
|
562
|
+
var patchedExtension = new _limitordersdk.Extension(_object_spread_props(_object_spread({}, this.inner.extension), {
|
|
563
|
+
makerAssetSuffix: makerAssetSuffix
|
|
564
|
+
}));
|
|
565
|
+
var baseSalt = this.inner.salt >> 160n;
|
|
566
|
+
this.inner = new _limitordersdk.LimitOrder({
|
|
567
|
+
maker: this.inner.maker,
|
|
568
|
+
makerAsset: this.inner.makerAsset,
|
|
569
|
+
takerAsset: this.inner.takerAsset,
|
|
570
|
+
makingAmount: this.inner.makingAmount,
|
|
571
|
+
takingAmount: this.inner.takingAmount,
|
|
572
|
+
receiver: this.inner.receiver,
|
|
573
|
+
salt: _limitordersdk.LimitOrder.buildSalt(patchedExtension, baseSalt)
|
|
574
|
+
}, this.inner.makerTraits, patchedExtension, {
|
|
575
|
+
optimizeReceiverAddress: false
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
},
|
|
556
579
|
{
|
|
557
580
|
key: "decodeTransferPermitSuffix",
|
|
558
581
|
value: function decodeTransferPermitSuffix() {
|
|
@@ -641,6 +664,9 @@ var FusionOrder = /*#__PURE__*/ function() {
|
|
|
641
664
|
fees: extra === null || extra === void 0 ? void 0 : extra.fees,
|
|
642
665
|
optimizeReceiverAddress: true
|
|
643
666
|
});
|
|
667
|
+
if (extension.makerAssetSuffix !== _constants.ZX) {
|
|
668
|
+
fusionOrder.restoreMakerAssetSuffix(extension.makerAssetSuffix);
|
|
669
|
+
}
|
|
644
670
|
(0, _assert.default)(providedSalt === fusionOrder.salt, 'invalid salt for passed extension');
|
|
645
671
|
return fusionOrder;
|
|
646
672
|
}
|
|
@@ -534,7 +534,19 @@ describe('FusionOrder Native', function() {
|
|
|
534
534
|
var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
|
|
535
535
|
expect(orderWithPermit.makerAsset).toEqual(weth);
|
|
536
536
|
});
|
|
537
|
-
it('should
|
|
537
|
+
it('should round-trip Permit2 order through fromDataAndExtension', function() {
|
|
538
|
+
var order = baseOrder();
|
|
539
|
+
var permit = order.createTransferPermit(permit2Proxy);
|
|
540
|
+
var fakeSignature = '0x' + 'ab'.repeat(65);
|
|
541
|
+
var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
|
|
542
|
+
var built = orderWithPermit.build();
|
|
543
|
+
var rebuilt = _fusionorder.FusionOrder.fromDataAndExtension(built, orderWithPermit.extension);
|
|
544
|
+
expect(rebuilt.isTransferPermit()).toBe(true);
|
|
545
|
+
expect(rebuilt.makerAsset).toEqual(orderWithPermit.makerAsset);
|
|
546
|
+
expect(rebuilt.salt).toEqual(orderWithPermit.salt);
|
|
547
|
+
expect(rebuilt.build()).toEqual(built);
|
|
548
|
+
});
|
|
549
|
+
it('should reject tampered makerAssetSuffix via salt check', function() {
|
|
538
550
|
var order = baseOrder();
|
|
539
551
|
var ext = order.extension;
|
|
540
552
|
var tampered = new _limitordersdk.Extension({
|
|
@@ -548,8 +560,9 @@ describe('FusionOrder Native', function() {
|
|
|
548
560
|
postInteraction: ext.postInteraction,
|
|
549
561
|
customData: ext.customData
|
|
550
562
|
});
|
|
551
|
-
|
|
552
|
-
|
|
563
|
+
expect(function() {
|
|
564
|
+
return _fusionorder.FusionOrder.fromDataAndExtension(order.build(), tampered);
|
|
565
|
+
}).toThrow('invalid salt for passed extension');
|
|
553
566
|
});
|
|
554
567
|
});
|
|
555
568
|
});
|
|
@@ -538,6 +538,29 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
538
538
|
return new PermitTransferFrom(this.makerAsset, this.makingAmount, spender, randBigInt(UINT_256_MAX), this.deadline);
|
|
539
539
|
}
|
|
540
540
|
},
|
|
541
|
+
{
|
|
542
|
+
key: "restoreMakerAssetSuffix",
|
|
543
|
+
value: /**
|
|
544
|
+
* Restores the original `makerAssetSuffix` that `FusionExtension.build()` does not preserve.
|
|
545
|
+
* Recomputes the salt to match the patched extension hash.
|
|
546
|
+
*/ function restoreMakerAssetSuffix(makerAssetSuffix) {
|
|
547
|
+
var patchedExtension = new Extension(_object_spread_props(_object_spread({}, this.inner.extension), {
|
|
548
|
+
makerAssetSuffix: makerAssetSuffix
|
|
549
|
+
}));
|
|
550
|
+
var baseSalt = this.inner.salt >> 160n;
|
|
551
|
+
this.inner = new LimitOrder({
|
|
552
|
+
maker: this.inner.maker,
|
|
553
|
+
makerAsset: this.inner.makerAsset,
|
|
554
|
+
takerAsset: this.inner.takerAsset,
|
|
555
|
+
makingAmount: this.inner.makingAmount,
|
|
556
|
+
takingAmount: this.inner.takingAmount,
|
|
557
|
+
receiver: this.inner.receiver,
|
|
558
|
+
salt: LimitOrder.buildSalt(patchedExtension, baseSalt)
|
|
559
|
+
}, this.inner.makerTraits, patchedExtension, {
|
|
560
|
+
optimizeReceiverAddress: false
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
},
|
|
541
564
|
{
|
|
542
565
|
key: "decodeTransferPermitSuffix",
|
|
543
566
|
value: function decodeTransferPermitSuffix() {
|
|
@@ -626,6 +649,9 @@ export var FusionOrder = /*#__PURE__*/ function() {
|
|
|
626
649
|
fees: extra === null || extra === void 0 ? void 0 : extra.fees,
|
|
627
650
|
optimizeReceiverAddress: true
|
|
628
651
|
});
|
|
652
|
+
if (extension.makerAssetSuffix !== ZX) {
|
|
653
|
+
fusionOrder.restoreMakerAssetSuffix(extension.makerAssetSuffix);
|
|
654
|
+
}
|
|
629
655
|
assert(providedSalt === fusionOrder.salt, 'invalid salt for passed extension');
|
|
630
656
|
return fusionOrder;
|
|
631
657
|
}
|
|
@@ -530,7 +530,19 @@ describe('FusionOrder Native', function() {
|
|
|
530
530
|
var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
|
|
531
531
|
expect(orderWithPermit.makerAsset).toEqual(weth);
|
|
532
532
|
});
|
|
533
|
-
it('should
|
|
533
|
+
it('should round-trip Permit2 order through fromDataAndExtension', function() {
|
|
534
|
+
var order = baseOrder();
|
|
535
|
+
var permit = order.createTransferPermit(permit2Proxy);
|
|
536
|
+
var fakeSignature = '0x' + 'ab'.repeat(65);
|
|
537
|
+
var orderWithPermit = order.withTransferPermit(permit, fakeSignature);
|
|
538
|
+
var built = orderWithPermit.build();
|
|
539
|
+
var rebuilt = FusionOrder.fromDataAndExtension(built, orderWithPermit.extension);
|
|
540
|
+
expect(rebuilt.isTransferPermit()).toBe(true);
|
|
541
|
+
expect(rebuilt.makerAsset).toEqual(orderWithPermit.makerAsset);
|
|
542
|
+
expect(rebuilt.salt).toEqual(orderWithPermit.salt);
|
|
543
|
+
expect(rebuilt.build()).toEqual(built);
|
|
544
|
+
});
|
|
545
|
+
it('should reject tampered makerAssetSuffix via salt check', function() {
|
|
534
546
|
var order = baseOrder();
|
|
535
547
|
var ext = order.extension;
|
|
536
548
|
var tampered = new Extension({
|
|
@@ -544,8 +556,9 @@ describe('FusionOrder Native', function() {
|
|
|
544
556
|
postInteraction: ext.postInteraction,
|
|
545
557
|
customData: ext.customData
|
|
546
558
|
});
|
|
547
|
-
|
|
548
|
-
|
|
559
|
+
expect(function() {
|
|
560
|
+
return FusionOrder.fromDataAndExtension(order.build(), tampered);
|
|
561
|
+
}).toThrow('invalid salt for passed extension');
|
|
549
562
|
});
|
|
550
563
|
});
|
|
551
564
|
});
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@1inch/fusion-sdk","version":"2.4.7-rc.
|
|
1
|
+
{"name":"@1inch/fusion-sdk","version":"2.4.7-rc.2","type":"module"}
|
|
@@ -55,5 +55,6 @@ export declare class FusionOrder {
|
|
|
55
55
|
isNative(chainId: number, ethOrderFactory: ProxyFactory, signature: string): boolean;
|
|
56
56
|
nativeSignature(maker: Address): string;
|
|
57
57
|
createTransferPermit(chainIdOrPermit2Proxy: number | Address, permit2Proxy?: Address): PermitTransferFrom;
|
|
58
|
+
private restoreMakerAssetSuffix;
|
|
58
59
|
private decodeTransferPermitSuffix;
|
|
59
60
|
}
|