Make orderHashHex a getter instead of a property

This commit is contained in:
Leonid Logvinov
2018-02-07 11:59:40 +01:00
parent 12d62e1157
commit 4b6324050d
5 changed files with 41 additions and 32 deletions

View File

@@ -184,7 +184,7 @@ export class ExchangeWrapper {
public async isValidSignatureAsync(order: Order): Promise<boolean> {
const isValidSignature = await this._exchange.isValidSignature(
order.params.maker,
order.params.orderHashHex as string,
order.getOrderHashHex(),
order.params.v as number,
order.params.r as string,
order.params.s as string,

View File

@@ -18,7 +18,7 @@ export class Order {
if (_.isUndefined(v) || _.isUndefined(r) || _.isUndefined(s)) {
throw new Error('Cannot call isValidSignature on unsigned order');
}
const orderHash = this._getOrderHash();
const orderHash = this.getOrderHashHex();
const msgHash = ethUtil.hashPersonalMessage(ethUtil.toBuffer(orderHash));
try {
const pubKey = ethUtil.ecrecover(msgHash, v, ethUtil.toBuffer(r), ethUtil.toBuffer(s));
@@ -29,11 +29,10 @@ export class Order {
}
}
public async signAsync() {
const orderHash = this._getOrderHash();
const orderHash = this.getOrderHashHex();
const signature = await this._web3Wrapper.signTransactionAsync(this.params.maker, orderHash);
const { v, r, s } = ethUtil.fromRpcSig(signature);
this.params = _.assign(this.params, {
orderHashHex: orderHash,
v,
r: ethUtil.bufferToHex(r),
s: ethUtil.bufferToHex(s),
@@ -85,7 +84,7 @@ export class Order {
};
return cancel;
}
private _getOrderHash(): string {
public getOrderHashHex(): string {
const orderHash = crypto.solSHA3([
this.params.exchangeContractAddress,
this.params.maker,

View File

@@ -76,7 +76,6 @@ export interface OrderParams {
takerFee: BigNumber;
expirationTimestampInSec: BigNumber;
salt: BigNumber;
orderHashHex?: string;
v?: number;
r?: string;
s?: string;