@1inch/fusion-sdk 0.0.2 → 0.0.3
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/README.md +0 -1
- package/abi/AggregationRouterV5.abi.json +1641 -0
- package/api/fusion-api.d.ts +5 -0
- package/api/fusion-api.js +11 -0
- package/api/fusion-api.js.map +1 -1
- package/api/orders/index.d.ts +3 -0
- package/api/orders/index.js +7 -0
- package/api/orders/index.js.map +1 -0
- package/api/orders/order-api.spec.d.ts +1 -0
- package/api/orders/order-api.spec.js +413 -0
- package/api/orders/order-api.spec.js.map +1 -0
- package/api/orders/orders.api.d.ts +12 -0
- package/api/orders/orders.api.js +49 -0
- package/api/orders/orders.api.js.map +1 -0
- package/api/orders/orders.request.d.ts +24 -0
- package/api/orders/orders.request.js +79 -0
- package/api/orders/orders.request.js.map +1 -0
- package/api/orders/types.d.ts +66 -0
- package/api/orders/types.js +16 -0
- package/api/orders/types.js.map +1 -0
- package/api/pagination.d.ts +10 -0
- package/api/pagination.js +20 -0
- package/api/pagination.js.map +1 -0
- package/api/pagination.spec.d.ts +1 -0
- package/api/pagination.spec.js +28 -0
- package/api/pagination.spec.js.map +1 -0
- package/api/types.d.ts +10 -0
- package/constants.d.ts +1 -0
- package/constants.js +6 -1
- package/constants.js.map +1 -1
- package/package.json +5 -1
- package/sdk/sdk.d.ts +4 -0
- package/sdk/sdk.js +19 -0
- package/sdk/sdk.js.map +1 -1
- package/settlement/encoders/constants.d.ts +1 -0
- package/settlement/encoders/constants.js +5 -0
- package/settlement/encoders/constants.js.map +1 -0
- package/settlement/encoders/fill-order.encoder.d.ts +2 -0
- package/settlement/encoders/fill-order.encoder.js +17 -0
- package/settlement/encoders/fill-order.encoder.js.map +1 -0
- package/settlement/encoders/settlement.encoder.d.ts +4 -0
- package/settlement/encoders/settlement.encoder.js +26 -0
- package/settlement/encoders/settlement.encoder.js.map +1 -0
- package/settlement/settlement.d.ts +7 -0
- package/settlement/settlement.js +26 -0
- package/settlement/settlement.js.map +1 -0
- package/settlement/settlement.spec.d.ts +1 -0
- package/settlement/settlement.spec.js +61 -0
- package/settlement/settlement.spec.js.map +1 -0
- package/settlement/signature-patcher.d.ts +1 -0
- package/settlement/signature-patcher.js +29 -0
- package/settlement/signature-patcher.js.map +1 -0
- package/settlement/types.d.ts +16 -0
- package/settlement/types.js +3 -0
- package/settlement/types.js.map +1 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrdersByMakerRequest = exports.OrderStatusRequest = exports.ActiveOrdersRequest = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const validations_1 = require("../../validations");
|
|
6
|
+
const web3_1 = tslib_1.__importDefault(require("web3"));
|
|
7
|
+
const pagination_1 = require("../pagination");
|
|
8
|
+
class ActiveOrdersRequest {
|
|
9
|
+
constructor(params = {}) {
|
|
10
|
+
this.pagination = new pagination_1.PaginationRequest(params.page, params.limit);
|
|
11
|
+
}
|
|
12
|
+
static new(params) {
|
|
13
|
+
return new ActiveOrdersRequest(params);
|
|
14
|
+
}
|
|
15
|
+
validate() {
|
|
16
|
+
const res = this.pagination.validate();
|
|
17
|
+
if (res) {
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
build() {
|
|
23
|
+
return {
|
|
24
|
+
page: this.pagination.page,
|
|
25
|
+
limit: this.pagination.limit
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ActiveOrdersRequest = ActiveOrdersRequest;
|
|
30
|
+
class OrderStatusRequest {
|
|
31
|
+
constructor(params) {
|
|
32
|
+
this.orderHash = params.orderHash;
|
|
33
|
+
}
|
|
34
|
+
static new(params) {
|
|
35
|
+
return new OrderStatusRequest(params);
|
|
36
|
+
}
|
|
37
|
+
validate() {
|
|
38
|
+
if (this.orderHash.length !== 66) {
|
|
39
|
+
return `orderHash length should be equals 66`;
|
|
40
|
+
}
|
|
41
|
+
if (!web3_1.default.utils.isHex(this.orderHash)) {
|
|
42
|
+
return `orderHash have to be hex`;
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
build() {
|
|
47
|
+
return {
|
|
48
|
+
orderHash: this.orderHash
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.OrderStatusRequest = OrderStatusRequest;
|
|
53
|
+
class OrdersByMakerRequest {
|
|
54
|
+
constructor(params) {
|
|
55
|
+
this.address = params.address;
|
|
56
|
+
this.pagination = new pagination_1.PaginationRequest(params.page, params.limit);
|
|
57
|
+
}
|
|
58
|
+
static new(params) {
|
|
59
|
+
return new OrdersByMakerRequest(params);
|
|
60
|
+
}
|
|
61
|
+
validate() {
|
|
62
|
+
const res = this.pagination.validate();
|
|
63
|
+
if (res) {
|
|
64
|
+
return res;
|
|
65
|
+
}
|
|
66
|
+
if (!(0, validations_1.isValidAddress)(this.address)) {
|
|
67
|
+
return `${this.address} is invalid address`;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
buildQueryParams() {
|
|
72
|
+
return {
|
|
73
|
+
limit: this.pagination.limit,
|
|
74
|
+
page: this.pagination.page
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.OrdersByMakerRequest = OrdersByMakerRequest;
|
|
79
|
+
//# sourceMappingURL=orders.request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders.request.js","sourceRoot":"","sources":["../../../src/api/orders/orders.request.ts"],"names":[],"mappings":";;;;AAAA,mDAAgD;AAMhD,wDAAuB;AACvB,8CAAiE;AAEjE,MAAa,mBAAmB;IAG5B,YAAY,SAAoC,EAAE;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,8BAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAkC;QACzC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;QAEtC,IAAI,GAAG,EAAE;YACL,OAAO,GAAG,CAAA;SACb;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK;QACD,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;YAC1B,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;SAC/B,CAAA;IACL,CAAC;CACJ;AA3BD,kDA2BC;AAED,MAAa,kBAAkB;IAG3B,YAAY,MAAyB;QACjC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAAyB;QAChC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE;YAC9B,OAAO,sCAAsC,CAAA;SAChD;QAED,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACnC,OAAO,0BAA0B,CAAA;SACpC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK;QACD,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAA;IACL,CAAC;CACJ;AA5BD,gDA4BC;AAED,MAAa,oBAAoB;IAK7B,YAAY,MAA2B;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,8BAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,MAA2B;QAClC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;QAEtC,IAAI,GAAG,EAAE;YACL,OAAO,GAAG,CAAA;SACb;QAED,IAAI,CAAC,IAAA,4BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,GAAG,IAAI,CAAC,OAAO,qBAAqB,CAAA;SAC9C;QAED,OAAO,IAAI,CAAA;IACf,CAAC;IAED,gBAAgB;QACZ,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;YAC5B,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;SAC7B,CAAA;IACL,CAAC;CACJ;AAlCD,oDAkCC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { LimitOrderV3Struct } from '../../limit-order';
|
|
2
|
+
import { NetworkEnum } from '../../constants';
|
|
3
|
+
import { PaginationOutput } from '../types';
|
|
4
|
+
import { AuctionPoint } from '../quoter';
|
|
5
|
+
import { PaginationParams } from '../pagination';
|
|
6
|
+
export declare type OrdersApiConfig = {
|
|
7
|
+
network: NetworkEnum;
|
|
8
|
+
url: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type ActiveOrdersRequestParams = PaginationParams;
|
|
11
|
+
export declare type ActiveOrder = {
|
|
12
|
+
orderHash: string;
|
|
13
|
+
signature: string;
|
|
14
|
+
deadline: string;
|
|
15
|
+
auctionStartDate: string;
|
|
16
|
+
auctionEndDate: string;
|
|
17
|
+
order: LimitOrderV3Struct;
|
|
18
|
+
};
|
|
19
|
+
export declare type ActiveOrdersResponse = PaginationOutput<ActiveOrder>;
|
|
20
|
+
export declare type OrderStatusParams = {
|
|
21
|
+
orderHash: string;
|
|
22
|
+
};
|
|
23
|
+
export declare enum OrderStatus {
|
|
24
|
+
Pending = "pending",
|
|
25
|
+
Filled = "filled",
|
|
26
|
+
FalsePredicate = "false-predicate",
|
|
27
|
+
NotEnoughBalanceOrAllowance = "not-enough-balance-or-allowance",
|
|
28
|
+
Expired = "expired",
|
|
29
|
+
PartiallyFilled = "partially-filled",
|
|
30
|
+
WrongPermit = "wrong-permit",
|
|
31
|
+
Cancelled = "cancelled",
|
|
32
|
+
InvalidSignature = "invalid-signature"
|
|
33
|
+
}
|
|
34
|
+
export declare type Fill = {
|
|
35
|
+
txHash: string;
|
|
36
|
+
filledMakerAmount: string;
|
|
37
|
+
filledAuctionTakerAmount: string;
|
|
38
|
+
};
|
|
39
|
+
export declare type OrderStatusResponse = {
|
|
40
|
+
status: OrderStatus;
|
|
41
|
+
order: LimitOrderV3Struct;
|
|
42
|
+
points: AuctionPoint[] | null;
|
|
43
|
+
fills: Fill[];
|
|
44
|
+
auctionStartDate: number;
|
|
45
|
+
auctionDuration: number;
|
|
46
|
+
initialRateBump: number;
|
|
47
|
+
isNativeCurrency: boolean;
|
|
48
|
+
};
|
|
49
|
+
export declare type OrdersByMakerParams = {
|
|
50
|
+
address: string;
|
|
51
|
+
} & PaginationParams;
|
|
52
|
+
export declare type OrderFillsByMakerOutput = {
|
|
53
|
+
orderHash: string;
|
|
54
|
+
status: OrderStatus;
|
|
55
|
+
makerAsset: string;
|
|
56
|
+
makerAmount: string;
|
|
57
|
+
takerAsset: string;
|
|
58
|
+
cancelTx: string | null;
|
|
59
|
+
fills: Fill[];
|
|
60
|
+
points: AuctionPoint[] | null;
|
|
61
|
+
auctionStartDate: number;
|
|
62
|
+
auctionDuration: number;
|
|
63
|
+
initialRateBump: number;
|
|
64
|
+
isNativeCurrency: boolean;
|
|
65
|
+
};
|
|
66
|
+
export declare type OrdersByMakerResponse = PaginationOutput<OrderFillsByMakerOutput>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrderStatus = void 0;
|
|
4
|
+
var OrderStatus;
|
|
5
|
+
(function (OrderStatus) {
|
|
6
|
+
OrderStatus["Pending"] = "pending";
|
|
7
|
+
OrderStatus["Filled"] = "filled";
|
|
8
|
+
OrderStatus["FalsePredicate"] = "false-predicate";
|
|
9
|
+
OrderStatus["NotEnoughBalanceOrAllowance"] = "not-enough-balance-or-allowance";
|
|
10
|
+
OrderStatus["Expired"] = "expired";
|
|
11
|
+
OrderStatus["PartiallyFilled"] = "partially-filled";
|
|
12
|
+
OrderStatus["WrongPermit"] = "wrong-permit";
|
|
13
|
+
OrderStatus["Cancelled"] = "cancelled";
|
|
14
|
+
OrderStatus["InvalidSignature"] = "invalid-signature";
|
|
15
|
+
})(OrderStatus = exports.OrderStatus || (exports.OrderStatus = {}));
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/orders/types.ts"],"names":[],"mappings":";;;AA4BA,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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare type PaginationParams = {
|
|
2
|
+
page?: number;
|
|
3
|
+
limit?: number;
|
|
4
|
+
};
|
|
5
|
+
export declare class PaginationRequest {
|
|
6
|
+
page: number | undefined;
|
|
7
|
+
limit: number | undefined;
|
|
8
|
+
constructor(page: number | undefined, limit: number | undefined);
|
|
9
|
+
validate(): string | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PaginationRequest = void 0;
|
|
4
|
+
class PaginationRequest {
|
|
5
|
+
constructor(page, limit) {
|
|
6
|
+
this.page = page;
|
|
7
|
+
this.limit = limit;
|
|
8
|
+
}
|
|
9
|
+
validate() {
|
|
10
|
+
if (this.limit != null && (this.limit < 1 || this.limit > 500)) {
|
|
11
|
+
return 'limit should be in range between 1 and 500';
|
|
12
|
+
}
|
|
13
|
+
if (this.page != null && this.page < 1) {
|
|
14
|
+
return `page should be >= 1`;
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PaginationRequest = PaginationRequest;
|
|
20
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../src/api/pagination.ts"],"names":[],"mappings":";;;AAKA,MAAa,iBAAiB;IAK1B,YAAY,IAAwB,EAAE,KAAyB;QAC3D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ;QACJ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE;YAC5D,OAAO,4CAA4C,CAAA;SACtD;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;YACpC,OAAO,qBAAqB,CAAA;SAC/B;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AArBD,8CAqBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pagination_1 = require("./pagination");
|
|
4
|
+
describe(__filename, () => {
|
|
5
|
+
describe('validate', () => {
|
|
6
|
+
it('should return null for nulls', () => {
|
|
7
|
+
const request = new pagination_1.PaginationRequest(undefined, undefined);
|
|
8
|
+
expect(request.validate()).toBe(null);
|
|
9
|
+
});
|
|
10
|
+
it('should return error for limit < 1', () => {
|
|
11
|
+
const request = new pagination_1.PaginationRequest(undefined, 0);
|
|
12
|
+
expect(request.validate()).toBe('limit should be in range between 1 and 500');
|
|
13
|
+
});
|
|
14
|
+
it('should return error for limit > 500', () => {
|
|
15
|
+
const request = new pagination_1.PaginationRequest(undefined, 501);
|
|
16
|
+
expect(request.validate()).toBe('limit should be in range between 1 and 500');
|
|
17
|
+
});
|
|
18
|
+
it('should return error for page < 1', () => {
|
|
19
|
+
const request = new pagination_1.PaginationRequest(0, undefined);
|
|
20
|
+
expect(request.validate()).toBe('page should be >= 1');
|
|
21
|
+
});
|
|
22
|
+
it('should return null for valid inputs', () => {
|
|
23
|
+
const request = new pagination_1.PaginationRequest(1, 10);
|
|
24
|
+
expect(request.validate()).toBe(null);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=pagination.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.spec.js","sourceRoot":"","sources":["../../src/api/pagination.spec.ts"],"names":[],"mappings":";;AAAA,6CAA8C;AAE9C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,8BAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAC3D,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,8BAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAC3B,4CAA4C,CAC/C,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,8BAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAC3B,4CAA4C,CAC/C,CAAA;QACL,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YACxC,MAAM,OAAO,GAAG,IAAI,8BAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;YACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,8BAAiB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
package/api/types.d.ts
CHANGED
|
@@ -5,3 +5,13 @@ export declare type FusionApiConfig = {
|
|
|
5
5
|
network: NetworkEnum;
|
|
6
6
|
httpProvider?: HttpProviderConnector;
|
|
7
7
|
};
|
|
8
|
+
export declare type PaginationMeta = {
|
|
9
|
+
totalItems: number;
|
|
10
|
+
itemsPerPage: number;
|
|
11
|
+
totalPages: number;
|
|
12
|
+
currentPage: number;
|
|
13
|
+
};
|
|
14
|
+
export declare type PaginationOutput<T extends Record<string, any> = Record<string, any>> = {
|
|
15
|
+
meta: PaginationMeta;
|
|
16
|
+
items: T[];
|
|
17
|
+
};
|
package/constants.d.ts
CHANGED
|
@@ -8,3 +8,4 @@ export declare enum NetworkEnum {
|
|
|
8
8
|
}
|
|
9
9
|
export declare const WRAPPER_ADDRESS_MAP: Record<NetworkEnum, string>;
|
|
10
10
|
export declare const UNWRAPPER_CONTRACT_ADDRESS_MAP: Record<NetworkEnum, string>;
|
|
11
|
+
export declare const SETTLEMENT_CONTRACT_ADDRESS_MAP: Record<NetworkEnum, string>;
|
package/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UNWRAPPER_CONTRACT_ADDRESS_MAP = exports.WRAPPER_ADDRESS_MAP = exports.NetworkEnum = exports.ZX = exports.ZERO_ADDRESS = exports.NATIVE_CURRENCY = void 0;
|
|
3
|
+
exports.SETTLEMENT_CONTRACT_ADDRESS_MAP = exports.UNWRAPPER_CONTRACT_ADDRESS_MAP = exports.WRAPPER_ADDRESS_MAP = exports.NetworkEnum = exports.ZX = exports.ZERO_ADDRESS = exports.NATIVE_CURRENCY = void 0;
|
|
4
4
|
exports.NATIVE_CURRENCY = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
|
|
5
5
|
exports.ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
|
|
6
6
|
exports.ZX = '0x';
|
|
@@ -20,4 +20,9 @@ exports.UNWRAPPER_CONTRACT_ADDRESS_MAP = {
|
|
|
20
20
|
[NetworkEnum.BINANCE]: '0x0eee00137d807a461702e9e0640c599de663e7e4',
|
|
21
21
|
[NetworkEnum.POLYGON]: '0x18d410f651289bb978fc32f90d2d7e608f4f4560'
|
|
22
22
|
};
|
|
23
|
+
exports.SETTLEMENT_CONTRACT_ADDRESS_MAP = {
|
|
24
|
+
[NetworkEnum.ETHEREUM]: '0xa88800cd213da5ae406ce248380802bd53b47647',
|
|
25
|
+
[NetworkEnum.BINANCE]: '0x1d0ae300eec4093cee4367c00b228d10a5c7ac63',
|
|
26
|
+
[NetworkEnum.POLYGON]: '0x1e8ae092651e7b14e4d0f93611267c5be19b8b9f'
|
|
27
|
+
};
|
|
23
28
|
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,4CAA4C,CAAA;AAC9D,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,EAAE,GAAG,IAAI,CAAA;AAEtB,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,oDAAY,CAAA;AAChB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAEY,QAAA,mBAAmB,GAAgC;IAC5D,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACpE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;IACnE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;CACtE,CAAA;AAEY,QAAA,8BAA8B,GAAgC;IACvE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACpE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;IACnE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;CACtE,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,4CAA4C,CAAA;AAC9D,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,EAAE,GAAG,IAAI,CAAA;AAEtB,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,qDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,oDAAY,CAAA;AAChB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAEY,QAAA,mBAAmB,GAAgC;IAC5D,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACpE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;IACnE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;CACtE,CAAA;AAEY,QAAA,8BAA8B,GAAgC;IACvE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACpE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;IACnE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;CACtE,CAAA;AAEY,QAAA,+BAA+B,GAAgC;IACxE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,4CAA4C;IACpE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;IACnE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,4CAA4C;CACtE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1inch/fusion-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "1inch Fusion Mode SDK",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "index.js",
|
|
@@ -76,5 +76,9 @@
|
|
|
76
76
|
"*.{js,ts}": [
|
|
77
77
|
"yarn run lint"
|
|
78
78
|
]
|
|
79
|
+
},
|
|
80
|
+
"volta": {
|
|
81
|
+
"node": "16.19.0",
|
|
82
|
+
"yarn": "1.22.17"
|
|
79
83
|
}
|
|
80
84
|
}
|
package/sdk/sdk.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { FusionApi, Quote } from '../api';
|
|
2
2
|
import { FusionSDKConfigParams, OrderInfo, OrderParams, QuoteParams } from './types';
|
|
3
|
+
import { ActiveOrdersRequestParams, ActiveOrdersResponse, OrdersByMakerParams, OrdersByMakerResponse, OrderStatusResponse } from '../api/orders';
|
|
3
4
|
export declare class FusionSDK {
|
|
4
5
|
private readonly config;
|
|
5
6
|
readonly api: FusionApi;
|
|
6
7
|
constructor(config: FusionSDKConfigParams);
|
|
8
|
+
getActiveOrders({ page, limit }?: ActiveOrdersRequestParams): Promise<ActiveOrdersResponse>;
|
|
9
|
+
getOrderStatus(orderHash: string): Promise<OrderStatusResponse>;
|
|
10
|
+
getOrdersByMaker({ limit, page, address }: OrdersByMakerParams): Promise<OrdersByMakerResponse>;
|
|
7
11
|
getQuote(params: QuoteParams): Promise<Quote>;
|
|
8
12
|
placeOrder(params: OrderParams): Promise<OrderInfo>;
|
|
9
13
|
}
|
package/sdk/sdk.js
CHANGED
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const api_1 = require("../api");
|
|
6
6
|
const constants_1 = require("../constants");
|
|
7
7
|
const limit_order_1 = require("../limit-order");
|
|
8
|
+
const orders_1 = require("../api/orders");
|
|
8
9
|
class FusionSDK {
|
|
9
10
|
constructor(config) {
|
|
10
11
|
this.config = config;
|
|
@@ -14,6 +15,24 @@ class FusionSDK {
|
|
|
14
15
|
httpProvider: config.httpProvider
|
|
15
16
|
});
|
|
16
17
|
}
|
|
18
|
+
getActiveOrders({ page, limit } = {}) {
|
|
19
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const request = orders_1.ActiveOrdersRequest.new({ page, limit });
|
|
21
|
+
return this.api.getActiveOrders(request);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
getOrderStatus(orderHash) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const request = orders_1.OrderStatusRequest.new({ orderHash });
|
|
27
|
+
return this.api.getOrderStatus(request);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getOrdersByMaker({ limit, page, address }) {
|
|
31
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const request = orders_1.OrdersByMakerRequest.new({ limit, page, address });
|
|
33
|
+
return this.api.getOrdersByMaker(request);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
17
36
|
getQuote(params) {
|
|
18
37
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
19
38
|
const request = api_1.QuoterRequest.new({
|
package/sdk/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":";;;;AAAA,gCAAsE;AAOtE,4CAAyC;AACzC,gDAAoD;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SETTLE_ORDERS_SELECTOR = "0x0965d04b";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/settlement/encoders/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,YAAY,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeFillOrder = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const web3_eth_contract_1 = tslib_1.__importDefault(require("web3-eth-contract"));
|
|
6
|
+
const AggregationRouterV5_abi_json_1 = tslib_1.__importDefault(require("../../abi/AggregationRouterV5.abi.json"));
|
|
7
|
+
const signature_patcher_1 = require("../signature-patcher");
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
const limitOrderV3 = new web3_eth_contract_1.default(AggregationRouterV5_abi_json_1.default);
|
|
11
|
+
function encodeFillOrder(params) {
|
|
12
|
+
return limitOrderV3.methods
|
|
13
|
+
.fillOrderTo(params.order, (0, signature_patcher_1.patchSignature)(params.signature), params.interaction, params.makingAmount, params.takingAmount, params.thresholdAmount, params.target)
|
|
14
|
+
.encodeABI();
|
|
15
|
+
}
|
|
16
|
+
exports.encodeFillOrder = encodeFillOrder;
|
|
17
|
+
//# sourceMappingURL=fill-order.encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-order.encoder.js","sourceRoot":"","sources":["../../../src/settlement/encoders/fill-order.encoder.ts"],"names":[],"mappings":";;;;AAAA,kFAAwC;AACxC,kHAAoE;AAGpE,4DAAmD;AAEnD,6DAA6D;AAC7D,aAAa;AACb,MAAM,YAAY,GAAG,IAAI,2BAAQ,CAAC,sCAA4B,CAAC,CAAA;AAE/D,SAAgB,eAAe,CAAC,MAA+B;IAC3D,OAAO,YAAY,CAAC,OAAO;SACtB,WAAW,CACR,MAAM,CAAC,KAAK,EACZ,IAAA,kCAAc,EAAC,MAAM,CAAC,SAAS,CAAC,EAChC,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,MAAM,CAChB;SACA,SAAS,EAAE,CAAA;AACpB,CAAC;AAZD,0CAYC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FillOrderParamsExtended } from '../types';
|
|
2
|
+
export declare function encodeSettleOrders(params: FillOrderParamsExtended): string;
|
|
3
|
+
export declare function buildResolveOrdersBytes(settlementContract: string, resolverContract: string, executionBytes: string): string;
|
|
4
|
+
export declare function buildRecursiveFillInteraction(settlementContract: string, params: FillOrderParamsExtended): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildRecursiveFillInteraction = exports.buildResolveOrdersBytes = exports.encodeSettleOrders = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const web3_eth_abi_1 = tslib_1.__importDefault(require("web3-eth-abi"));
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const fill_order_encoder_1 = require("./fill-order.encoder");
|
|
9
|
+
function encodeSettleOrders(params) {
|
|
10
|
+
const encodedOrder = (0, fill_order_encoder_1.encodeFillOrder)(params).substring(10);
|
|
11
|
+
return (constants_1.SETTLE_ORDERS_SELECTOR +
|
|
12
|
+
(0, utils_1.trim0x)(web3_eth_abi_1.default.encodeParameters(['bytes'], [(0, utils_1.add0x)(encodedOrder)])));
|
|
13
|
+
}
|
|
14
|
+
exports.encodeSettleOrders = encodeSettleOrders;
|
|
15
|
+
function buildResolveOrdersBytes(settlementContract, resolverContract, executionBytes) {
|
|
16
|
+
return (settlementContract +
|
|
17
|
+
'01' +
|
|
18
|
+
(0, utils_1.trim0x)(resolverContract) +
|
|
19
|
+
(0, utils_1.trim0x)(executionBytes));
|
|
20
|
+
}
|
|
21
|
+
exports.buildResolveOrdersBytes = buildResolveOrdersBytes;
|
|
22
|
+
function buildRecursiveFillInteraction(settlementContract, params) {
|
|
23
|
+
return settlementContract + '00' + (0, fill_order_encoder_1.encodeFillOrder)(params).substring(10);
|
|
24
|
+
}
|
|
25
|
+
exports.buildRecursiveFillInteraction = buildRecursiveFillInteraction;
|
|
26
|
+
//# sourceMappingURL=settlement.encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settlement.encoder.js","sourceRoot":"","sources":["../../../src/settlement/encoders/settlement.encoder.ts"],"names":[],"mappings":";;;;AAAA,wEAAmC;AAEnC,2CAAkD;AAClD,uCAAyC;AACzC,6DAAoD;AAEpD,SAAgB,kBAAkB,CAAC,MAA+B;IAC9D,MAAM,YAAY,GAAG,IAAA,oCAAe,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;IAE1D,OAAO,CACH,kCAAsB;QACtB,IAAA,cAAM,EAAC,sBAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,aAAK,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACtE,CAAA;AACL,CAAC;AAPD,gDAOC;AAED,SAAgB,uBAAuB,CACnC,kBAA0B,EAC1B,gBAAwB,EACxB,cAAsB;IAEtB,OAAO,CACH,kBAAkB;QAClB,IAAI;QACJ,IAAA,cAAM,EAAC,gBAAgB,CAAC;QACxB,IAAA,cAAM,EAAC,cAAc,CAAC,CACzB,CAAA;AACL,CAAC;AAXD,0DAWC;AAED,SAAgB,6BAA6B,CACzC,kBAA0B,EAC1B,MAA+B;IAE/B,OAAO,kBAAkB,GAAG,IAAI,GAAG,IAAA,oCAAe,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;AAC5E,CAAC;AALD,sEAKC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FillOrderParams, SettlementConfig } from './types';
|
|
2
|
+
export declare class Settlement {
|
|
3
|
+
private readonly config;
|
|
4
|
+
constructor(config: SettlementConfig);
|
|
5
|
+
static new(config: SettlementConfig): Settlement;
|
|
6
|
+
encodeSettleOrders(orders: FillOrderParams[], resolverExecutionBytes: string): string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Settlement = void 0;
|
|
4
|
+
const settlement_encoder_1 = require("./encoders/settlement.encoder");
|
|
5
|
+
class Settlement {
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.config = config;
|
|
8
|
+
}
|
|
9
|
+
static new(config) {
|
|
10
|
+
return new Settlement(config);
|
|
11
|
+
}
|
|
12
|
+
encodeSettleOrders(
|
|
13
|
+
// sorted by: orders[0] executes first, orders[orders.length - 1] executes last
|
|
14
|
+
orders, resolverExecutionBytes) {
|
|
15
|
+
const finalActionBytes = (0, settlement_encoder_1.buildResolveOrdersBytes)(this.config.settlementContract, this.config.resolverContract, resolverExecutionBytes);
|
|
16
|
+
const interaction = orders
|
|
17
|
+
.slice(1)
|
|
18
|
+
.reverse()
|
|
19
|
+
.reduce((acc, fillParams) => {
|
|
20
|
+
return (0, settlement_encoder_1.buildRecursiveFillInteraction)(this.config.settlementContract, Object.assign(Object.assign({}, fillParams), { interaction: acc }));
|
|
21
|
+
}, finalActionBytes);
|
|
22
|
+
return (0, settlement_encoder_1.encodeSettleOrders)(Object.assign(Object.assign({}, orders[0]), { interaction }));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.Settlement = Settlement;
|
|
26
|
+
//# sourceMappingURL=settlement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settlement.js","sourceRoot":"","sources":["../../src/settlement/settlement.ts"],"names":[],"mappings":";;;AACA,sEAIsC;AAEtC,MAAa,UAAU;IACnB,YAA6B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;IAAG,CAAC;IAEzD,MAAM,CAAC,GAAG,CAAC,MAAwB;QAC/B,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IAED,kBAAkB;IACd,+EAA+E;IAC/E,MAAyB,EACzB,sBAA8B;QAE9B,MAAM,gBAAgB,GAAG,IAAA,4CAAuB,EAC5C,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAC9B,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC5B,sBAAsB,CACzB,CAAA;QAED,MAAM,WAAW,GAAG,MAAM;aACrB,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,EAAE;aACT,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;YACxB,OAAO,IAAA,kDAA6B,EAChC,IAAI,CAAC,MAAM,CAAC,kBAAkB,kCAEvB,UAAU,KACb,WAAW,EAAE,GAAG,IAEvB,CAAA;QACL,CAAC,EAAE,gBAAgB,CAAC,CAAA;QAExB,OAAO,IAAA,uCAAkB,kCAClB,MAAM,CAAC,CAAC,CAAC,KACZ,WAAW,IACb,CAAA;IACN,CAAC;CACJ;AApCD,gCAoCC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const settlement_1 = require("./settlement");
|
|
4
|
+
describe('Settlement', () => {
|
|
5
|
+
const resolverContract = '0x84d99aa569d93a9ca187d83734c8c4a519c4e9b1';
|
|
6
|
+
const settlementContract = '0xa88800cd213da5ae406ce248380802bd53b47647';
|
|
7
|
+
it('should encode settlement', () => {
|
|
8
|
+
const settlement = settlement_1.Settlement.new({
|
|
9
|
+
resolverContract,
|
|
10
|
+
settlementContract
|
|
11
|
+
});
|
|
12
|
+
const limitOrder0 = {
|
|
13
|
+
salt: '618054093254',
|
|
14
|
+
makerAsset: '0xe9e7cea3dedca5984780bafc599bd69add087d56',
|
|
15
|
+
takerAsset: '0x111111111117dc0aa78b770fa6a738034120c302',
|
|
16
|
+
maker: '0xfb3c7eb936cAA12B5A884d612393969A557d4307',
|
|
17
|
+
receiver: '0x0000000000000000000000000000000000000000',
|
|
18
|
+
allowedSender: '0x0000000000000000000000000000000000000000',
|
|
19
|
+
makingAmount: '1000000000000000000',
|
|
20
|
+
takingAmount: '1000000000000000000',
|
|
21
|
+
offsets: '9813420589127697917471531885823684359047649055178615469676279994777600',
|
|
22
|
+
// eslint-disable-next-line max-len
|
|
23
|
+
interactions: '0x20b83f2d0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400007e2d21830000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a7640000bfa7514300000000000000000000000000000000000000000000000000000068000000240000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006863592c2b0000000000000000000000000000000000000000000000000000000063593ad9cf6fc6e3000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d43070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
|
24
|
+
};
|
|
25
|
+
const limitOrder1 = {
|
|
26
|
+
salt: '618054093254',
|
|
27
|
+
makerAsset: '0xe9e7cea3dedca5984780bafc599bd69add087d56',
|
|
28
|
+
takerAsset: '0x111111111117dc0aa78b770fa6a738034120c302',
|
|
29
|
+
maker: '0xfb3c7eb936cAA12B5A884d612393969A557d4307',
|
|
30
|
+
receiver: '0x0000000000000000000000000000000000000000',
|
|
31
|
+
allowedSender: '0x0000000000000000000000000000000000000000',
|
|
32
|
+
makingAmount: '1000000000000000000',
|
|
33
|
+
takingAmount: '1000000000000000000',
|
|
34
|
+
offsets: '9813420589127697917471531885823684359047649055178615469676279994777600',
|
|
35
|
+
// eslint-disable-next-line max-len
|
|
36
|
+
interactions: '0x20b83f2d0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400007e2d21830000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a7640000bfa7514300000000000000000000000000000000000000000000000000000068000000240000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006863592c2b0000000000000000000000000000000000000000000000000000000063593ad9cf6fc6e3000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d43070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
|
|
37
|
+
};
|
|
38
|
+
const calldata = settlement.encodeSettleOrders([
|
|
39
|
+
{
|
|
40
|
+
order: limitOrder0,
|
|
41
|
+
makingAmount: '12345',
|
|
42
|
+
takingAmount: '0',
|
|
43
|
+
thresholdAmount: '12342343242342342342424324234242',
|
|
44
|
+
signature: '0xaefe4201b2a66009b0f2976a638f54d6f6a63b0fdcfdc289523c7ea6220c7ab13d1af9de1b85701cfff745b96742e9e4c3b29057adcac8f3b62de7b1a4eb110d1b',
|
|
45
|
+
target: resolverContract
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
order: limitOrder1,
|
|
49
|
+
makingAmount: '678910',
|
|
50
|
+
takingAmount: '0',
|
|
51
|
+
thresholdAmount: '12342343242342342342424324234242',
|
|
52
|
+
signature: '0x123e4201b2a66009b0f2976a638f54d6f6a63b0fdcfdc289523c7ea6220c7ab13d1af9de1b85701cfff745b96742e9e4c3b29057adcac8f3b62de7b1a4eb110d1b',
|
|
53
|
+
target: resolverContract
|
|
54
|
+
}
|
|
55
|
+
], '0x123456');
|
|
56
|
+
expect(calldata).toBe(
|
|
57
|
+
// eslint-disable-next-line max-len
|
|
58
|
+
'0x0965d04b000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008e000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000030390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009bc8430b2577b5a268bb3c5c0200000000000000000000000084d99aa569d93a9ca187d83734c8c4a519c4e9b10000000000000000000000000000000000000000000000000000008fe6e509c6000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56000000000000000000000000111111111117dc0aa78b770fa6a738034120c302000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d4307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000016c0000016c0000016c0000016c000000880000004400000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000016c20b83f2d0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400007e2d21830000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a7640000bfa7514300000000000000000000000000000000000000000000000000000068000000240000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006863592c2b0000000000000000000000000000000000000000000000000000000063593ad9cf6fc6e3000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d4307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040aefe4201b2a66009b0f2976a638f54d6f6a63b0fdcfdc289523c7ea6220c7ab13d1af9de1b85701cfff745b96742e9e4c3b29057adcac8f3b62de7b1a4eb110d0000000000000000000000000000000000000000000000000000000000000495a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000a5bfe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009bc8430b2577b5a268bb3c5c0200000000000000000000000084d99aa569d93a9ca187d83734c8c4a519c4e9b10000000000000000000000000000000000000000000000000000008fe6e509c6000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56000000000000000000000000111111111117dc0aa78b770fa6a738034120c302000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d4307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400000000016c0000016c0000016c0000016c000000880000004400000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000016c20b83f2d0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a76400007e2d21830000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000de0b6b3a7640000bfa7514300000000000000000000000000000000000000000000000000000068000000240000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006863592c2b0000000000000000000000000000000000000000000000000000000063593ad9cf6fc6e3000000000000000000000000fb3c7eb936caa12b5a884d612393969a557d4307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040123e4201b2a66009b0f2976a638f54d6f6a63b0fdcfdc289523c7ea6220c7ab13d1af9de1b85701cfff745b96742e9e4c3b29057adcac8f3b62de7b1a4eb110d000000000000000000000000000000000000000000000000000000000000002ca88800cd213da5ae406ce248380802bd53b476470184d99aa569d93a9ca187d83734c8c4a519c4e9b112345600000000000000000000000000000000000000000000000000000000000000');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=settlement.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settlement.spec.js","sourceRoot":"","sources":["../../src/settlement/settlement.spec.ts"],"names":[],"mappings":";;AAAA,6CAAuC;AAGvC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IACxB,MAAM,gBAAgB,GAAG,4CAA4C,CAAA;IACrE,MAAM,kBAAkB,GAAG,4CAA4C,CAAA;IAEvE,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,uBAAU,CAAC,GAAG,CAAC;YAC9B,gBAAgB;YAChB,kBAAkB;SACrB,CAAC,CAAA;QAEF,MAAM,WAAW,GAAuB;YACpC,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,4CAA4C;YACxD,UAAU,EAAE,4CAA4C;YACxD,KAAK,EAAE,4CAA4C;YACnD,QAAQ,EAAE,4CAA4C;YACtD,aAAa,EAAE,4CAA4C;YAC3D,YAAY,EAAE,qBAAqB;YACnC,YAAY,EAAE,qBAAqB;YACnC,OAAO,EACH,wEAAwE;YAC5E,mCAAmC;YACnC,YAAY,EACR,4tBAA4tB;SACnuB,CAAA;QAED,MAAM,WAAW,GAAuB;YACpC,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,4CAA4C;YACxD,UAAU,EAAE,4CAA4C;YACxD,KAAK,EAAE,4CAA4C;YACnD,QAAQ,EAAE,4CAA4C;YACtD,aAAa,EAAE,4CAA4C;YAC3D,YAAY,EAAE,qBAAqB;YACnC,YAAY,EAAE,qBAAqB;YACnC,OAAO,EACH,wEAAwE;YAC5E,mCAAmC;YACnC,YAAY,EACR,4tBAA4tB;SACnuB,CAAA;QAED,MAAM,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAC1C;YACI;gBACI,KAAK,EAAE,WAAW;gBAClB,YAAY,EAAE,OAAO;gBACrB,YAAY,EAAE,GAAG;gBACjB,eAAe,EAAE,kCAAkC;gBACnD,SAAS,EACL,sIAAsI;gBAC1I,MAAM,EAAE,gBAAgB;aAC3B;YACD;gBACI,KAAK,EAAE,WAAW;gBAClB,YAAY,EAAE,QAAQ;gBACtB,YAAY,EAAE,GAAG;gBACjB,eAAe,EAAE,kCAAkC;gBACnD,SAAS,EACL,sIAAsI;gBAC1I,MAAM,EAAE,gBAAgB;aAC3B;SACJ,EACD,UAAU,CACb,CAAA;QAED,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI;QACjB,mCAAmC;QACnC,4kJAA4kJ,CAC/kJ,CAAA;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function patchSignature(signature: string): string;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.patchSignature = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const bn_js_1 = tslib_1.__importDefault(require("bn.js"));
|
|
6
|
+
function patchSignature(signature) {
|
|
7
|
+
const isGnosisSafe = signature === '0x';
|
|
8
|
+
if (isGnosisSafe) {
|
|
9
|
+
return signature;
|
|
10
|
+
}
|
|
11
|
+
// with 0x (64 len)
|
|
12
|
+
if (signature.length === 130) {
|
|
13
|
+
return signature;
|
|
14
|
+
}
|
|
15
|
+
if (signature.length > 132) {
|
|
16
|
+
return signature;
|
|
17
|
+
}
|
|
18
|
+
const sig = signature.substr(0, 130);
|
|
19
|
+
const lastByte = signature.substr(130, 2);
|
|
20
|
+
if (lastByte.toLowerCase() === '1b' || lastByte === '00') {
|
|
21
|
+
return sig;
|
|
22
|
+
}
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
const bnSig = new bn_js_1.default(sig.substring(2 + 64), 'hex').setn(255, true);
|
|
26
|
+
return sig.substring(0, 2 + 64) + bnSig.toString('hex');
|
|
27
|
+
}
|
|
28
|
+
exports.patchSignature = patchSignature;
|
|
29
|
+
//# sourceMappingURL=signature-patcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature-patcher.js","sourceRoot":"","sources":["../../src/settlement/signature-patcher.ts"],"names":[],"mappings":";;;;AAAA,0DAAsB;AAEtB,SAAgB,cAAc,CAAC,SAAiB;IAC5C,MAAM,YAAY,GAAG,SAAS,KAAK,IAAI,CAAA;IAEvC,IAAI,YAAY,EAAE;QACd,OAAO,SAAS,CAAA;KACnB;IAED,mBAAmB;IACnB,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,EAAE;QAC1B,OAAO,SAAS,CAAA;KACnB;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG,EAAE;QACxB,OAAO,SAAS,CAAA;KACnB;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAEzC,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;QACtD,OAAO,GAAG,CAAA;KACb;IAED,6DAA6D;IAC7D,aAAa;IACb,MAAM,KAAK,GAAG,IAAI,eAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAElE,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3D,CAAC;AA5BD,wCA4BC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LimitOrderV3Struct } from '../limit-order';
|
|
2
|
+
export declare type SettlementConfig = {
|
|
3
|
+
resolverContract: string;
|
|
4
|
+
settlementContract: string;
|
|
5
|
+
};
|
|
6
|
+
export declare type FillOrderParams = {
|
|
7
|
+
order: LimitOrderV3Struct;
|
|
8
|
+
signature: string;
|
|
9
|
+
makingAmount: string;
|
|
10
|
+
takingAmount: string;
|
|
11
|
+
thresholdAmount: string;
|
|
12
|
+
target: string;
|
|
13
|
+
};
|
|
14
|
+
export declare type FillOrderParamsExtended = FillOrderParams & {
|
|
15
|
+
interaction: string;
|
|
16
|
+
};
|