如何发出在其他事务中调用的事件

How can emit a event that is called inside other transaction

我正在尝试在调用其他事务时发出一个事件。但是我不能执行我的意图。

我有如下一段代码:

event TransactionAssetEvent {
  o BlastAsset eventAsset
  o String eventCalledFromTransaction
}

在 logic.js 文件中,我有一个可以正常工作的函数:

async function Transfer(transfer) {
    //Some logic with a asset object

    TransactionAssetEvent(asset, 'Transfer');

    return updateAsset(asset);
}

 /**
 * Emit a notification that a transaction has occurred
 * @param {Object} asset
 * @param {String} eventCalledFromTransaction
 * @transaction
 */
async function TransactionAssetEvent(asset, eventCalledFromTransaction) {
    const factory = getFactory();
    let event = factory.newEvent(org.test', 'TransactionAssetEvent');
    event.eventAsset = asset;
    event.eventCalledFromTransaction = eventCalledFromTransaction;
    emit(event);
}

但是我有以下错误:

Error: t: Transaction processing function TransactionAssetEvent must have 1 function argument of type transaction.

如何才能成功发出事件?

我正在通过活动实现良好的流程?或者我以错误的方式使用事件?

我正在寻找其他 post,但我无法实施评论的流程

let event = factory.newEvent(org.test', 'TransactionAssetEvent');

应该是

let event = factory.newEvent('namespace*', 'TransactionAssetEvent');

namespace 基本上就是保存 event TransactionAssetEvent 的文件的命名空间

例如你的台词是

let event = factory.newEvent('org.test.eventModelFile', 'TransactionAssetEvent');

您还错过了 ' factory.newEvent(org.test', 'TransactionAssetEvent'); 应该是 factory.newEvent('org.test', 'TransactionAssetEvent');