添加 getTypedAction和createTypedAction方法,为了修正错误:node.server的强化版的BlockPot.js执行action.executeMe()失败,因为Action.getBatchAction()进行了JSON.stringify;注释掉 wo.Netnode.broadcast 因为报错说不存在。

This commit is contained in:
陆柯 2020-02-28 17:09:26 +08:00
parent 9099da4ab9
commit cfad03864a

View File

@ -122,8 +122,14 @@ DAD.execute = async function (action) { // For chain server.
DAD._initTypeDict = function(typedActionDict) {
Object.assign(wo, typedActionDict)
}
DAD.getTypedAction = function(type){
return wo[type]
}
DAD.createTypedAction = function(action){
return new wo[action.type](action)
}
DAD.build = async function (action, keypair) { // Applicable on client. 客户端调用 Action.build即可新建、并打包成一个完整的子事务不需要亲自调用 constructor, packMe 等方法。
DAD.buildUserAction = async function (action, keypair) { // Applicable on client. 客户端调用 Action.build即可新建、并打包成一个完整的子事务不需要亲自调用 constructor, packMe 等方法。
if (action && action.type && keypair && keypair.seckey && keypair.pubkey && ticCrypto.seckey2pubkey(keypair.seckey)===keypair.pubkey) {
let typedAction = new wo[action.type](action)
typedAction.actorPubkey = keypair.pubkey
@ -182,7 +188,7 @@ DAD.api.prepare = async function (option) {
DAD.actionPool[option.Action.hash] = typedAction
DAD.actionPoolInfo.totalAmount += option.Action.amount || 0
DAD.actionPoolInfo.totalFee += option.Action.fee || 0
wo.Netnode.broadcast({ Action: option.Action })
// wo.Netnode.broadcast({ Action: option.Action }) // 即使对 master 分支的node.server 也报错Cannot read property 'broadcast' of undefined
return option.Action
}
}