aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-cov/src/trace_collection_subprovider.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-08-14 04:40:46 +0800
committerGitHub <noreply@github.com>2018-08-14 04:40:46 +0800
commit7340338626ea11bccd44eef1da277196b78a6a7d (patch)
tree1a99424e80ece948af73995378a5737c8985dd0e /packages/sol-cov/src/trace_collection_subprovider.ts
parent083319786fad31dfde16cb9e06e893bfeb23785d (diff)
parent9d3c287918389d07f884245bd1bc968955768b6f (diff)
downloaddexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar.gz
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar.bz2
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar.lz
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar.xz
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.tar.zst
dexon-sol-tools-7340338626ea11bccd44eef1da277196b78a6a7d.zip
Merge pull request #938 from 0xProject/sol-cov-fixes
Sol cov fixes
Diffstat (limited to 'packages/sol-cov/src/trace_collection_subprovider.ts')
-rw-r--r--packages/sol-cov/src/trace_collection_subprovider.ts16
1 files changed, 9 insertions, 7 deletions
diff --git a/packages/sol-cov/src/trace_collection_subprovider.ts b/packages/sol-cov/src/trace_collection_subprovider.ts
index b530b59db..b6486e6f7 100644
--- a/packages/sol-cov/src/trace_collection_subprovider.ts
+++ b/packages/sol-cov/src/trace_collection_subprovider.ts
@@ -1,7 +1,7 @@
import { BlockchainLifecycle } from '@0xproject/dev-utils';
import { Callback, ErrorCallback, NextCallback, Subprovider } from '@0xproject/subproviders';
-import { Web3Wrapper } from '@0xproject/web3-wrapper';
-import { CallData, JSONRPCRequestPayload, Provider, TxData } from 'ethereum-types';
+import { CallDataRPC, marshaller, Web3Wrapper } from '@0xproject/web3-wrapper';
+import { JSONRPCRequestPayload, Provider, TxData } from 'ethereum-types';
import * as _ from 'lodash';
import { Lock } from 'semaphore-async-await';
@@ -152,7 +152,7 @@ export abstract class TraceCollectionSubprovider extends Subprovider {
cb();
}
private async _onCallOrGasEstimateExecutedAsync(
- callData: Partial<CallData>,
+ callData: Partial<CallDataRPC>,
_err: Error | null,
_callResult: string,
cb: Callback,
@@ -160,22 +160,24 @@ export abstract class TraceCollectionSubprovider extends Subprovider {
await this._recordCallOrGasEstimateTraceAsync(callData);
cb();
}
- private async _recordCallOrGasEstimateTraceAsync(callData: Partial<CallData>): Promise<void> {
+ private async _recordCallOrGasEstimateTraceAsync(callData: Partial<CallDataRPC>): Promise<void> {
// We don't want other transactions to be exeucted during snashotting period, that's why we lock the
// transaction execution for all transactions except our fake ones.
await this._lock.acquire();
const blockchainLifecycle = new BlockchainLifecycle(this._web3Wrapper);
await blockchainLifecycle.startAsync();
- const fakeTxData: MaybeFakeTxData = {
- gas: BLOCK_GAS_LIMIT,
+ const fakeTxData = {
+ gas: BLOCK_GAS_LIMIT.toString(16), // tslint:disable-line:custom-no-magic-numbers
isFakeTransaction: true, // This transaction (and only it) is allowed to come through when the lock is locked
...callData,
from: callData.from || this._defaultFromAddress,
};
try {
- const txHash = await this._web3Wrapper.sendTransactionAsync(fakeTxData);
+ const txData = marshaller.unmarshalTxData(fakeTxData);
+ const txHash = await this._web3Wrapper.sendTransactionAsync(txData);
await this._web3Wrapper.awaitTransactionMinedAsync(txHash, 0);
} catch (err) {
+ // TODO(logvinov) Check that transaction failed and not some other exception
// Even if this transaction failed - we've already recorded it's trace.
_.noop();
}