///
import { BigNumber } from "bignumber.js";
import BN = require("bn.js");
import { Context } from "./context";
import { OrderInfo, TokenType } from "./types";
export declare class OrderUtil {
private context;
private zeroBytes32;
constructor(context: Context);
updateBrokerAndInterceptor(order: OrderInfo): Promise;
validateInfo(order: OrderInfo): Promise;
validateAllOrNone(order: OrderInfo): void;
checkBrokerSignature(order: OrderInfo): Promise;
checkDualAuthSignature(order: OrderInfo, miningHash: Buffer): void;
toTypedData(order: OrderInfo): {
types: {
EIP712Domain: {
name: string;
type: string;
}[];
Order: {
name: string;
type: string;
}[];
};
primaryType: string;
domain: {
name: string;
version: string;
};
message: {
amountS: BN;
amountB: BN;
feeAmount: BN;
validSince: BN;
validUntil: BN;
owner: string;
tokenS: string;
tokenB: string;
dualAuthAddr: string;
broker: string;
orderInterceptor: string;
wallet: string;
tokenRecipient: string;
feeToken: string;
walletSplitPercentage: number;
tokenSFeePercentage: number;
tokenBFeePercentage: number;
allOrNone: boolean;
tokenTypeS: TokenType;
tokenTypeB: TokenType;
tokenTypeFee: TokenType;
trancheS: string;
trancheB: string;
transferDataS: string;
};
};
toTypedDataJSON(order: OrderInfo): string;
getOrderHash(order: OrderInfo): any;
toOrderBookSubmitParams(orderInfo: OrderInfo): string;
checkP2P(orderInfo: OrderInfo): void;
getSpendableS(order: OrderInfo): Promise;
getSpendableFee(order: OrderInfo): Promise;
reserveAmountS(order: OrderInfo, amount: BigNumber): Promise;
reserveAmountFee(order: OrderInfo, amount: BigNumber): Promise;
resetReservations(order: OrderInfo): void;
getERC20Spendable(spender: string, tokenAddress: string, owner: string): Promise;
getBrokerAllowance(tokenAddr: string, owner: string, broker: string, brokerInterceptor: string): Promise;
private getSpendable(token, owner, broker, brokerInterceptor, tokenSpendable, brokerSpendable);
private toBN(n);
}