Skip to content

Commit

Permalink
update main.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
kongliangzhong committed Nov 15, 2018
1 parent c6e4cc6 commit e4ed70a
Show file tree
Hide file tree
Showing 8 changed files with 52 additions and 46 deletions.
1 change: 1 addition & 0 deletions data/bin01.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x00000002000100030008000d00120000002b00300035003a0042004a00000001004b00000000005000000055006e00000000003a00140000000000000000000a00000087003500300042003a004a00020002008c0000000000500000009100aa00000000003a00140000000000000000001402000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f14213b68bcec2be0c2b8c91d6336e65267dd2095227915ca278541a953a78044de5aa6aff3c7b37000000000000000000000000000000000000000000000000000000000000004300411b9472083709ca53f7705985a9d61be1638e2abfb1094559dd8f45cc5ed404dc1a546535cab18d5f501098774a8712696dc68aedb2b999c081cee3307906c39b0e0096d76d19f067e625318b34971e9bbf0a1f818676cf16ef2b2dec2bc2b3d64995f1a86985c5e98e687ffb6c88ed0422974b573cea2713d0345225f71b0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea000005bc5ba56d5593396c0d3753d8d76c9dca5cc490670e377c489a80ec8fe28c07ffb38556e89402ca16874acd8000000000000000000000000000000000000000000000000000000000000004300411cb61748845e31af64293e3694434ef68945d9b2aef765674417859082ce0d6b9374058469e3081568141951a418851784422be0488a9f64745a2463194bd7090300000000000000000000000000000000000000000000000000000000000000004300411b59398761469a1348fb61fd7dd2d62fe8505b95b23bc48aadc52a7879c27f02870a3c960cf6bfa1b437c9bc347980bbdd123144f5f6591ba3a007258121dec00200e2183d083a5de89862f9f6959533c372a09dd4898225724e10fc1dc3ad675a010178b4e5f517aef5000000000000000000000000000000000000000000000000000000000000004300411c4f63e6b293898e0b39618fe7a6b9708d4f3f7c74043b4fb9bf896078d3c2ba18266bed997a13a01ff5c79d28f75e169598779ec2731b28ec4c4b8165e5edcd9000000000000000000000000000000000000000000000000000000000000000004300411b3c1d5fa6913833aeba9dbd4fc0c7cec7dd07ee5c7a1df4801b264d4168136e0375c8549f90745c6eb73700abd2ba9333450bd3da415608d59f8b00270a451c5f00
3 changes: 3 additions & 0 deletions data/param01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{ "bs": "000000020001000300000000000000000008000d00120017001f00270000000000080000000000280000002d002d000000000045000000000000002800000000004d0012000d001f0017002700010002004d00000000002800000052005200000000004500000000000000280000020001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001b978a1d302335a6f2ebe4b8823b5e17c3c84135cd36128815ebe0b44d0374649bad2721b8751beff079e0612e869197c5f4c7d0a95df570b163232b0000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000002386f26fc100005be5af004bad3053d574cd54513babe21db3f09bea1d387d00000000000000000000000000000000000000000000000000000000000000408198f8e0247329affa5ebbdd9e92b6ff2911698f0e6b35aaf6fa87a668aa1f9071d6ae22201fb670d921f1e6593e753afedf7ababdbeacd7daebbe749782a4e20000000000000000000000000000000000000000000000008ac7230489e80000b1018949b241d76a1ab2094f473e9befeabb5ead00000000000000000000000000000000000000000000000000000000000000407ca437000b3ab0a26218376b83aa12eb6fb617f0204e86bf165dd754212720ec30475b9f9a16c1874d24b6049cf25372633463d7e25a8e7f5a0819e79c79406800",
"txOrigin": "0x4bad3053d574cd54513babe21db3f09bea1d387d"
}
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"bignumber.js": "^4.1.0",
"bitwise-xor": "0.0.0",
"bn.js": "^4.11.8",
"es6-promisify": "^6.0.0",
"es6-promisify": "^6.0.1",
"ethereum-tx-decoder": "^2.0.1",
"ethereumjs-abi": "^0.6.5",
"ethereumjs-util": "^5.2.0",
Expand Down
6 changes: 5 additions & 1 deletion src/exchange_deserializer.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import assert = require("assert");
import { BigNumber } from "bignumber.js";
import BN = require("bn.js");
import abi = require("ethereumjs-abi");
Expand Down Expand Up @@ -112,7 +113,10 @@ export class ExchangeDeserializer {
tokenRecipient: this.nextAddress(),
walletSplitPercentage: this.nextUint16(),
};
order.feeToken = order.feeToken ? order.feeToken : this.context.lrcAddress;

