const Action = require('./Action.js') const DAD = module.exports = function ActionRegisterChain (prop) { this._class = this.constructor.name this.setProp(prop) // 没有定义 ActionTransfer.prototype._model,因此继承了上级Action.prototype._model,因此通过this.setProp,继承了上级Action定义的实例自有数据。另一个方案是,调用 Action.call(this, prop) this.type = this.constructor.name } DAD.__proto__ = Action const MOM = DAD.prototype MOM.__proto__ = Action.prototype MOM.validateMe = function () { let result = (this.fee >= wo.Config.MIN_FEE_ActionRegisterChain || 0) && // 检查事务内容数据,是否符合本类事务的格式和语义要求: this.json && this.json.consensus && // 共识机制 this.json.network && // 网络机制 this.json.chain && // 区块机制 this.json.chain.period && // 出块周期 this.json.chain.size // 区块大小 return result } MOM.executableMe = async function() { // todo: 检查是否已有同名的应用链?以及其他检查。 let balance = await wo.Store.getBalance(this.actorAddress) return balance >= this.fee } MOM.executeMe = async function () { return this } /** ****************** Public of class ********************/ DAD.api = {}