@1inch/fusion-sdk 1.0.1-rc.31 → 1.0.1-rc.32
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/api/orders/types.d.ts +2 -0
- package/dist/api/orders/types.js.map +1 -1
- package/dist/fusion-order/fusion-extension.d.ts +10 -2
- package/dist/fusion-order/fusion-extension.js +31 -6
- package/dist/fusion-order/fusion-extension.js.map +1 -1
- package/dist/fusion-order/fusion-extension.spec.d.ts +1 -0
- package/dist/fusion-order/fusion-extension.spec.js +41 -0
- package/dist/fusion-order/fusion-extension.spec.js.map +1 -0
- package/package.json +3 -3
|
@@ -18,6 +18,7 @@ export type ActiveOrder = {
|
|
|
18
18
|
auctionEndDate: string;
|
|
19
19
|
remainingMakerAmount: string;
|
|
20
20
|
order: LimitOrderV4Struct;
|
|
21
|
+
extension: string;
|
|
21
22
|
};
|
|
22
23
|
export type ActiveOrdersResponse = PaginationOutput<ActiveOrder>;
|
|
23
24
|
export type OrderStatusParams = {
|
|
@@ -42,6 +43,7 @@ export type Fill = {
|
|
|
42
43
|
export type OrderStatusResponse = {
|
|
43
44
|
status: OrderStatus;
|
|
44
45
|
order: LimitOrderV4Struct;
|
|
46
|
+
extension: string;
|
|
45
47
|
points: AuctionPoint[] | null;
|
|
46
48
|
fills: Fill[];
|
|
47
49
|
auctionStartDate: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/orders/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/orders/types.ts"],"names":[],"mappings":";;;AAgCA,IAAY,WAUX;AAVD,WAAY,WAAW;IACnB,kCAAmB,CAAA;IACnB,gCAAiB,CAAA;IACjB,iDAAkC,CAAA;IAClC,8EAA+D,CAAA;IAC/D,kCAAmB,CAAA;IACnB,mDAAoC,CAAA;IACpC,2CAA4B,CAAA;IAC5B,sCAAuB,CAAA;IACvB,qDAAsC,CAAA;AAC1C,CAAC,EAVW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAUtB"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
|
-
import { Address, Extension
|
|
1
|
+
import { Address, Extension } from '@1inch/limit-order-sdk';
|
|
2
2
|
import { AuctionDetails } from './auction-details';
|
|
3
3
|
import { SettlementPostInteractionData } from './settlement-post-interaction-data';
|
|
4
|
-
export declare class FusionExtension
|
|
4
|
+
export declare class FusionExtension {
|
|
5
5
|
readonly address: Address;
|
|
6
6
|
readonly auctionDetails: AuctionDetails;
|
|
7
7
|
readonly postInteractionData: SettlementPostInteractionData;
|
|
8
|
+
private readonly builder;
|
|
8
9
|
constructor(address: Address, auctionDetails: AuctionDetails, postInteractionData: SettlementPostInteractionData);
|
|
10
|
+
/**
|
|
11
|
+
* Create `FusionExtension` from bytes
|
|
12
|
+
*
|
|
13
|
+
* @param bytes 0x prefixed bytes
|
|
14
|
+
*/
|
|
15
|
+
static decode(bytes: string): FusionExtension;
|
|
16
|
+
withMakerPermit(tokenFrom: Address, permitData: string): this;
|
|
9
17
|
build(): Extension;
|
|
10
18
|
}
|
|
@@ -1,20 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.FusionExtension = void 0;
|
|
4
7
|
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
5
|
-
|
|
8
|
+
const assert_1 = __importDefault(require("assert"));
|
|
9
|
+
const auction_details_1 = require("./auction-details");
|
|
10
|
+
const settlement_post_interaction_data_1 = require("./settlement-post-interaction-data");
|
|
11
|
+
class FusionExtension {
|
|
6
12
|
constructor(address, auctionDetails, postInteractionData) {
|
|
7
|
-
super();
|
|
8
13
|
this.address = address;
|
|
9
14
|
this.auctionDetails = auctionDetails;
|
|
10
15
|
this.postInteractionData = postInteractionData;
|
|
11
|
-
|
|
12
|
-
build() {
|
|
16
|
+
this.builder = new limit_order_sdk_1.ExtensionBuilder();
|
|
13
17
|
const detailsBytes = this.auctionDetails.encode();
|
|
14
|
-
this.
|
|
18
|
+
this.builder
|
|
19
|
+
.withMakingAmountData(this.address, detailsBytes)
|
|
15
20
|
.withTakingAmountData(this.address, detailsBytes)
|
|
16
21
|
.withPostInteraction(new limit_order_sdk_1.Interaction(this.address, this.postInteractionData.encode()));
|
|
17
|
-
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Create `FusionExtension` from bytes
|
|
25
|
+
*
|
|
26
|
+
* @param bytes 0x prefixed bytes
|
|
27
|
+
*/
|
|
28
|
+
static decode(bytes) {
|
|
29
|
+
const extension = limit_order_sdk_1.Extension.decode(bytes);
|
|
30
|
+
const settlementContract = limit_order_sdk_1.Address.fromFirstBytes(extension.makingAmountData);
|
|
31
|
+
(0, assert_1.default)(limit_order_sdk_1.Address.fromFirstBytes(extension.takingAmountData).equal(settlementContract) &&
|
|
32
|
+
limit_order_sdk_1.Address.fromFirstBytes(extension.postInteraction).equal(settlementContract), 'Invalid extension, all calls should be to the same address');
|
|
33
|
+
const auctionDetails = auction_details_1.AuctionDetails.fromExtension(extension);
|
|
34
|
+
const postInteractionData = settlement_post_interaction_data_1.SettlementPostInteractionData.fromExtension(extension);
|
|
35
|
+
return new FusionExtension(settlementContract, auctionDetails, postInteractionData);
|
|
36
|
+
}
|
|
37
|
+
withMakerPermit(tokenFrom, permitData) {
|
|
38
|
+
this.builder.withMakerPermit(tokenFrom, permitData);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
build() {
|
|
42
|
+
return this.builder.build();
|
|
18
43
|
}
|
|
19
44
|
}
|
|
20
45
|
exports.FusionExtension = FusionExtension;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fusion-extension.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.ts"],"names":[],"mappings":";;;;;;AAAA,4DAK+B;AAC/B,oDAA2B;AAE3B,uDAAgD;AAChD,yFAAgF;AAEhF,MAAa,eAAe;IAGxB,YACoB,OAAgB,EAChB,cAA8B,EAC9B,mBAAkD;QAFlD,YAAO,GAAP,OAAO,CAAS;QAChB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,wBAAmB,GAAnB,mBAAmB,CAA+B;QALrD,YAAO,GAAG,IAAI,kCAAgB,EAAE,CAAA;QAO7C,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAEjD,IAAI,CAAC,OAAO;aACP,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC;aAChD,mBAAmB,CAChB,IAAI,6BAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CACnE,CAAA;IACT,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,MAAM,CAAC,KAAa;QAC9B,MAAM,SAAS,GAAG,2BAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzC,MAAM,kBAAkB,GAAG,yBAAO,CAAC,cAAc,CAC7C,SAAS,CAAC,gBAAgB,CAC7B,CAAA;QAED,IAAA,gBAAM,EACF,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CACpD,kBAAkB,CACrB;YACG,yBAAO,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,CACnD,kBAAkB,CACrB,EACL,4DAA4D,CAC/D,CAAA;QAED,MAAM,cAAc,GAAG,gCAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE9D,MAAM,mBAAmB,GACrB,gEAA6B,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAE1D,OAAO,IAAI,eAAe,CACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,CACtB,CAAA;IACL,CAAC;IAED,eAAe,CAAC,SAAkB,EAAE,UAAkB;QAClD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;CACJ;AA7DD,0CA6DC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const limit_order_sdk_1 = require("@1inch/limit-order-sdk");
|
|
4
|
+
const fusion_order_1 = require("./fusion-order");
|
|
5
|
+
const auction_details_1 = require("./auction-details");
|
|
6
|
+
const fusion_extension_1 = require("./fusion-extension");
|
|
7
|
+
describe('FusionExtension', () => {
|
|
8
|
+
it('should decode', () => {
|
|
9
|
+
const extensionContract = new limit_order_sdk_1.Address('0x8273f37417da37c4a6c3995e82cf442f87a25d9c');
|
|
10
|
+
const order = fusion_order_1.FusionOrder.new(extensionContract, {
|
|
11
|
+
makerAsset: new limit_order_sdk_1.Address('0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'),
|
|
12
|
+
takerAsset: new limit_order_sdk_1.Address('0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'),
|
|
13
|
+
makingAmount: 1000000000000000000n,
|
|
14
|
+
takingAmount: 1420000000n,
|
|
15
|
+
maker: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
16
|
+
salt: 10n
|
|
17
|
+
}, {
|
|
18
|
+
auction: new auction_details_1.AuctionDetails({
|
|
19
|
+
duration: 180n,
|
|
20
|
+
startTime: 1673548149n,
|
|
21
|
+
initialRateBump: 50000,
|
|
22
|
+
points: [
|
|
23
|
+
{
|
|
24
|
+
coefficient: 20000,
|
|
25
|
+
delay: 12
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}),
|
|
29
|
+
whitelist: [
|
|
30
|
+
{
|
|
31
|
+
address: new limit_order_sdk_1.Address('0x00000000219ab540356cbb839cbe05303d7705fa'),
|
|
32
|
+
allowFrom: 0n
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
resolvingStartTime: 1673548139n
|
|
36
|
+
});
|
|
37
|
+
const fusionExtension = fusion_extension_1.FusionExtension.decode(order.extension.encode());
|
|
38
|
+
expect(fusionExtension).toStrictEqual(order.fusionExtension);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=fusion-extension.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fusion-extension.spec.js","sourceRoot":"","sources":["../../src/fusion-order/fusion-extension.spec.ts"],"names":[],"mappings":";;AAAA,4DAA8C;AAC9C,iDAA0C;AAC1C,uDAAgD;AAChD,yDAAkD;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACrB,MAAM,iBAAiB,GAAG,IAAI,yBAAO,CACjC,4CAA4C,CAC/C,CAAA;QAED,MAAM,KAAK,GAAG,0BAAW,CAAC,GAAG,CACzB,iBAAiB,EACjB;YACI,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,UAAU,EAAE,IAAI,yBAAO,CACnB,4CAA4C,CAC/C;YACD,YAAY,EAAE,oBAAoB;YAClC,YAAY,EAAE,WAAW;YACzB,KAAK,EAAE,IAAI,yBAAO,CACd,4CAA4C,CAC/C;YACD,IAAI,EAAE,GAAG;SACZ,EACD;YACI,OAAO,EAAE,IAAI,gCAAc,CAAC;gBACxB,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,WAAW;gBACtB,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE;oBACJ;wBACI,WAAW,EAAE,KAAK;wBAClB,KAAK,EAAE,EAAE;qBACZ;iBACJ;aACJ,CAAC;YACF,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,IAAI,yBAAO,CAChB,4CAA4C,CAC/C;oBACD,SAAS,EAAE,EAAE;iBAChB;aACJ;YACD,kBAAkB,EAAE,WAAW;SAClC,CACJ,CAAA;QACD,MAAM,eAAe,GAAG,kCAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QACxE,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1inch/fusion-sdk",
|
|
3
|
-
"version": "1.0.1-rc.
|
|
3
|
+
"version": "1.0.1-rc.32",
|
|
4
4
|
"description": "1inch Fusion Mode SDK",
|
|
5
5
|
"author": "@1inch",
|
|
6
6
|
"private": false,
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"url": "ssh://git@github.com:1inch/fusion-sdk.git"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@1inch/byte-utils": "2.2.
|
|
21
|
-
"@1inch/limit-order-sdk": "^4.8.
|
|
20
|
+
"@1inch/byte-utils": "2.2.1",
|
|
21
|
+
"@1inch/limit-order-sdk": "^4.8.3",
|
|
22
22
|
"@metamask/eth-sig-util": "^5.1.0",
|
|
23
23
|
"bn.js": "^5.2.1",
|
|
24
24
|
"ethers": "6.11.0",
|