Move txType parsing outside of forloop
This commit is contained in:
@@ -249,6 +249,22 @@ static void processV(txContext_t *context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static parserStatus_e processTxInternal(txContext_t *context) {
|
static parserStatus_e processTxInternal(txContext_t *context) {
|
||||||
|
// EIP 2718: TransactionType might be present before the TransactionPayload.
|
||||||
|
uint8_t txType = *context->workBuffer;
|
||||||
|
if (txType >= MIN_TX_TYPE && txType <= MAX_TX_TYPE) {
|
||||||
|
PRINTF("TX TYPE: %u\n", txType);
|
||||||
|
|
||||||
|
// Enumerate through all supported txTypes here...
|
||||||
|
if (txType == LEGACY_TX) {
|
||||||
|
context->txType = txType;
|
||||||
|
context->workBuffer++;
|
||||||
|
} else {
|
||||||
|
PRINTF("Transaction type not supported\n");
|
||||||
|
return USTREAM_FAULT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the TransactionPayload.
|
||||||
for (;;) {
|
for (;;) {
|
||||||
customStatus_e customStatus = CUSTOM_NOT_HANDLED;
|
customStatus_e customStatus = CUSTOM_NOT_HANDLED;
|
||||||
// EIP 155 style transasction
|
// EIP 155 style transasction
|
||||||
@@ -263,20 +279,7 @@ static parserStatus_e processTxInternal(txContext_t *context) {
|
|||||||
if (context->commandLength == 0) {
|
if (context->commandLength == 0) {
|
||||||
return USTREAM_PROCESSING;
|
return USTREAM_PROCESSING;
|
||||||
}
|
}
|
||||||
// EIP 2718: TransactionType might be present before the TransactionPayload.
|
|
||||||
if (*context->workBuffer >= MIN_TX_TYPE && *context->workBuffer <= MAX_TX_TYPE) {
|
|
||||||
uint8_t maybeType = *context->workBuffer;
|
|
||||||
PRINTF("TX TYPE: %u\n", maybeType);
|
|
||||||
|
|
||||||
// Enumerate through all supported txTypes here...
|
|
||||||
if (maybeType == LEGACY_TX) {
|
|
||||||
context->txType = *context->workBuffer;
|
|
||||||
context->workBuffer++;
|
|
||||||
} else {
|
|
||||||
PRINTF("Transaction type not supported\n");
|
|
||||||
return USTREAM_FAULT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!context->processingField) {
|
if (!context->processingField) {
|
||||||
bool canDecode = false;
|
bool canDecode = false;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
|
|||||||
Reference in New Issue
Block a user