Skip to content

Commit

Permalink
Update ContractCreateTransactionHandler with partial contract result …
Browse files Browse the repository at this point in the history
…flow

Signed-off-by: Nana-EC <nana.essilfie-conduah@hedera.com>
  • Loading branch information
Nana-EC committed Jan 24, 2022
1 parent ed94ca3 commit 9831d16
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* ‍
*/

import com.hederahashgraph.api.proto.java.ContractFunctionResult;
import javax.inject.Named;

import com.hedera.mirror.common.domain.contract.Contract;
Expand Down Expand Up @@ -69,18 +70,17 @@ public void updateTransaction(Transaction transaction, RecordItem recordItem) {
doUpdateEntity(contract, recordItem);
}

if (entityProperties.getPersist().isContracts() && transactionRecord.hasContractCreateResult()) {
var functionResult = transactionRecord.getContractCreateResult();

if (entityProperties.getPersist().isContracts()) {
ContractResult contractResult = new ContractResult();
contractResult.setAmount(transactionBody.getInitialBalance());
contractResult.setConsensusTimestamp(consensusTimestamp);
contractResult.setContractId(EntityId.of(transactionRecord.getReceipt().getContractID()));
contractResult.setContractId(transaction.getEntityId());
contractResult.setFunctionParameters(DomainUtils.toBytes(transactionBody.getConstructorParameters()));
contractResult.setGasLimit(transactionBody.getGas());
contractResult.setPayerAccountId(transaction.getPayerAccountId());

onContractResult(recordItem, contractResult, functionResult);
onContractResult(recordItem, contractResult, transactionRecord.hasContractCreateResult() ?
transactionRecord.getContractCreateResult() : ContractFunctionResult.getDefaultInstance());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ var record = recordItem.getRecord();
assertAll(
() -> assertEquals(1, transactionRepository.count()),
() -> assertEntities(),
() -> assertEquals(0, contractResultRepository.count()),
() -> assertEquals(1, contractResultRepository.count()),
() -> assertEquals(3, cryptoTransferRepository.count()),
() -> assertFailedContractCreate(transactionBody, record)
);
Expand Down Expand Up @@ -563,6 +563,7 @@ private void assertContractCreateResult(ContractCreateTransactionBody transactio
.hasSize(1)
.first()
.returns(transactionBody.getInitialBalance(), ContractResult::getAmount)
.returns(consensusTimestamp, ContractResult::getConsensusTimestamp)
.returns(EntityId.of(record.getReceipt().getContractID()), ContractResult::getContractId)
.returns(toBytes(transactionBody.getConstructorParameters()), ContractResult::getFunctionParameters)
.returns(transactionBody.getGas(), ContractResult::getGasLimit);
Expand All @@ -579,6 +580,7 @@ private void assertContractCallResult(ContractCallTransactionBody transactionBod
.hasSize(1)
.first()
.returns(transactionBody.getAmount(), ContractResult::getAmount)
.returns(consensusTimestamp, ContractResult::getConsensusTimestamp)
.returns(EntityId.of(transactionBody.getContractID()), ContractResult::getContractId)
.returns(toBytes(transactionBody.getFunctionParameters()), ContractResult::getFunctionParameters)
.returns(transactionBody.getGas(), ContractResult::getGasLimit);
Expand Down
4 changes: 2 additions & 2 deletions hedera-mirror-rest/service/transactionService.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ class TransactionService extends BaseService {
}

static transactionDetailsFromTimestampQuery = `select
${Transaction.CONSENSUS_TIMESTAMP}, ${Transaction.ENTITY_ID}, ${Transaction.PAYER_ACCOUNT_ID}, ${Transaction.RESULT}, ${Transaction.TRANSACTION_HASH}
${Transaction.PAYER_ACCOUNT_ID}, ${Transaction.RESULT}, ${Transaction.TRANSACTION_HASH}
from ${Transaction.tableName}
where ${Transaction.CONSENSUS_TIMESTAMP} = $1`;

static transactionDetailsFromTransactionIdQuery = `select
${Transaction.CONSENSUS_TIMESTAMP}, ${Transaction.ENTITY_ID}, ${Transaction.PAYER_ACCOUNT_ID}, ${Transaction.RESULT}, ${Transaction.TRANSACTION_HASH}
${Transaction.CONSENSUS_TIMESTAMP}, ${Transaction.PAYER_ACCOUNT_ID}, ${Transaction.RESULT}, ${Transaction.TRANSACTION_HASH}
from ${Transaction.tableName}
where ${Transaction.PAYER_ACCOUNT_ID} = $1
and ${Transaction.VALID_START_NS} = $2`;
Expand Down

0 comments on commit 9831d16

Please sign in to comment.