在创建任何asset or 参与者需要检查一些条件就像(如果..那么..否则)在某些领域。
是否可以创建Asset or 参加者通过交易?
对的,这是可能的。
我在我的网络中做了同样的事情,通过交易创建资产并应用您需要的任何规则。
事务从 lib 中的logic.js 文件运行。
假设您在 org.myAssets 命名空间中有一个资产 myAsset
asset myAsset identified by assetId
{
o String assetId
o String someData
//other fields as required
}
您现在想要一笔将创建资产的交易
您的 CTO 交易如下所示:
namespace org.transactions
import org.myAssets.*
transaction MyAssetCreate
{
o myAsset anAsset
}
您无法在此处引用该资产,因为您还没有资产。
在你的 lib/logic.js 中你有类似的东西:
/**
* creates an asset
* @param {org.transactions.MyAssetCreate} myAssetCreate
* @transaction
*/
async function MyAssetCreate(myAssetCreate) {
return getAssetRegistry('org.myAssets.myAsset')
.then(function(result) {
var factory = getFactory();
var newAsset = factory.newResource(
'org.myAssets',
'myAsset',
myAssetCreate.anAsset.assetId);
newAsset.someData = myAssetCreate.anAsset.someData
//continue with property assignments and any logic you have
//when you are done and everything looks good you can continue
return result.add(newAsset);
});
现在您可以调用 MyAssetCreate 并且您将在正确的注册表中获取您的资产。
当然,如果您这样做,那么您需要确保不允许通过标准资产端点创建资产。
我本人计划根本不公开任何资产端点,只允许通过交易进行更改。
检查代码是否有拼写错误等,我从正在运行的网络中获取了此代码,替换了我的类型名称,因此我可能输错了某些内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)