aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-07-05 18:35:16 +0800
committerFabio Berger <me@fabioberger.com>2018-07-05 18:35:16 +0800
commit1c9a657693f324fe9de15fc832398aca715e0727 (patch)
tree3fc277e4536850a3bea9f83822b33c3e81af9f1d /packages
parent11747c6cf47a2f75d32953c84ccdf66f6f2f70a3 (diff)
downloaddexon-0x-contracts-1c9a657693f324fe9de15fc832398aca715e0727.tar.gz
dexon-0x-contracts-1c9a657693f324fe9de15fc832398aca715e0727.tar.zst
dexon-0x-contracts-1c9a657693f324fe9de15fc832398aca715e0727.zip
Add schema assertion checks for callData and txData
Diffstat (limited to 'packages')
-rw-r--r--packages/web3-wrapper/src/web3_wrapper.ts7
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/web3-wrapper/src/web3_wrapper.ts b/packages/web3-wrapper/src/web3_wrapper.ts
index 5dd1150d7..c21d66d0b 100644
--- a/packages/web3-wrapper/src/web3_wrapper.ts
+++ b/packages/web3-wrapper/src/web3_wrapper.ts
@@ -1,4 +1,5 @@
import { assert } from '@0xproject/assert';
+import { schemas } from '@0xproject/json-schemas';
import { AbiDecoder, addressUtils, BigNumber, intervalUtils, promisify } from '@0xproject/utils';
import {
BlockParam,
@@ -456,6 +457,7 @@ export class Web3Wrapper {
* @returns Estimated gas cost
*/
public async estimateGasAsync(txData: Partial<TxData>): Promise<number> {
+ assert.doesConformToSchema('txData', txData, schemas.txDataSchema, [schemas.addressSchema, schemas.numberSchema, schemas.jsNumber]);
const txDataHex = marshaller.marshalTxData(txData);
const gasHex = await this._sendRawPayloadAsync<string>({ method: 'eth_estimateGas', params: [txDataHex] });
const gas = utils.convertHexToNumber(gasHex);
@@ -468,6 +470,7 @@ export class Web3Wrapper {
* @returns The raw call result
*/
public async callAsync(callData: CallData, defaultBlock?: BlockParam): Promise<string> {
+ assert.doesConformToSchema('callData', callData, schemas.callDataSchema, [schemas.addressSchema, schemas.numberSchema, schemas.jsNumber]);
if (!_.isUndefined(defaultBlock)) {
Web3Wrapper._assertBlockParam(defaultBlock);
}
@@ -488,9 +491,7 @@ export class Web3Wrapper {
* @returns Transaction hash
*/
public async sendTransactionAsync(txData: TxData): Promise<string> {
- if (_.isUndefined(txData.from)) {
- throw new Error(`txData is missing required "from" address.`);
- }
+ assert.doesConformToSchema('txData', txData, schemas.txDataSchema, [schemas.addressSchema, schemas.numberSchema, schemas.jsNumber]);
const txDataHex = marshaller.marshalTxData(txData);
const txHash = await this._sendRawPayloadAsync<string>({ method: 'eth_sendTransaction', params: [txDataHex] });
return txHash;