if (this.context) {
order.feeToken = order.feeToken ? order.feeToken : this.context.lrcAddress;
}
order.tokenRecipient = order.tokenRecipient ? order.tokenRecipient : order.owner;
return order;
}
Expand Down
71 changes: 32 additions & 39 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,53 +3,46 @@ import { logDebug } from "./logs";
import { ProtocolSimulator } from "./protocol_simulator";
import { RingsInfo } from "./types";

function parseArgs(): [boolean, string] {
async function main() {
const args = process.argv.slice(2);
let isBinary = true;
let ringData = "";
if (args.length === 0) {
throw new Error("error: no ringData found");
console.log("args:", args );

if (args.length < 2) {
throw new Error("error: not enough params.");
}
if (args[0] === "-f") {
const fileName = args[1];
const fileContent = fs.readFileSync(fileName, "utf8");
const fileName = args[1];
const fileContent = fs.readFileSync(fileName, "utf8");

if (args[0] === "--decode-param") {
try {
const ringsInfo: RingsInfo = JSON.parse(fileContent);
isBinary = false;
const paramInfo: any = JSON.parse(fileContent);
console.log(paramInfo);

const protocolSimulator = new ProtocolSimulator(undefined);
const ringsInfo = protocolSimulator.deserialize(paramInfo.bs, paramInfo.txOrigin);
console.log("deserialized ringsInfo: ", ringsInfo);
} catch (err) {
ringData = fileContent;
console.log(err);
}
} else if (args[0] === "-b") {
const binData = args[1];
logDebug(binData);
} else {
if (args[0].startsWith("-")) {
throw new Error("error: invalid argument:" + args[0]);
} else {
ringData = args[0];
}
}
} else if (args[0] === "--encode-rings") {
let ringsInfo: RingsInfo;
ringsInfo = JSON.parse(fileContent);
console.log("ringsInfo:", ringsInfo);
throw new Error("Not implemented yet.");

return [isBinary, ringData];
}

async function main() {
const [isBinData, data] = parseArgs();
let ringsInfo: RingsInfo;

const protocolSimulator = new ProtocolSimulator(undefined);
if (isBinData) {
logDebug("receive binary data, deserializing...");
ringsInfo = protocolSimulator.deserialize(data, "");
logDebug("deserialize result:", ringsInfo);
// const report = await protocolSimulator.simulateAndReport(ringsInfo);
} else if (args[0] === "--decode-simulate") {
try {
const paramInfo: any = JSON.parse(fileContent);
const protocolSimulator = new ProtocolSimulator(undefined);
const ringsInfo = protocolSimulator.deserialize(paramInfo.bs, paramInfo.txOrigin);
console.log("deserialized ringsInfo: ", ringsInfo);
} catch (err) {
console.log(err);
}
} else {
ringsInfo = JSON.parse(data);
logDebug("receive ringsInfo data:", ringsInfo);
throw new Error("error: invalid argument:" + args);
}

logDebug("run simulator and report:");
const report = await protocolSimulator.simulateAndReport(ringsInfo);
logDebug(report);
}

main();
2 changes: 1 addition & 1 deletion src/multihash.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { BigNumber } from "bignumber.js";
import BN = require("bn.js");
import promisify = require("es6-promisify");
import { promisify } from "es6-promisify";
import ABI = require("ethereumjs-abi");
import ethUtil = require("ethereumjs-util");
import Web3 = require("web3");
Expand Down
5 changes: 5 additions & 0 deletions testMain.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

cd .

npm start -- --decode-param data/param01.json

0 comments on commit e4ed70a

Please sign in to comment.