gamegold 5.0.10 → 5.0.11

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.
@@ -196,7 +196,7 @@ let i=[];[r(557),r(558),r(559),r(560),r(561),r(562),r(563),r(564),r(565),r(566),
196
196
  * pkg.js - package constants
197
197
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
198
198
  * https://github.com/bookmansoft/gamegold
199
- */t.protocol="vallnet",t.version="v5.0.10",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,r){"use strict";
199
+ */t.protocol="vallnet",t.version="v5.0.11",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,r){"use strict";
200
200
  /*!
201
201
  * common.js - p2p constants for vallnet
202
202
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -424,7 +424,7 @@ function i(e){let t=null;var r=i.list[e.contract.options.type];return r?new(t=r.
424
424
  *
425
425
  * @note 为了让打包程序正常工作,没有使用自动化方案来引入类文件
426
426
  */
427
- const i=r(5).ContractType;e.exports=function(e){if(!e)return r(188);switch(e.oper){case i.cpRegister:return r(191);case i.cpChange:return r(193);case i.coinbase:return r(194);case i.contractPromise:return r(195);case i.scRegister:return r(198);case i.scUpdate:return r(199);case i.scState:return r(200);case i.scRun:return r(201);case i.scNotify:return r(207);case i.propFound:return r(208);case i.vote:return r(209);case i.propSale:return r(210);case i.notify:return r(211);case i.contractCreate:return r(212);case i.contractExecute:return r(213);case i.erIssue:return r(214);case i.erAbolish:return r(215);case i.enchanceCp:return r(216);default:try{return r(580)("./"+e.oper)}catch(e){return r(14)}}}},function(e,t,r){var i=r(14);const a=r(20).nestingCodes,s=r(117);e.exports=class extends i{async insert(){var e=this.getOpt();for(let r=0;r<e.tx.outputs.length;r++){var t=""+e.hash+r;e.env.middleHashMem.has(t)||this.setOptIndex(e,r)&&(await s(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.setOptIndex(e,t)&&await s(e).erase()}async confirm(){var e=this.getOpt();for(let r=0;r<e.tx.outputs.length;r++){var t=""+e.hash+r;e.env.middleHashChain.has(t)||this.setOptIndex(e,r)&&(await s(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.setOptIndex(e,t)&&await s(e).unconfirm()}async verify(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)if(this.setOptIndex(e,t)&&!await s(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}}setOptIndex(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,r){const i=r(5).PropStatus;var a=r(58);const s=r(7),n=r(147);e.exports=class extends a{async confirm(){var{env:e,i:t,output:r,data:a,hash:s,tx:n}=this.options,o=await e.propList.getVp(a.pid);o&&(o.current.hash!=s||o.current.index!=t)||(a.current={hash:s,index:t,address:r.getAddress().toString()},a.height=0<e.curHeight?e.curHeight+1:0,a.pst=i.Ready,a.gold=r.value,await e.propList.setVp(a,n))}async unconfirm(){var e,{env:t,i:r,data:e,hash:i}=this.options;(e=await t.propList.getVp(e.pid))&&e.current.hash==i&&e.current.index==r&&await t.propList.delVp(e)}async verify(){var{env:e,i:t,output:r,data:i,hash:a}=this.options;if(!n.unittest){var o=e.cpList.getItem(i.cid);if(!o||o.current.address!=r.getAddress().toString())return!1}return!(r.value<s.MINPROPVALUE||e.network.tokenReg.test(i.pid)||(o=await e.propList.getVp(i.pid))&&(o.current.hash!=a||o.current.index!=t))}}},function(e,t,r){const i=r(0),a=r(20).opcodes,s=r(43).broadcast,n=r(131).vpItem;var o=r(58);const{ContractEnvType:c,PropStatus:u}=r(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:r,data:i,hash:o,tx:h,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(i.pid);if(p&&(p.current.hash!=i.prev.hash||p.current.index!=i.prev.index))return;p=new n({pid:i.pid,cid:i.cid,oid:i.oid,gold:r.value,current:{hash:o,index:t,address:r.getAddress().toString()},height:e.curHeight,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(i.pid))||p.current.hash!=i.prev.hash||p.current.index!=i.prev.index)return;p.current.address;var d=r.getAddress().toString();p.current={hash:o,index:t,address:d},p.height=e.curHeight,p.pst=u.Ready,await e.propList.setVp(p,h)}let f=0,m=i;for(;r&&r.getReturnType(a.OP_PROPEXCHANGE)&&f++<2e3;){var g=m.prev,y=(e.middleHashChain.add(g.hash+g.index.toString()),await e.finder(g.hash));if(!y)break;if(r=y.outputs[g.index],!(m=r.getReturnData())||!m.prev||e.middleHashChain.has(m.prev.hash+m.prev.index.toString()))break}}async unconfirm(){var e,t,{env:r,data:i}=this.options,s=await r.finder(i.prev.hash);s&&s.outputs[i.prev.index]&&(t=s.outputs[i.prev.index]).getReturnData([a.OP_PROPEXCHANGE,a.OP_PROPCREATE])&&(e=await r.propList.getVp(i.pid))&&(t=t.getAddress().toString(),e.current.address,e.current.hash=i.prev.hash,e.current.index=i.prev.index,e.current.address=t,await r.propList.setVp(e,s),r.mode,c.Block)}async verify(){var{env:e,tx:t,i:r,data:a}=this.options,t=(i.strictEqual(a.prev.hash,t.inputs[r].prevout.hash),i.strictEqual(a.prev.index,t.inputs[r].prevout.index),await e.propList.getVp(a.pid));if(e.mode==c.Wallet){if(t&&(t.current.hash!=a.prev.hash||t.current.index!=a.prev.index))return!1}else{if(!t)return!1;t.current.hash!=a.prev.hash&&e.logger.warning("not equals:",a.pid,t.current.hash,a.prev.hash),i(t.current.hash==a.prev.hash),i(t.current.index==a.prev.index)}return!0}}},function(e,t,r){var i=r(14);const a=r(5).ContractEnvType,s=r(36).VerifyError;var{}=r(20);const n=r(192);e.exports=class extends i{async insert(){var e=this.options.env,t=this.options.tx,r=t.hash("hex"),i=this.data;i.current={hash:r,index:0,address:t.outputs[0].getAddress().toString()},i.height=-1,await e.cpMemList.addItem(i)}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,r=t.hash("hex"),i=this.data;i.current={hash:r,index:0,address:t.outputs[0].getAddress().toString()},i.height=this.options.coinbaseHeight,i.status=1,await e.cpList.addItem(i),this.mode==a.Block&&await e.chain.node.mempool.cpMemList.delItem(i)}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpList.delItem(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 r=n.verifyDataFormat(this.data);if(r)throw new s(t,"invalid",r,100);if((this.mode!=a.Block||"spv"!=e.node.nodeType)&&(r=this.mode!=a.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:r,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,r){"use strict";
427
+ const i=r(5).ContractType;e.exports=function(e){if(!e)return r(188);switch(e.oper){case i.cpRegister:return r(191);case i.cpChange:return r(193);case i.coinbase:return r(194);case i.contractPromise:return r(195);case i.scRegister:return r(198);case i.scUpdate:return r(199);case i.scState:return r(200);case i.scRun:return r(201);case i.scNotify:return r(207);case i.propFound:return r(208);case i.vote:return r(209);case i.propSale:return r(210);case i.notify:return r(211);case i.contractCreate:return r(212);case i.contractExecute:return r(213);case i.erIssue:return r(214);case i.erAbolish:return r(215);case i.enchanceCp:return r(216);default:try{return r(580)("./"+e.oper)}catch(e){return r(14)}}}},function(e,t,r){var i=r(14);const a=r(20).nestingCodes,s=r(117);e.exports=class extends i{async insert(){var e=this.getOpt();for(let r=0;r<e.tx.outputs.length;r++){var t=""+e.hash+r;e.env.middleHashMem.has(t)||this.setOptIndex(e,r)&&(await s(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.setOptIndex(e,t)&&await s(e).erase()}async confirm(){var e=this.getOpt();for(let r=0;r<e.tx.outputs.length;r++){var t=""+e.hash+r;e.env.middleHashChain.has(t)||this.setOptIndex(e,r)&&(await s(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.setOptIndex(e,t)&&await s(e).unconfirm()}async verify(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)if(this.setOptIndex(e,t)&&!await s(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}}setOptIndex(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,r){const i=r(5).PropStatus;var a=r(58);const s=r(7),n=r(147);e.exports=class extends a{async confirm(){var{env:e,i:t,output:r,data:a,hash:s,tx:n}=this.options,o=await e.propList.getVp(a.pid);o&&(o.current.hash!=s||o.current.index!=t)||(a.current={hash:s,index:t,address:r.getAddress().toString()},a.height=0<e.curHeight?e.curHeight+1:0,a.pst=i.Ready,a.gold=r.value,await e.propList.setVp(a,n))}async unconfirm(){var e,{env:t,i:r,data:e,hash:i}=this.options;(e=await t.propList.getVp(e.pid))&&e.current.hash==i&&e.current.index==r&&await t.propList.delVp(e)}async verify(){var{env:e,i:t,output:r,data:i,hash:a}=this.options;if(!n.unittest){var o=e.cpList.getItem(i.cid);if(!o||o.current.address!=r.getAddress().toString())return!1}return!(r.value<s.MINPROPVALUE||e.network.tokenReg.test(i.pid)||(o=await e.propList.getVp(i.pid))&&(o.current.hash!=a||o.current.index!=t))}}},function(e,t,r){const i=r(0),a=r(20).opcodes,s=r(43).broadcast,n=r(131).vpItem;var o=r(58);const{ContractEnvType:c,PropStatus:u}=r(5);e.exports=class extends o{async confirm(){let{env:e,i:t,output:r,data:i,hash:o,tx:h,block:l}=this.options;if(e.mode==c.Wallet){var p=await e.propList.getVp(i.pid);if(p&&(p.current.hash!=i.prev.hash||p.current.index!=i.prev.index))return;p=new n({pid:i.pid,cid:i.cid,oid:i.oid,gold:r.value,current:{hash:o,index:t,address:r.getAddress().toString()},height:e.curHeight,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(i.pid))||p.current.hash!=i.prev.hash||p.current.index!=i.prev.index)return;var d,f=p.current.address,m=r.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=e.curHeight,p.pst=u.Ready,await e.propList.setVp(p,h),e.mode==c.Block&&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)}}let g=0,y=i;for(;r&&r.getReturnType(a.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(r=b.outputs[v.index],!(y=r.getReturnData())||!y.prev||e.middleHashChain.has(y.prev.hash+y.prev.index.toString()))break}}async unconfirm(){var{env:e,data:t}=this.options,r=await e.finder(t.prev.hash);if(r&&r.outputs[t.prev.index]&&(n=r.outputs[t.prev.index]).getReturnData([a.OP_PROPEXCHANGE,a.OP_PROPCREATE])){var i=await e.propList.getVp(t.pid);if(i){var s,n=n.getAddress().toString(),o=i.current.address;if(i.current.hash=t.prev.hash,i.current.index=t.prev.index,i.current.address=n,await e.propList.setVp(i,r),e.mode==c.Block&&i.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)}}}}async verify(){var{env:e,tx:t,i:r,data:a}=this.options,t=(i.strictEqual(a.prev.hash,t.inputs[r].prevout.hash),i.strictEqual(a.prev.index,t.inputs[r].prevout.index),await e.propList.getVp(a.pid));if(e.mode==c.Wallet){if(t&&(t.current.hash!=a.prev.hash||t.current.index!=a.prev.index))return!1}else{if(!t)return!1;t.current.hash!=a.prev.hash&&e.logger.warning("not equals:",a.pid,t.current.hash,a.prev.hash),i(t.current.hash==a.prev.hash),i(t.current.index==a.prev.index)}return!0}}},function(e,t,r){var i=r(14);const a=r(5).ContractEnvType,s=r(36).VerifyError;var{}=r(20);const n=r(192);e.exports=class extends i{async insert(){var e=this.options.env,t=this.options.tx,r=t.hash("hex"),i=this.data;i.current={hash:r,index:0,address:t.outputs[0].getAddress().toString()},i.height=-1,await e.cpMemList.addItem(i)}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,r=t.hash("hex"),i=this.data;i.current={hash:r,index:0,address:t.outputs[0].getAddress().toString()},i.height=this.options.coinbaseHeight,i.status=1,await e.cpList.addItem(i),this.mode==a.Block&&await e.chain.node.mempool.cpMemList.delItem(i)}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpList.delItem(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 r=n.verifyDataFormat(this.data);if(r)throw new s(t,"invalid",r,100);if((this.mode!=a.Block||"spv"!=e.node.nodeType)&&(r=this.mode!=a.Mempool,!await e.rpcExecute({method:"canExecute",params:[{confirm:r,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,r){"use strict";
428
428
  /*!
429
429
  * cpHelper.js
430
430
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
package/lib/gamegold.js CHANGED
@@ -206,7 +206,7 @@ let r=[];[i(557),i(558),i(559),i(560),i(561),i(562),i(563),i(564),i(565),i(566),
206
206
  * pkg.js - package constants
207
207
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
208
208
  * https://github.com/bookmansoft/gamegold
209
- */t.protocol="vallnet",t.version="v5.0.10",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
209
+ */t.protocol="vallnet",t.version="v5.0.11",t.url="https://github.com/bookmansoft/gamegold"},function(e,t,i){"use strict";
210
210
  /*!
211
211
  * common.js - p2p constants for vallnet
212
212
  * 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(191);case r.cpChange:return i(193);case r.coinbase:return i(194);case r.contractPromise:return i(195);case r.scRegister:return i(198);case r.scUpdate:return i(199);case r.scState:return i(200);case r.scRun:return i(201);case r.scNotify:return i(207);case r.propFound:return i(208);case r.vote:return i(209);case r.propSale:return i(210);case r.notify:return i(211);case r.contractCreate:return i(212);case r.contractExecute:return i(213);case r.erIssue:return i(214);case r.erAbolish:return i(215);case r.enchanceCp:return i(216);default:try{return i(580)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const s=i(20).nestingCodes,n=i(117);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.setOptIndex(e,i)&&(await n(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.setOptIndex(e,t)&&await n(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.setOptIndex(e,i)&&(await n(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.setOptIndex(e,t)&&await n(e).unconfirm()}async verify(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)if(this.setOptIndex(e,t)&&!await n(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}}setOptIndex(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 r=i(5).PropStatus;var s=i(58);const n=i(7),a=i(147);e.exports=class extends s{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,tx:a}=this.options,o=await e.propList.getVp(s.pid);o&&(o.current.hash!=n||o.current.index!=t)||(s.current={hash:n,index:t,address:i.getAddress().toString()},s.height=0<e.curHeight?e.curHeight+1:0,s.pst=r.Ready,s.gold=i.value,await e.propList.setVp(s,a))}async unconfirm(){var e,{env:t,i:i,data:e,hash:r}=this.options;(e=await t.propList.getVp(e.pid))&&e.current.hash==r&&e.current.index==i&&await t.propList.delVp(e)}async verify(){var{env:e,i:t,output:i,data:r,hash:s}=this.options;if(!a.unittest){var o=e.cpList.getItem(r.cid);if(!o||o.current.address!=i.getAddress().toString())return!1}return!(i.value<n.MINPROPVALUE||e.network.tokenReg.test(r.pid)||(o=await e.propList.getVp(r.pid))&&(o.current.hash!=s||o.current.index!=t))}}},function(e,t,i){const r=i(0),s=i(20).opcodes,n=i(43).broadcast,a=i(131).vpItem;var o=i(58);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;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:e.curHeight,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;p.current.address;var d=i.getAddress().toString();p.current={hash:o,index:t,address:d},p.height=e.curHeight,p.pst=h.Ready,await e.propList.setVp(p,u)}let f=0,m=r;for(;i&&i.getReturnType(s.OP_PROPEXCHANGE)&&f++<2e3;){var g=m.prev,y=(e.middleHashChain.add(g.hash+g.index.toString()),await e.finder(g.hash));if(!y)break;if(i=y.outputs[g.index],!(m=i.getReturnData())||!m.prev||e.middleHashChain.has(m.prev.hash+m.prev.index.toString()))break}}async unconfirm(){var e,t,{env:i,data:r}=this.options,n=await i.finder(r.prev.hash);n&&n.outputs[r.prev.index]&&(t=n.outputs[r.prev.index]).getReturnData([s.OP_PROPEXCHANGE,s.OP_PROPCREATE])&&(e=await i.propList.getVp(r.pid))&&(t=t.getAddress().toString(),e.current.address,e.current.hash=r.prev.hash,e.current.index=r.prev.index,e.current.address=t,await i.propList.setVp(e,n),i.mode,c.Block)}async verify(){var{env:e,tx:t,i:i,data:s}=this.options,t=(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));if(e.mode==c.Wallet){if(t&&(t.current.hash!=s.prev.hash||t.current.index!=s.prev.index))return!1}else{if(!t)return!1;t.current.hash!=s.prev.hash&&e.logger.warning("not equals:",s.pid,t.current.hash,s.prev.hash),r(t.current.hash==s.prev.hash),r(t.current.index==s.prev.index)}return!0}}},function(e,t,i){var r=i(14);const s=i(5).ContractEnvType,n=i(36).VerifyError;var{}=i(20);const a=i(192);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),this.mode==s.Block&&await e.chain.node.mempool.cpMemList.delItem(r)}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpList.delItem(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(191);case r.cpChange:return i(193);case r.coinbase:return i(194);case r.contractPromise:return i(195);case r.scRegister:return i(198);case r.scUpdate:return i(199);case r.scState:return i(200);case r.scRun:return i(201);case r.scNotify:return i(207);case r.propFound:return i(208);case r.vote:return i(209);case r.propSale:return i(210);case r.notify:return i(211);case r.contractCreate:return i(212);case r.contractExecute:return i(213);case r.erIssue:return i(214);case r.erAbolish:return i(215);case r.enchanceCp:return i(216);default:try{return i(580)("./"+e.oper)}catch(e){return i(14)}}}},function(e,t,i){var r=i(14);const s=i(20).nestingCodes,n=i(117);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.setOptIndex(e,i)&&(await n(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.setOptIndex(e,t)&&await n(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.setOptIndex(e,i)&&(await n(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.setOptIndex(e,t)&&await n(e).unconfirm()}async verify(){var e=this.getOpt();for(let t=0;t<e.tx.outputs.length;t++)if(this.setOptIndex(e,t)&&!await n(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}}setOptIndex(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 r=i(5).PropStatus;var s=i(58);const n=i(7),a=i(147);e.exports=class extends s{async confirm(){var{env:e,i:t,output:i,data:s,hash:n,tx:a}=this.options,o=await e.propList.getVp(s.pid);o&&(o.current.hash!=n||o.current.index!=t)||(s.current={hash:n,index:t,address:i.getAddress().toString()},s.height=0<e.curHeight?e.curHeight+1:0,s.pst=r.Ready,s.gold=i.value,await e.propList.setVp(s,a))}async unconfirm(){var e,{env:t,i:i,data:e,hash:r}=this.options;(e=await t.propList.getVp(e.pid))&&e.current.hash==r&&e.current.index==i&&await t.propList.delVp(e)}async verify(){var{env:e,i:t,output:i,data:r,hash:s}=this.options;if(!a.unittest){var o=e.cpList.getItem(r.cid);if(!o||o.current.address!=i.getAddress().toString())return!1}return!(i.value<n.MINPROPVALUE||e.network.tokenReg.test(r.pid)||(o=await e.propList.getVp(r.pid))&&(o.current.hash!=s||o.current.index!=t))}}},function(e,t,i){const r=i(0),s=i(20).opcodes,n=i(43).broadcast,a=i(131).vpItem;var o=i(58);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;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:e.curHeight,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;var d,f=p.current.address,m=i.getAddress().toString();if(p.current={hash:o,index:t,address:m},p.height=e.curHeight,p.pst=h.Ready,await e.propList.setVp(p,u),e.mode==c.Block&&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)}}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;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&&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)}}}}async verify(){var{env:e,tx:t,i:i,data:s}=this.options,t=(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));if(e.mode==c.Wallet){if(t&&(t.current.hash!=s.prev.hash||t.current.index!=s.prev.index))return!1}else{if(!t)return!1;t.current.hash!=s.prev.hash&&e.logger.warning("not equals:",s.pid,t.current.hash,s.prev.hash),r(t.current.hash==s.prev.hash),r(t.current.index==s.prev.index)}return!0}}},function(e,t,i){var r=i(14);const s=i(5).ContractEnvType,n=i(36).VerifyError;var{}=i(20);const a=i(192);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),this.mode==s.Block&&await e.chain.node.mempool.cpMemList.delItem(r)}async unconfirm(){var e=this.options.env,t=this.data;this.options.tx,await e.cpList.delItem(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.0.10",
3
+ "version": "5.0.11",
4
4
  "description": "Vallnet Core",
5
5
  "license": "MIT",
6
6
  "repository": "git://github.com/bookmansoft/gamegold",