gamegold 5.6.0 → 5.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -201,7 +201,7 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
201
201
  * pkg.js - package constants
202
202
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
203
203
  * https://github.com/bookmansoft/gamegold
204
- */t.protocol="vallnet",t.version="5.6.0",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
204
+ */t.protocol="vallnet",t.version="5.6.1",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
205
205
  /*!
206
206
  * common.js - p2p constants for vallnet
207
207
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -424,7 +424,7 @@ function r(e){let t=null;var i=r.list[e.contract.options.type];return i?new(t=i.
424
424
  *
425
425
  * @note 为了让打包程序正常工作,没有使用自动化方案来引入类文件
426
426
  */
427
- const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.oper){case r.cpRegister:return i(192);case r.cpChange:return i(194);case r.coinbase:return i(195);case r.contractPromise:return i(196);case r.scRegister:return i(199);case r.scUpdate:return i(200);case r.scState:return i(201);case r.scRun:return i(202);case r.scNotify:return i(208);case r.propFound:return i(209);case r.vote:return i(210);case r.propSale:return i(211);case r.notify:return i(212);case r.contractCreate:return i(213);case r.contractExecute:return i(214);case r.erIssue:return i(215);case r.erAbolish:return i(216);case r.enchanceCp:return i(217);default:try{return i(581)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const{nestingExtentCodes:a,unspendableCodes:s,opcodes:n}=i(19),o=i(117),c=i(3),u=i(118);e.exports=class extends r{async insert(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashMem.has(t)||this.setOutputIndex(e,i)&&(await o(e).insert(),e.env.middleHashMem.add(t))}}async erase(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashMem.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).erase()}async confirm(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashChain.has(t)||this.setOutputIndex(e,i)&&(await o(e).confirm(),e.env.middleHashChain.add(t))}}async unconfirm(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashChain.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).unconfirm()}async verify(){var e=this.getOpt();if(!u.unittest){let u=!0;var t=this.options.env.node;if(t)for(let p=0;p<e.tx.inputs.length;p++){var i=e.tx.inputs[p].prevout,r=await t.getMeta(i.hash);if(r&&r.tx){var h=o({env:this,tx:r.tx,hash:r.tx.hash("hex"),i:i.index,output:r.tx.outputs[i.index],type:r.tx.outputs[i.index].getReturnType(),data:r.tx.outputs[i.index].getReturnData(a)});switch(h.options.type){case n.OP_PROPCREATE:case n.OP_PROPEXCHANGE:{let t=!1;if(1!=e.tx.inputs.length||e.tx.inputs[0].prevout.hash==c.NULL_HASH||1!=e.tx.outputs.length||e.tx.outputs[0].getReturnType(s)){for(let i=0;i<e.tx.outputs.length;i++)if(this.setOutputIndex(e,i)){var l=o(e);if(l.options.type==n.OP_PROPEXCHANGE&&l.options.data.pid==h.options.data.pid){t=!0;break}}t||(u=!1)}else t=!0}}}if(!u)break}if(!u)return!1}for(let t=0;t<e.tx.outputs.length;t++)if(this.setOutputIndex(e,t)&&1!=await o(e).verify())return!1;return!0}getOpt(){return{env:this.options.env,tx:this.options.tx,block:this.options.block,height:this.options.coinbaseHeight,hash:this.options.hash}}setOutputIndex(e,t){return e.i=t,e.output=e.tx.outputs[t],e.type=e.output.getReturnType(),e.data=e.output.getReturnData(a),!!e.data}}},function(e,t,i){const{ContractEnvType:r,PropStatus:a}=i(5);var s=i(52);const n=i(7),o=i(118);e.exports=class extends s{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,block:o,tx:c}=this.options,u=await e.propList.getVp(s.pid);!u||u.current.hash==n&&u.current.index==t?(s.current={hash:n,index:t,address:i.getAddress().toString()},s.height=0<e.curHeight?e.curHeight+1:0,s.pst=a.Ready,s.gold=i.value,await e.propList.setVp(s,c),e.mode==r.Block&&(i={pid:s.pid,oid:s.oid,cid:s.cid,dst:s.current.address,time:o.time,height:s.height,value:s.gold},e.node.transmit("prop.create",i))):e.logger.warning("PropCreate.conflict",s.pid,", height: ",o?o.height:0,"mode: ",e.mode,n,t,u.current.hash,u.current.index)}async unconfirm(){var{env:e,i:t,data:i,hash:a}=this.options,s=await e.propList.getVp(i.pid);s&&s.current.hash==a&&s.current.index==t&&(await e.propList.delVp(s),e.mode==r.Block)&&(a={pid:i.pid},e.node.transmit("prop.uncreate",a))}async verify(){var{env:e,output:t,data:i}=this.options;if(!o.unittest){var r=e.cpList.getItem(i.cid);if(!r||r.current.address!=t.getAddress().toString())return"PropCreate.errorAddress"}return t.value<n.MINPROPVALUE?"PropCreate.MINPROPVALUE":!e.network.tokenReg.test(i.pid)||"PropCreate.invalidPid"}}},function(e,t,i){const r=i(5).ContractEnvType;i=i(52);e.exports=class extends i{async confirm(){var{env:e,i:t,output:i,data:a,hash:s,block:n}=this.options;e.mode==r.Block&&(a={data:a,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:n.time,current:{hash:s,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.confirm",a))}async unconfirm(){var{env:e,i:t,output:i,data:a,hash:s,block:n}=this.options;e.mode==r.Block&&(a={data:a,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:n.time,current:{hash:s,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.unconfirm",a))}async verify(){return!0}}},function(e,t,i){const r=i(0),a=i(19).opcodes,s=i(44).broadcast,n=i(132).vpItem;var o=i(52);const{ContractEnvType:c,PropStatus:u}=i(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:i,data:r,hash:o,tx:h,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(r.pid);if(p&&(p.current.hash!=r.prev.hash||p.current.index!=r.prev.index))return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);p=new n({pid:r.pid,cid:r.cid,oid:r.oid,gold:i.value,current:{hash:o,index:t,address:i.getAddress().toString()},height:0<e.curHeight?e.curHeight+1:0,pst:u.Ready,wid:0,account:""}),await e.propList.setVp(p,h),p={pid:p.pid,address:p.current.address,wid:p.wid,account:p.account,time:l.time,height:p.height,cid:p.cid},e.emit("prop/receive",p),s("prop/receive",p)}else{if(!(p=await e.propList.getVp(r.pid))||p.current.hash!=r.prev.hash||p.current.index!=r.prev.index)return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);var d,f=p.current.address,m=i.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=0<e.curHeight?e.curHeight+1:0,p.pst=u.Ready,await e.propList.setVp(p,h),e.mode==c.Block){if(p.cid==e.network.genesisId){for(d of(await e.propList.getVpByAddress(f)).list){if(d.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(f)}e.voteMgr.addTokenAddress(m)}m={pid:p.pid,oid:p.oid,cid:p.cid,src:f,dst:m,time:l.time,height:p.height},e.node.transmit("prop.exchange",m)}}let g=0,v=r;for(;i&&i.getReturnType(a.OP_PROPEXCHANGE)&&g++<2e3;){var y=v.prev,b=(e.middleHashChain.add(y.hash+y.index.toString()),await e.finder(y.hash));if(!b)break;if(i=b.outputs[y.index],!(v=i.getReturnData())||!v.prev||e.middleHashChain.has(v.prev.hash+v.prev.index.toString()))break}}async unconfirm(){var{env:e,data:t}=this.options,i=await e.finder(t.prev.hash);if(i&&i.outputs[t.prev.index]&&(n=i.outputs[t.prev.index]).getReturnData([a.OP_PROPEXCHANGE,a.OP_PROPCREATE])){var r=await e.propList.getVp(t.pid);if(r){var s,n=n.getAddress().toString(),o=r.current.address,u=r.height;if(r.current.hash=t.prev.hash,r.current.index=t.prev.index,r.current.address=n,await e.propList.setVp(r,i),e.mode==c.Block){if(r.cid==e.network.genesisId){for(s of(await e.propList.getVpByAddress(o)).list){if(s.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(o)}e.voteMgr.addTokenAddress(n)}t={pid:r.pid,src:o,dst:n,height:u},e.node.transmit("prop.unexchange",t)}}}}async verify(){var{env:e,tx:t,i:i,data:a}=this.options;return r.strictEqual(a.prev.hash,t.inputs[i].prevout.hash),r.strictEqual(a.prev.index,t.inputs[i].prevout.index),await e.propList.getVp(a.pid),!0}}},function(e,t,i){var r=i(14);const a=i(5).ContractEnvType,s=i(37).VerifyError;var{}=i(19);const n=i(193);e.exports=class extends r{async insert(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=-1,await e.cpMemList.addItem(r)}async erase(){var e=this.options.env,t=this.data;await e.cpMemList.delItem(t)}async confirm(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=this.options.coinbaseHeight,r.status=1,await e.cpList.addItem(r),await e.cpMemList.delItem(r),e.mode==a.Block&&(i={cid:r.cid,name:r.name,address:r.current.address},e.node.transmit("cp.create",i))}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpMemList.addItem(t),await e.cpList.delItem(t),e.mode==a.Block&&(t={cid:t.cid},e.node.transmit("cp.uncreate",t))}async verify(){var e=this.options.env,t=this.options.tx;if(!this.data)throw new s(t,"invalid","null cpRegister data",100);var i=n.verifyDataFormat(this.data);if(i)throw new s(t,"invalid",i,100);if((this.mode!=a.Block||"spv"!=e.node.nodeType)&&(i=this.mode!=a.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:i,cid:this.data.cid,name:this.data.name,oper:this.data.oper}]})))throw new s(t,"invalid info on "+this.data.oper,"cp.create",0);return!0}}},function(e,t,i){"use strict";
427
+ const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.oper){case r.cpRegister:return i(192);case r.cpChange:return i(194);case r.coinbase:return i(195);case r.contractPromise:return i(196);case r.scRegister:return i(199);case r.scUpdate:return i(200);case r.scState:return i(201);case r.scRun:return i(202);case r.scNotify:return i(208);case r.propFound:return i(209);case r.vote:return i(210);case r.propSale:return i(211);case r.notify:return i(212);case r.contractCreate:return i(213);case r.contractExecute:return i(214);case r.erIssue:return i(215);case r.erAbolish:return i(216);case r.enchanceCp:return i(217);default:try{return i(581)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const{nestingExtentCodes:a,unspendableCodes:s,opcodes:n}=i(19),o=i(117),c=i(3),u=i(118);e.exports=class extends r{async insert(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashMem.has(t)||this.setOutputIndex(e,i)&&(await o(e).insert(),e.env.middleHashMem.add(t))}}async erase(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashMem.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).erase()}async confirm(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashChain.has(t)||this.setOutputIndex(e,i)&&(await o(e).confirm(),e.env.middleHashChain.add(t))}}async unconfirm(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashChain.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).unconfirm()}async verify(){var e=this.getOpt();if(!u.unittest){let u=!0;var t=this.options.env.node;if(t)for(let p=0;p<e.tx.inputs.length;p++){var i=e.tx.inputs[p].prevout,r=await t.getMeta(i.hash);if(r&&r.tx){var h=o({env:this,tx:r.tx,hash:r.tx.hash("hex"),i:i.index,output:r.tx.outputs[i.index],type:r.tx.outputs[i.index].getReturnType(),data:r.tx.outputs[i.index].getReturnData(a)});switch(h.options.type){case n.OP_PROPCREATE:case n.OP_PROPEXCHANGE:{let t=!1;if(1!=e.tx.inputs.length||e.tx.inputs[0].prevout.hash==c.NULL_HASH||1!=e.tx.outputs.length||e.tx.outputs[0].getReturnType(s)){for(let i=0;i<e.tx.outputs.length;i++)if(this.setOutputIndex(e,i)){var l=o(e);if(l.options.type==n.OP_PROPEXCHANGE&&l.options.data.pid==h.options.data.pid){t=!0;break}}t||(u=!1)}else t=!0}}}if(!u)break}if(!u)return!1}for(let t=0;t<e.tx.outputs.length;t++)if(this.setOutputIndex(e,t)&&1!=await o(e).verify())return!1;return!0}getOpt(){return{env:this.options.env,tx:this.options.tx,block:this.options.block,height:this.options.coinbaseHeight,hash:this.options.hash}}setOutputIndex(e,t){return e.i=t,e.output=e.tx.outputs[t],e.type=e.output.getReturnType(),e.data=e.output.getReturnData(a),!!e.data}}},function(e,t,i){const{ContractEnvType:r,PropStatus:a}=i(5);var s=i(52);const n=i(7),o=i(118);e.exports=class extends s{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,block:o,tx:c}=this.options,u=await e.propList.getVp(s.pid);!u||u.current.hash==n&&u.current.index==t?(s.current={hash:n,index:t,address:i.getAddress().toString()},s.height=0<e.curHeight?e.curHeight+1:0,s.pst=a.Ready,s.gold=i.value,await e.propList.setVp(s,c),e.mode==r.Block&&(i={pid:s.pid,oid:s.oid,cid:s.cid,dst:s.current.address,time:o.time,height:s.height,value:s.gold},e.node.transmit("prop.create",i))):e.logger.warning("PropCreate.conflict",s.pid,", height: ",o?o.height:0,"mode: ",e.mode,n,t,u.current.hash,u.current.index)}async unconfirm(){var{env:e,i:t,data:i,hash:a}=this.options,s=await e.propList.getVp(i.pid);s&&s.current.hash==a&&s.current.index==t&&(await e.propList.delVp(s),e.mode==r.Block)&&(a={pid:i.pid},e.node.transmit("prop.uncreate",a))}async verify(){var{env:e,output:t,data:i}=this.options;if(!o.unittest){var r=e.cpList.getItem(i.cid);if(!r||r.current.address!=t.getAddress().toString())return"PropCreate.errorAddress"}return t.value<n.MINPROPVALUE?"PropCreate.MINPROPVALUE":!e.network.tokenReg.test(i.pid)||"PropCreate.invalidPid"}}},function(e,t,i){const r=i(5).ContractEnvType;i=i(52);e.exports=class extends i{async confirm(){var{env:e,i:t,output:i,data:a,hash:s,block:n}=this.options;e.mode==r.Block&&(a={data:a,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:n.time,current:{hash:s,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.confirm",a))}async unconfirm(){var{env:e,i:t,output:i,data:a,hash:s,block:n}=this.options;e.mode==r.Block&&(a={data:a,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:n.time,current:{hash:s,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.unconfirm",a))}async verify(){return!0}}},function(e,t,i){const r=i(0),a=i(19).opcodes,s=i(44).broadcast,n=i(132).vpItem;var o=i(52);const{ContractEnvType:c,PropStatus:u}=i(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:i,data:r,hash:o,tx:h,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(r.pid);if(p&&(p.current.hash!=r.prev.hash||p.current.index!=r.prev.index))return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);p=new n({pid:r.pid,cid:r.cid,oid:r.oid,gold:i.value,current:{hash:o,index:t,address:i.getAddress().toString()},height:0<e.curHeight?e.curHeight+1:0,pst:u.Ready,wid:0,account:""}),await e.propList.setVp(p,h),p={pid:p.pid,address:p.current.address,wid:p.wid,account:p.account,time:l.time,height:p.height,cid:p.cid},e.emit("prop/receive",p),s("prop/receive",p)}else{if(!(p=await e.propList.getVp(r.pid))||p.current.hash!=r.prev.hash||p.current.index!=r.prev.index)return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);var d,f=p.current.address,m=i.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=0<e.curHeight?e.curHeight+1:0,p.pst=u.Ready,await e.propList.setVp(p,h),e.mode==c.Block){if(p.cid==e.network.genesisId){for(d of(await e.propList.getVpByAddress(f)).list){if(d.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(f)}e.voteMgr.addTokenAddress(m)}m={pid:p.pid,oid:p.oid,cid:p.cid,src:f,dst:m,time:l.time,height:p.height,hash:p.current.hash,index:p.current.index},e.node.transmit("prop.exchange",m)}}let g=0,v=r;for(;i&&i.getReturnType(a.OP_PROPEXCHANGE)&&g++<2e3;){var y=v.prev,b=(e.middleHashChain.add(y.hash+y.index.toString()),await e.finder(y.hash));if(!b)break;if(i=b.outputs[y.index],!(v=i.getReturnData())||!v.prev||e.middleHashChain.has(v.prev.hash+v.prev.index.toString()))break}}async unconfirm(){var{env:e,data:t}=this.options,i=await e.finder(t.prev.hash);if(i&&i.outputs[t.prev.index]&&(n=i.outputs[t.prev.index]).getReturnData([a.OP_PROPEXCHANGE,a.OP_PROPCREATE])){var r=await e.propList.getVp(t.pid);if(r){var s,n=n.getAddress().toString(),o=r.current.address,u=r.height;if(r.current.hash=t.prev.hash,r.current.index=t.prev.index,r.current.address=n,await e.propList.setVp(r,i),e.mode==c.Block){if(r.cid==e.network.genesisId){for(s of(await e.propList.getVpByAddress(o)).list){if(s.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(o)}e.voteMgr.addTokenAddress(n)}t={pid:r.pid,src:o,dst:n,height:u},e.node.transmit("prop.unexchange",t)}}}}async verify(){var{env:e,tx:t,i:i,data:a}=this.options;return r.strictEqual(a.prev.hash,t.inputs[i].prevout.hash),r.strictEqual(a.prev.index,t.inputs[i].prevout.index),await e.propList.getVp(a.pid),!0}}},function(e,t,i){var r=i(14);const a=i(5).ContractEnvType,s=i(37).VerifyError;var{}=i(19);const n=i(193);e.exports=class extends r{async insert(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=-1,await e.cpMemList.addItem(r)}async erase(){var e=this.options.env,t=this.data;await e.cpMemList.delItem(t)}async confirm(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=this.options.coinbaseHeight,r.status=1,await e.cpList.addItem(r),await e.cpMemList.delItem(r),e.mode==a.Block&&(i={cid:r.cid,name:r.name,address:r.current.address},e.node.transmit("cp.create",i))}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpMemList.addItem(t),await e.cpList.delItem(t),e.mode==a.Block&&(t={cid:t.cid},e.node.transmit("cp.uncreate",t))}async verify(){var e=this.options.env,t=this.options.tx;if(!this.data)throw new s(t,"invalid","null cpRegister data",100);var i=n.verifyDataFormat(this.data);if(i)throw new s(t,"invalid",i,100);if((this.mode!=a.Block||"spv"!=e.node.nodeType)&&(i=this.mode!=a.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:i,cid:this.data.cid,name:this.data.name,oper:this.data.oper}]})))throw new s(t,"invalid info on "+this.data.oper,"cp.create",0);return!0}}},function(e,t,i){"use strict";
428
428
  /*!
429
429
  * cpHelper.js
430
430
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
package/lib/gamegold.js CHANGED
@@ -211,7 +211,7 @@ let r=[];[i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),i(567),
211
211
  * pkg.js - package constants
212
212
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
213
213
  * https://github.com/bookmansoft/gamegold
214
- */t.protocol="vallnet",t.version="5.6.0",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
214
+ */t.protocol="vallnet",t.version="5.6.1",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
215
215
  /*!
216
216
  * common.js - p2p constants for vallnet
217
217
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -438,7 +438,7 @@ function r(e){let t=null;var i=r.list[e.contract.options.type];return i?new(t=i.
438
438
  *
439
439
  * @note 为了让打包程序正常工作,没有使用自动化方案来引入类文件
440
440
  */
441
- const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.oper){case r.cpRegister:return i(192);case r.cpChange:return i(194);case r.coinbase:return i(195);case r.contractPromise:return i(196);case r.scRegister:return i(199);case r.scUpdate:return i(200);case r.scState:return i(201);case r.scRun:return i(202);case r.scNotify:return i(208);case r.propFound:return i(209);case r.vote:return i(210);case r.propSale:return i(211);case r.notify:return i(212);case r.contractCreate:return i(213);case r.contractExecute:return i(214);case r.erIssue:return i(215);case r.erAbolish:return i(216);case r.enchanceCp:return i(217);default:try{return i(581)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const{nestingExtentCodes:s,unspendableCodes:n,opcodes:a}=i(19),o=i(117),c=i(3),h=i(118);e.exports=class extends r{async insert(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashMem.has(t)||this.setOutputIndex(e,i)&&(await o(e).insert(),e.env.middleHashMem.add(t))}}async erase(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashMem.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).erase()}async confirm(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashChain.has(t)||this.setOutputIndex(e,i)&&(await o(e).confirm(),e.env.middleHashChain.add(t))}}async unconfirm(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashChain.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).unconfirm()}async verify(){var e=this.getOpt();if(!h.unittest){let h=!0;var t=this.options.env.node;if(t)for(let p=0;p<e.tx.inputs.length;p++){var i=e.tx.inputs[p].prevout,r=await t.getMeta(i.hash);if(r&&r.tx){var u=o({env:this,tx:r.tx,hash:r.tx.hash("hex"),i:i.index,output:r.tx.outputs[i.index],type:r.tx.outputs[i.index].getReturnType(),data:r.tx.outputs[i.index].getReturnData(s)});switch(u.options.type){case a.OP_PROPCREATE:case a.OP_PROPEXCHANGE:{let t=!1;if(1!=e.tx.inputs.length||e.tx.inputs[0].prevout.hash==c.NULL_HASH||1!=e.tx.outputs.length||e.tx.outputs[0].getReturnType(n)){for(let i=0;i<e.tx.outputs.length;i++)if(this.setOutputIndex(e,i)){var l=o(e);if(l.options.type==a.OP_PROPEXCHANGE&&l.options.data.pid==u.options.data.pid){t=!0;break}}t||(h=!1)}else t=!0}}}if(!h)break}if(!h)return!1}for(let t=0;t<e.tx.outputs.length;t++)if(this.setOutputIndex(e,t)&&1!=await o(e).verify())return!1;return!0}getOpt(){return{env:this.options.env,tx:this.options.tx,block:this.options.block,height:this.options.coinbaseHeight,hash:this.options.hash}}setOutputIndex(e,t){return e.i=t,e.output=e.tx.outputs[t],e.type=e.output.getReturnType(),e.data=e.output.getReturnData(s),!!e.data}}},function(e,t,i){const{ContractEnvType:r,PropStatus:s}=i(5);var n=i(52);const a=i(7),o=i(118);e.exports=class extends n{async confirm(){var{env:e,i:t,output:i,data:n,hash:a,block:o,tx:c}=this.options,h=await e.propList.getVp(n.pid);!h||h.current.hash==a&&h.current.index==t?(n.current={hash:a,index:t,address:i.getAddress().toString()},n.height=0<e.curHeight?e.curHeight+1:0,n.pst=s.Ready,n.gold=i.value,await e.propList.setVp(n,c),e.mode==r.Block&&(i={pid:n.pid,oid:n.oid,cid:n.cid,dst:n.current.address,time:o.time,height:n.height,value:n.gold},e.node.transmit("prop.create",i))):e.logger.warning("PropCreate.conflict",n.pid,", height: ",o?o.height:0,"mode: ",e.mode,a,t,h.current.hash,h.current.index)}async unconfirm(){var{env:e,i:t,data:i,hash:s}=this.options,n=await e.propList.getVp(i.pid);n&&n.current.hash==s&&n.current.index==t&&(await e.propList.delVp(n),e.mode==r.Block)&&(s={pid:i.pid},e.node.transmit("prop.uncreate",s))}async verify(){var{env:e,output:t,data:i}=this.options;if(!o.unittest){var r=e.cpList.getItem(i.cid);if(!r||r.current.address!=t.getAddress().toString())return"PropCreate.errorAddress"}return t.value<a.MINPROPVALUE?"PropCreate.MINPROPVALUE":!e.network.tokenReg.test(i.pid)||"PropCreate.invalidPid"}}},function(e,t,i){const r=i(5).ContractEnvType;i=i(52);e.exports=class extends i{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,block:a}=this.options;e.mode==r.Block&&(s={data:s,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:a.time,current:{hash:n,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.confirm",s))}async unconfirm(){var{env:e,i:t,output:i,data:s,hash:n,block:a}=this.options;e.mode==r.Block&&(s={data:s,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:a.time,current:{hash:n,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.unconfirm",s))}async verify(){return!0}}},function(e,t,i){const r=i(0),s=i(19).opcodes,n=i(44).broadcast,a=i(132).vpItem;var o=i(52);const{ContractEnvType:c,PropStatus:h}=i(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:i,data:r,hash:o,tx:u,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(r.pid);if(p&&(p.current.hash!=r.prev.hash||p.current.index!=r.prev.index))return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);p=new a({pid:r.pid,cid:r.cid,oid:r.oid,gold:i.value,current:{hash:o,index:t,address:i.getAddress().toString()},height:0<e.curHeight?e.curHeight+1:0,pst:h.Ready,wid:0,account:""}),await e.propList.setVp(p,u),p={pid:p.pid,address:p.current.address,wid:p.wid,account:p.account,time:l.time,height:p.height,cid:p.cid},e.emit("prop/receive",p),n("prop/receive",p)}else{if(!(p=await e.propList.getVp(r.pid))||p.current.hash!=r.prev.hash||p.current.index!=r.prev.index)return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);var d,f=p.current.address,m=i.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=0<e.curHeight?e.curHeight+1:0,p.pst=h.Ready,await e.propList.setVp(p,u),e.mode==c.Block){if(p.cid==e.network.genesisId){for(d of(await e.propList.getVpByAddress(f)).list){if(d.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(f)}e.voteMgr.addTokenAddress(m)}m={pid:p.pid,oid:p.oid,cid:p.cid,src:f,dst:m,time:l.time,height:p.height},e.node.transmit("prop.exchange",m)}}let g=0,y=r;for(;i&&i.getReturnType(s.OP_PROPEXCHANGE)&&g++<2e3;){var v=y.prev,b=(e.middleHashChain.add(v.hash+v.index.toString()),await e.finder(v.hash));if(!b)break;if(i=b.outputs[v.index],!(y=i.getReturnData())||!y.prev||e.middleHashChain.has(y.prev.hash+y.prev.index.toString()))break}}async unconfirm(){var{env:e,data:t}=this.options,i=await e.finder(t.prev.hash);if(i&&i.outputs[t.prev.index]&&(a=i.outputs[t.prev.index]).getReturnData([s.OP_PROPEXCHANGE,s.OP_PROPCREATE])){var r=await e.propList.getVp(t.pid);if(r){var n,a=a.getAddress().toString(),o=r.current.address,h=r.height;if(r.current.hash=t.prev.hash,r.current.index=t.prev.index,r.current.address=a,await e.propList.setVp(r,i),e.mode==c.Block){if(r.cid==e.network.genesisId){for(n of(await e.propList.getVpByAddress(o)).list){if(n.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(o)}e.voteMgr.addTokenAddress(a)}t={pid:r.pid,src:o,dst:a,height:h},e.node.transmit("prop.unexchange",t)}}}}async verify(){var{env:e,tx:t,i:i,data:s}=this.options;return r.strictEqual(s.prev.hash,t.inputs[i].prevout.hash),r.strictEqual(s.prev.index,t.inputs[i].prevout.index),await e.propList.getVp(s.pid),!0}}},function(e,t,i){var r=i(14);const s=i(5).ContractEnvType,n=i(37).VerifyError;var{}=i(19);const a=i(193);e.exports=class extends r{async insert(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=-1,await e.cpMemList.addItem(r)}async erase(){var e=this.options.env,t=this.data;await e.cpMemList.delItem(t)}async confirm(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=this.options.coinbaseHeight,r.status=1,await e.cpList.addItem(r),await e.cpMemList.delItem(r),e.mode==s.Block&&(i={cid:r.cid,name:r.name,address:r.current.address},e.node.transmit("cp.create",i))}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpMemList.addItem(t),await e.cpList.delItem(t),e.mode==s.Block&&(t={cid:t.cid},e.node.transmit("cp.uncreate",t))}async verify(){var e=this.options.env,t=this.options.tx;if(!this.data)throw new n(t,"invalid","null cpRegister data",100);var i=a.verifyDataFormat(this.data);if(i)throw new n(t,"invalid",i,100);if((this.mode!=s.Block||"spv"!=e.node.nodeType)&&(i=this.mode!=s.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:i,cid:this.data.cid,name:this.data.name,oper:this.data.oper}]})))throw new n(t,"invalid info on "+this.data.oper,"cp.create",0);return!0}}},function(e,t,i){"use strict";
441
+ const r=i(5).ContractType;e.exports=function(e){if(!e)return i(188);switch(e.oper){case r.cpRegister:return i(192);case r.cpChange:return i(194);case r.coinbase:return i(195);case r.contractPromise:return i(196);case r.scRegister:return i(199);case r.scUpdate:return i(200);case r.scState:return i(201);case r.scRun:return i(202);case r.scNotify:return i(208);case r.propFound:return i(209);case r.vote:return i(210);case r.propSale:return i(211);case r.notify:return i(212);case r.contractCreate:return i(213);case r.contractExecute:return i(214);case r.erIssue:return i(215);case r.erAbolish:return i(216);case r.enchanceCp:return i(217);default:try{return i(581)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const{nestingExtentCodes:s,unspendableCodes:n,opcodes:a}=i(19),o=i(117),c=i(3),h=i(118);e.exports=class extends r{async insert(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashMem.has(t)||this.setOutputIndex(e,i)&&(await o(e).insert(),e.env.middleHashMem.add(t))}}async erase(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashMem.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).erase()}async confirm(){var e=this.getOpt();for(let i=0;i<e.tx.outputs.length;i++){var t=""+e.hash+i;e.env.middleHashChain.has(t)||this.setOutputIndex(e,i)&&(await o(e).confirm(),e.env.middleHashChain.add(t))}}async unconfirm(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)e.env.middleHashChain.delete(""+e.hash+t),this.setOutputIndex(e,t)&&await o(e).unconfirm()}async verify(){var e=this.getOpt();if(!h.unittest){let h=!0;var t=this.options.env.node;if(t)for(let p=0;p<e.tx.inputs.length;p++){var i=e.tx.inputs[p].prevout,r=await t.getMeta(i.hash);if(r&&r.tx){var u=o({env:this,tx:r.tx,hash:r.tx.hash("hex"),i:i.index,output:r.tx.outputs[i.index],type:r.tx.outputs[i.index].getReturnType(),data:r.tx.outputs[i.index].getReturnData(s)});switch(u.options.type){case a.OP_PROPCREATE:case a.OP_PROPEXCHANGE:{let t=!1;if(1!=e.tx.inputs.length||e.tx.inputs[0].prevout.hash==c.NULL_HASH||1!=e.tx.outputs.length||e.tx.outputs[0].getReturnType(n)){for(let i=0;i<e.tx.outputs.length;i++)if(this.setOutputIndex(e,i)){var l=o(e);if(l.options.type==a.OP_PROPEXCHANGE&&l.options.data.pid==u.options.data.pid){t=!0;break}}t||(h=!1)}else t=!0}}}if(!h)break}if(!h)return!1}for(let t=0;t<e.tx.outputs.length;t++)if(this.setOutputIndex(e,t)&&1!=await o(e).verify())return!1;return!0}getOpt(){return{env:this.options.env,tx:this.options.tx,block:this.options.block,height:this.options.coinbaseHeight,hash:this.options.hash}}setOutputIndex(e,t){return e.i=t,e.output=e.tx.outputs[t],e.type=e.output.getReturnType(),e.data=e.output.getReturnData(s),!!e.data}}},function(e,t,i){const{ContractEnvType:r,PropStatus:s}=i(5);var n=i(52);const a=i(7),o=i(118);e.exports=class extends n{async confirm(){var{env:e,i:t,output:i,data:n,hash:a,block:o,tx:c}=this.options,h=await e.propList.getVp(n.pid);!h||h.current.hash==a&&h.current.index==t?(n.current={hash:a,index:t,address:i.getAddress().toString()},n.height=0<e.curHeight?e.curHeight+1:0,n.pst=s.Ready,n.gold=i.value,await e.propList.setVp(n,c),e.mode==r.Block&&(i={pid:n.pid,oid:n.oid,cid:n.cid,dst:n.current.address,time:o.time,height:n.height,value:n.gold},e.node.transmit("prop.create",i))):e.logger.warning("PropCreate.conflict",n.pid,", height: ",o?o.height:0,"mode: ",e.mode,a,t,h.current.hash,h.current.index)}async unconfirm(){var{env:e,i:t,data:i,hash:s}=this.options,n=await e.propList.getVp(i.pid);n&&n.current.hash==s&&n.current.index==t&&(await e.propList.delVp(n),e.mode==r.Block)&&(s={pid:i.pid},e.node.transmit("prop.uncreate",s))}async verify(){var{env:e,output:t,data:i}=this.options;if(!o.unittest){var r=e.cpList.getItem(i.cid);if(!r||r.current.address!=t.getAddress().toString())return"PropCreate.errorAddress"}return t.value<a.MINPROPVALUE?"PropCreate.MINPROPVALUE":!e.network.tokenReg.test(i.pid)||"PropCreate.invalidPid"}}},function(e,t,i){const r=i(5).ContractEnvType;i=i(52);e.exports=class extends i{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,block:a}=this.options;e.mode==r.Block&&(s={data:s,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:a.time,current:{hash:n,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.confirm",s))}async unconfirm(){var{env:e,i:t,output:i,data:s,hash:n,block:a}=this.options;e.mode==r.Block&&(s={data:s,height:0<e.curHeight?e.curHeight+1:0,gold:i.value,time:a.time,current:{hash:n,index:t,address:i.getAddress().toString()}},e.node.transmit("attach.unconfirm",s))}async verify(){return!0}}},function(e,t,i){const r=i(0),s=i(19).opcodes,n=i(44).broadcast,a=i(132).vpItem;var o=i(52);const{ContractEnvType:c,PropStatus:h}=i(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:i,data:r,hash:o,tx:u,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(r.pid);if(p&&(p.current.hash!=r.prev.hash||p.current.index!=r.prev.index))return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);p=new a({pid:r.pid,cid:r.cid,oid:r.oid,gold:i.value,current:{hash:o,index:t,address:i.getAddress().toString()},height:0<e.curHeight?e.curHeight+1:0,pst:h.Ready,wid:0,account:""}),await e.propList.setVp(p,u),p={pid:p.pid,address:p.current.address,wid:p.wid,account:p.account,time:l.time,height:p.height,cid:p.cid},e.emit("prop/receive",p),n("prop/receive",p)}else{if(!(p=await e.propList.getVp(r.pid))||p.current.hash!=r.prev.hash||p.current.index!=r.prev.index)return void e.logger.warning("PropExchange.conflict",r.pid,", height: ",l?l.height:0,"mode: ",e.mode,"sim: ",o,t,"ori: ",p.current.hash,p.current.index);var d,f=p.current.address,m=i.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=0<e.curHeight?e.curHeight+1:0,p.pst=h.Ready,await e.propList.setVp(p,u),e.mode==c.Block){if(p.cid==e.network.genesisId){for(d of(await e.propList.getVpByAddress(f)).list){if(d.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(f)}e.voteMgr.addTokenAddress(m)}m={pid:p.pid,oid:p.oid,cid:p.cid,src:f,dst:m,time:l.time,height:p.height,hash:p.current.hash,index:p.current.index},e.node.transmit("prop.exchange",m)}}let g=0,y=r;for(;i&&i.getReturnType(s.OP_PROPEXCHANGE)&&g++<2e3;){var v=y.prev,b=(e.middleHashChain.add(v.hash+v.index.toString()),await e.finder(v.hash));if(!b)break;if(i=b.outputs[v.index],!(y=i.getReturnData())||!y.prev||e.middleHashChain.has(y.prev.hash+y.prev.index.toString()))break}}async unconfirm(){var{env:e,data:t}=this.options,i=await e.finder(t.prev.hash);if(i&&i.outputs[t.prev.index]&&(a=i.outputs[t.prev.index]).getReturnData([s.OP_PROPEXCHANGE,s.OP_PROPCREATE])){var r=await e.propList.getVp(t.pid);if(r){var n,a=a.getAddress().toString(),o=r.current.address,h=r.height;if(r.current.hash=t.prev.hash,r.current.index=t.prev.index,r.current.address=a,await e.propList.setVp(r,i),e.mode==c.Block){if(r.cid==e.network.genesisId){for(n of(await e.propList.getVpByAddress(o)).list){if(n.cid==e.network.genesisId)break;e.voteMgr.delTokenAddress(o)}e.voteMgr.addTokenAddress(a)}t={pid:r.pid,src:o,dst:a,height:h},e.node.transmit("prop.unexchange",t)}}}}async verify(){var{env:e,tx:t,i:i,data:s}=this.options;return r.strictEqual(s.prev.hash,t.inputs[i].prevout.hash),r.strictEqual(s.prev.index,t.inputs[i].prevout.index),await e.propList.getVp(s.pid),!0}}},function(e,t,i){var r=i(14);const s=i(5).ContractEnvType,n=i(37).VerifyError;var{}=i(19);const a=i(193);e.exports=class extends r{async insert(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=-1,await e.cpMemList.addItem(r)}async erase(){var e=this.options.env,t=this.data;await e.cpMemList.delItem(t)}async confirm(){var e=this.options.env,t=this.options.tx,i=t.hash("hex"),r=this.data;r.current={hash:i,index:0,address:t.outputs[0].getAddress().toString()},r.height=this.options.coinbaseHeight,r.status=1,await e.cpList.addItem(r),await e.cpMemList.delItem(r),e.mode==s.Block&&(i={cid:r.cid,name:r.name,address:r.current.address},e.node.transmit("cp.create",i))}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpMemList.addItem(t),await e.cpList.delItem(t),e.mode==s.Block&&(t={cid:t.cid},e.node.transmit("cp.uncreate",t))}async verify(){var e=this.options.env,t=this.options.tx;if(!this.data)throw new n(t,"invalid","null cpRegister data",100);var i=a.verifyDataFormat(this.data);if(i)throw new n(t,"invalid",i,100);if((this.mode!=s.Block||"spv"!=e.node.nodeType)&&(i=this.mode!=s.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:i,cid:this.data.cid,name:this.data.name,oper:this.data.oper}]})))throw new n(t,"invalid info on "+this.data.oper,"cp.create",0);return!0}}},function(e,t,i){"use strict";
442
442
  /*!
443
443
  * cpHelper.js
444
444
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gamegold",
3
- "version": "5.6.0",
3
+ "version": "5.6.2",
4
4
  "description": "Vallnet Core",
5
5
  "license": "MIT",
6
6
  "repository": "git://github.com/bookmansoft/gamegold",