Rename to isFirstGetTransactionCount
assign nextPrefixedHexNonce as a const
This commit is contained in:
Jacob Evans
2018-02-06 11:28:40 -08:00
parent 67d7540907
commit df8de7ff51
2 changed files with 8 additions and 7 deletions

View File

@@ -13,9 +13,9 @@ import {
OptionalNextCallback,
} from '../types';
import { Subprovider } from './subprovider';
// We do not export this since this is not our error, and we do not throw this error
const NONCE_TOO_LOW_ERROR_MESSAGE = 'Transaction nonce is too low';
export class NonceTrackerSubprovider extends Subprovider {
private _nonceCache: { [address: string]: string } = {};
@@ -36,7 +36,8 @@ export class NonceTrackerSubprovider extends Subprovider {
return address;
case 'eth_sendRawTransaction':
const transaction = NonceTrackerSubprovider._reconstructTransaction(payload);
address = `0x${transaction.getSenderAddress().toString('hex')}`.toLowerCase();
const addressRaw = transaction.getSenderAddress().toString('hex').toLowerCase();
address = `0x${addressRaw}`;
return address;
default:
throw new Error(NonceSubproviderErrors.CannotDetermineAddressFromPayload);
@@ -87,8 +88,8 @@ export class NonceTrackerSubprovider extends Subprovider {
if (nextHexNonce.length % 2) {
nextHexNonce = `0${nextHexNonce}`;
}
nextHexNonce = `0x${nextHexNonce}`;
this._nonceCache[address] = nextHexNonce;
const nextPrefixedHexNonce = `0x${nextHexNonce}`;
this._nonceCache[address] = nextPrefixedHexNonce;
}
private _handleSendTransactionError(payload: JSONRPCPayload, err: Error): void {
const address = NonceTrackerSubprovider._determineAddress(payload);

View File

@@ -38,13 +38,13 @@ describe('NonceTrackerSubprovider', () => {
'0x5bd428537f05f9830e93792f90ea6a3e2d1ee84952dd96edbae9f658f831ab13',
];
function createFixtureSubprovider() {
let firstGetTransactionCount = true;
let isFirstGetTransactionCount = true;
const fixedBlockNumberAndTransactionCountProvider = new FixtureSubprovider({
eth_getBlockByNumber: '0x01',
eth_getTransactionCount: (data: any, next: any, end: any) => {
// For testing caching we return different results on the second call
if (firstGetTransactionCount) {
firstGetTransactionCount = false;
if (isFirstGetTransactionCount) {
isFirstGetTransactionCount = false;
end(null, '0x00');
} else {
end(null, '0x99');