fix: inner writes evaluator fix - verify inner call type

This commit is contained in:
ppedziwiatr
2023-05-26 14:36:18 +02:00
committed by just_ppe
parent 3d4a6d578f
commit f72ded1085

View File

@@ -14,17 +14,19 @@ export class InnerWritesEvaluator {
private evalForeignCalls(rootContractTxId: string, interaction: InteractionCall, result: Array<string>) {
Object.keys(interaction.interactionInput.foreignContractCalls).forEach((foreignContractCallKey) => {
const foreignContractCall = interaction.interactionInput.foreignContractCalls[foreignContractCallKey];
Object.keys(foreignContractCall.interactions).forEach((k) => {
const foreignInteraction = foreignContractCall.interactions[k];
if (
foreignInteraction.interactionInput.dryWrite &&
!result.includes(foreignContractCall.contractTxId) &&
rootContractTxId !== foreignContractCall.contractTxId /*"write-backs"*/
) {
result.push(foreignContractCall.contractTxId);
}
this.evalForeignCalls(rootContractTxId, foreignInteraction, result);
});
if (foreignContractCall.innerCallType == 'write') {
Object.keys(foreignContractCall.interactions).forEach((k) => {
const foreignInteraction = foreignContractCall.interactions[k];
if (
foreignInteraction.interactionInput.dryWrite &&
!result.includes(foreignContractCall.contractTxId) &&
rootContractTxId !== foreignContractCall.contractTxId /*"write-backs"*/
) {
result.push(foreignContractCall.contractTxId);
}
this.evalForeignCalls(rootContractTxId, foreignInteraction, result);
});
}
});
}
}