@deliquifiedlabs/uniswapx-sdk
Version:
SDK for the UniswapX protocol
73 lines • 3.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const ethers_1 = require("ethers");
const RelayOrder_1 = require("./RelayOrder");
describe("RelayOrder", () => {
const getOrderInfo = (data) => {
const feeStartTime = Math.floor(new Date().getTime() / 1000);
const feeEndTime = Math.floor(new Date().getTime() / 1000) + 1000;
return Object.assign({
deadline: feeEndTime,
reactor: "0x0000000000000000000000000000000000000000",
swapper: "0x0000000000000000000000000000000000000000",
nonce: ethers_1.BigNumber.from(10),
universalRouterCalldata: "0x",
input: {
token: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
amount: ethers_1.BigNumber.from("1000000"),
recipient: "0x0000000000000000000000000000000000000000",
},
fee: {
token: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
startAmount: ethers_1.BigNumber.from("1000000"),
endAmount: ethers_1.BigNumber.from("1000000"),
startTime: feeStartTime,
endTime: feeEndTime,
},
}, data);
};
it("parses a serialized order", () => {
const orderInfo = getOrderInfo({});
const order = new RelayOrder_1.RelayOrder(orderInfo, 1);
const serialized = order.serialize();
const parsed = RelayOrder_1.RelayOrder.parse(serialized, 1);
expect(parsed.info).toEqual(orderInfo);
});
it("valid signature over info", () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
const order = new RelayOrder_1.RelayOrder(getOrderInfo({}), 1);
const wallet = ethers_1.ethers.Wallet.createRandom();
const { domain, types, values } = order.permitData();
const signature = yield wallet._signTypedData(domain, types, values);
expect(order.getSigner(signature)).toEqual(yield wallet.getAddress());
}));
describe("resolve", () => {
it("resolves before decayStartTime", () => {
const order = new RelayOrder_1.RelayOrder(getOrderInfo({}), 1);
const resolved = order.resolve({
timestamp: order.info.fee.startTime - 100,
});
expect(resolved.fee.amount).toEqual(order.info.fee.startAmount);
});
it("resolves at decayStartTime", () => {
const order = new RelayOrder_1.RelayOrder(getOrderInfo({}), 1);
const resolved = order.resolve({ timestamp: order.info.fee.startTime });
expect(resolved.fee.amount).toEqual(order.info.fee.startAmount);
});
it("resolves at decayEndTime", () => {
const order = new RelayOrder_1.RelayOrder(getOrderInfo({}), 1);
const resolved = order.resolve({
timestamp: order.info.fee.endTime,
});
expect(resolved.fee.amount).toEqual(order.info.fee.endAmount);
});
it("resolves after decayEndTime", () => {
const order = new RelayOrder_1.RelayOrder(getOrderInfo({}), 1);
const resolved = order.resolve({
timestamp: order.info.fee.endTime + 100,
});
expect(resolved.fee.amount).toEqual(order.info.fee.endAmount);
});
});
});
//# sourceMappingURL=RelayOrder.test.js.map