如何发出在其他事务中调用的事件
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');
我正在尝试在调用其他事务时发出一个事件。但是我不能执行我的意图。
我有如下一段代码:
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');