diff --git a/src/boilerplate/common/backup-encrypted-data-listener.mjs b/src/boilerplate/common/backup-encrypted-data-listener.mjs index 2e98370c..bb91a75f 100644 --- a/src/boilerplate/common/backup-encrypted-data-listener.mjs +++ b/src/boilerplate/common/backup-encrypted-data-listener.mjs @@ -399,6 +399,7 @@ export default class BackupEncryptedDataEventListener { await storeCommitment({ hash: newCommitment, name, + transactionHash: eventData.transactionHash || null, mappingKey: mappingKey?.integer, type: commitmentType, typeNames: structTypeNames, diff --git a/src/boilerplate/common/commitment-storage.mjs b/src/boilerplate/common/commitment-storage.mjs index 7b309df1..96237471 100644 --- a/src/boilerplate/common/commitment-storage.mjs +++ b/src/boilerplate/common/commitment-storage.mjs @@ -83,6 +83,7 @@ export function formatCommitment(commitment) { _id: commitment.hash.hex(32), name: commitment.name, source: commitment.source, + transactionHash: commitment.transactionHash ?? null, type: commitment.type ?? null, typeNames: Array.isArray(commitment.typeNames) ? commitment.typeNames diff --git a/src/boilerplate/common/encrypted-data-listener.mjs b/src/boilerplate/common/encrypted-data-listener.mjs index 9c087a7f..8ec45649 100644 --- a/src/boilerplate/common/encrypted-data-listener.mjs +++ b/src/boilerplate/common/encrypted-data-listener.mjs @@ -78,8 +78,13 @@ export default class EncryptedDataEventListener { .flatMap(e => e.returnValues.nullifiers) return Promise.all( backupEvents - .map(e => decrypt(e.returnValues.cipherText, this.publicKey, this.secretKey)) - .map(decodeCommitmentData) + .map(e => { + const commitment = decodeCommitmentData( + decrypt(e.returnValues.cipherText, this.publicKey, this.secretKey), + ); + if (commitment) commitment.transactionHash = e.transactionHash; + return commitment; + }) .filter(c => c) .map(formatCommitment) .map(c => { diff --git a/src/boilerplate/orchestration/javascript/raw/boilerplate-generator.ts b/src/boilerplate/orchestration/javascript/raw/boilerplate-generator.ts index 5fdb2c98..935fff9a 100644 --- a/src/boilerplate/orchestration/javascript/raw/boilerplate-generator.ts +++ b/src/boilerplate/orchestration/javascript/raw/boilerplate-generator.ts @@ -687,6 +687,9 @@ sendTransaction = { isConstructor }): string[] { let value; + const transactionHash = isConstructor + ? `null` + : `encBackupEvent?.[0]?.transactionHash || null`; const commitmentType = !Array.isArray(valueType) && ['bytes20', 'address'].includes(valueType) ? `\n type: '${valueType}',` : ''; @@ -708,6 +711,7 @@ sendTransaction = { \nawait storeCommitment({ hash: ${stateName}_newCommitment, name: '${mappingName}', + transactionHash: ${transactionHash}, mappingKey: ${mappingKey === `` ? `null` : `${mappingKey}`}, ${commitmentType} ${commitmentTypeNames} @@ -729,6 +733,7 @@ sendTransaction = { \nawait storeCommitment({ hash: ${stateName}_2_newCommitment, name: '${mappingName}', + transactionHash: ${transactionHash}, mappingKey: ${mappingKey === `` ? `null` : `${mappingKey}`}, ${commitmentType} ${commitmentTypeNames} @@ -755,6 +760,7 @@ sendTransaction = { \nawait storeCommitment({ hash: ${stateName}_newCommitment, name: '${mappingName}', + transactionHash: ${transactionHash}, mappingKey: ${mappingKey === `` ? `null` : `${mappingKey}`}, ${commitmentType} ${commitmentTypeNames} diff --git a/src/codeGenerators/orchestration/files/toOrchestration.ts b/src/codeGenerators/orchestration/files/toOrchestration.ts index 4f43ebc7..669bac9c 100644 --- a/src/codeGenerators/orchestration/files/toOrchestration.ts +++ b/src/codeGenerators/orchestration/files/toOrchestration.ts @@ -307,6 +307,7 @@ node.stateVariables?.forEach( hash: newCommitment, name: '${variable.name}', source: 'encrypted data', + transactionHash: eventData.transactionHash || null, mappingKey: stateVarId.integer, preimage: { stateVarId, @@ -358,6 +359,7 @@ node.stateVariables?.forEach( hash: newCommitment, name: '${variable.name}', source: 'encrypted data', + transactionHash: eventData.transactionHash || null, mappingKey: stateVarId.integer, preimage: { stateVarId, @@ -811,6 +813,7 @@ const prepareBackupVariable = (node: any) => { await storeCommitment({ hash: newCommitment, name: name, + transactionHash: log.transactionHash || null, mappingKey: mappingKey?.integer, type: commitmentType, typeNames: structTypeNames, @@ -1045,6 +1048,7 @@ const prepareBackupDataRetriever = (node: any) => { await storeCommitment({ hash: newCommitment, name: name, + transactionHash: log.transactionHash || null, mappingKey: mappingKey?.integer, type: commitmentType, typeNames: structTypeNames,