diff --git a/Data/js/jcwallet.js b/Data/js/jcwallet.js index 1cb680b..5e03aae 100644 --- a/Data/js/jcwallet.js +++ b/Data/js/jcwallet.js @@ -132,7 +132,7 @@ version: 2.9.0 `;return r+=e.wordwrap(this.getPrivateBaseKeyB64())+` `,r+="-----END RSA PRIVATE KEY-----",r},e.prototype.getPublicKey=function(){var r=`-----BEGIN PUBLIC KEY----- `;return r+=e.wordwrap(this.getPublicBaseKeyB64())+` -`,r+="-----END PUBLIC KEY-----",r},e.hasPublicKeyProperty=function(r){return r=r||{},r.hasOwnProperty("n")&&r.hasOwnProperty("e")},e.hasPrivateKeyProperty=function(r){return r=r||{},r.hasOwnProperty("n")&&r.hasOwnProperty("e")&&r.hasOwnProperty("d")&&r.hasOwnProperty("p")&&r.hasOwnProperty("q")&&r.hasOwnProperty("dmp1")&&r.hasOwnProperty("dmq1")&&r.hasOwnProperty("coeff")},e.prototype.parsePropertiesFrom=function(r){this.n=r.n,this.e=r.e,r.hasOwnProperty("d")&&(this.d=r.d,this.p=r.p,this.q=r.q,this.dmp1=r.dmp1,this.dmq1=r.dmq1,this.coeff=r.coeff)},e}(q_0),ry,G_0=typeof Fe<"u"?(ry=Fe.env)===null||ry===void 0?void 0:ry.npm_package_version:void 0,Z_0=function(){function t(e){e===void 0&&(e={}),e=e||{},this.default_key_size=e.default_key_size?parseInt(e.default_key_size,10):1024,this.default_public_exponent=e.default_public_exponent||"010001",this.log=e.log||!1,this.key=null}return t.prototype.setKey=function(e){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new KD(e)},t.prototype.setPrivateKey=function(e){this.setKey(e)},t.prototype.setPublicKey=function(e){this.setKey(e)},t.prototype.decrypt=function(e){try{return this.getKey().decrypt(DD(e))}catch{return!1}},t.prototype.encrypt=function(e){try{return Ah(this.getKey().encrypt(e))}catch{return!1}},t.prototype.sign=function(e,r,a){try{return Ah(this.getKey().sign(e,r,a))}catch{return!1}},t.prototype.verify=function(e,r,a){try{return this.getKey().verify(e,DD(r),a)}catch{return!1}},t.prototype.getKey=function(e){if(!this.key){if(this.key=new KD,e&&{}.toString.call(e)==="[object Function]"){this.key.generateAsync(this.default_key_size,this.default_public_exponent,e);return}this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version=G_0,t}();function Y_0(t){return a_0(t).toString()}function J_0(t){return r_0(t).toString()}function VD(t){const e=i_0(t).toString(),r=C1.enc.Base64.parse(e),a=r.clone();return a.sigBytes=16,a.words.splice(4),{keyHex:r,ivHex:a}}function ay(t,e){const{keyHex:r,ivHex:a}=VD(e),f=C1.enc.Utf8.parse(t);return C1.AES.encrypt(f,r,{iv:a,mode:C1.mode.CBC,padding:C1.pad.Pkcs7}).toString()}function iy(t,e){const{keyHex:r,ivHex:a}=VD(e),f=C1.AES.decrypt(t,r,{iv:a,mode:C1.mode.CBC,padding:C1.pad.Pkcs7});return C1.enc.Utf8.stringify(f)}function WD(t,e){var r=new Z_0;return e?(e.startsWith("-----BEGIN PUBLIC KEY-----")||(e=window.atob(e)),r.setPublicKey(e),r.encrypt(t)):!1}function GD(){return zr()}var X_0=Object.freeze({__proto__:null,aesDecrypt:iy,aesEncrypt:ay,md5Hash:J_0,randomId:GD,rsaEncryptJs:WD,sha1Hash:Y_0}),Q_0=Object.defineProperty,eM0=Object.getOwnPropertyDescriptor,tM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?eM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&Q_0(e,r,f),f};let bf=class{constructor(){this._event=nh()}_subscribeToResponse(t,e){this._event.on(`response:${t}`,e)}_subscribeToCallResponse(t){return new Promise((e,r)=>{this._subscribeToResponse(t,a=>{if(a.errcode){r(a.errmessage||a.errcode);return}e(a.data)})})}handleNativeCallback(...t){let e=t[0],r=JSON.parse(t[1]);this._event.emit(`response:${e}`,r)}signWithGoogle(){let t=zr();return jsb.signWithGoogle(t),this._subscribeToCallResponse(t)}signWithApple(){let t=zr();return jsb.signWithApple(t),this._subscribeToCallResponse(t)}signWithTikTok(){let t=zr();return jsb.signWithTikTok(t),this._subscribeToCallResponse(t)}signWithFacebook(){let t=zr();return jsb.signWithFacebook(t),this._subscribeToCallResponse(t)}signWithTwitter(){let t=zr();return jsb.signWithTwitter(t),this._subscribeToCallResponse(t)}signWithEmail(){let t=zr();return jsb.signWithEmail(t),this._subscribeToCallResponse(t)}signOutGoogle(){let t=zr();return jsb.signOutGoogle(t),this._subscribeToCallResponse(t)}scanQRCode(t){let e=zr();return jsb.scanQRCode(e,t),this._subscribeToCallResponse(e)}buyProduct(t,e){let r=zr();return jsb.beginBuy(r,t,e),this._subscribeToCallResponse(r)}queryPurchase(){let t=zr();return jsb.queryPurchase(t),this._subscribeToCallResponse(t)}queryProducts(t){let e=zr();return jsb.queryProducts(e,t),this._subscribeToCallResponse(e)}finishTransaction(t){let e=zr();return jsb.finishTransaction(e,t),this._subscribeToCallResponse(e)}authGetStoragePass(t){let e=zr();return jsb.authGetStoragePass(e,t),this._subscribeToCallResponse(e)}passStorageState(t){let e=zr();return jsb.passStorageState(e,t),this._subscribeToCallResponse(e)}storagePass(t,e){let r=zr();return jsb.storagePass(r,t,e),this._subscribeToCallResponse(r)}clientLogin(){let t=zr();return jsb.getClientId(t),this._subscribeToCallResponse(t)}};bf=tM0([$c],bf);function rM0(t){const e=`${Hr()}/wallet/login/general`;return Rr(e,t)}function aM0(){const t=`${Hr()}/wallet/info`;return fh(t)}function iM0(t){const e=`${Hr()}/wallet/info`;return Rr(e,t)}function nM0(){const t=`${Hr()}/wallet/reset`;return Rr(t,{})}function fM0(){const t=`${Hr()}/wallet/account/reset`;return Rr(t,{})}function cM0(){const t=`${Hr()}/wallet/third/nonce`;return fh(t)}function Rh(t,e=3,r=[],a=0){return new Promise((f,n)=>{t().then(f).catch(l=>{(r.length==0||r.indexOf(l.constructor)!==-1)&&a++{Rh(t,e,r,a).then(f).catch(m=>n(m))},Math.floor(Math.random()*Math.pow(2,a)*400)):n(l)})})}class Xt{constructor(e,r){this.statusCode=e,this.message=r}}function oM0(){const t=`${Hr()}/wallet/info/email`;return fh(t)}function dM0(t){const e=`${Hr()}/email/send_code`;return Rr(e,t)}function sM0(t){const e=`${Hr()}/email/verify_by_code`;return Rr(e,t)}function uM0(t){const e=`${Hr()}/email/check`;return Rr(e,t)}function bM0(t){const e=`${Hr()}/email/regist`;return Rr(e,t)}function hM0(t){const e=`${Hr()}/wallet/login/email`;return Rr(e,t)}var Do=(t=>(t[t.GOOGLE=0]="GOOGLE",t[t.APPLE=1]="APPLE",t[t.TIKTOK=2]="TIKTOK",t[t.FACEBOOK=3]="FACEBOOK",t[t.TWITTER=4]="TWITTER",t[t.TELEGRAM=5]="TELEGRAM",t[t.EMAIL=6]="EMAIL",t[t.DISCORD=7]="DISCORD",t[t.CLIENT=10]="CLIENT",t[t.RELAY_WALLET=11]="RELAY_WALLET",t[t.WC=12]="WC",t[t.EXTERNAL_WALLET=13]="EXTERNAL_WALLET",t))(Do||{});const lM0=new Map([[Do.GOOGLE,"signWithGoogle"],[Do.APPLE,"signWithApple"],[Do.FACEBOOK,"signWithFacebook"],[Do.TIKTOK,"signWithTikTok"],[Do.TWITTER,"signWithTwitter"],[Do.CLIENT,"clientLogin"]]);async function Oh(){let t=new oa,e=await Rh(()=>aM0(),cN);if(e.errcode)throw new Xt(e.errcode,e.errmsg);t.address=e.data.address,t.key=e.data.key,t.salt=e.data.salt}async function ZD(t){const e=await rM0(t);if(window.debug&&console.log(e),window.debug&&console.log("wallet token: "+e.data?.token),e.errcode||!e.data?.token)throw new Xt(e.errcode,e.errmsg);return new oa().token=e.data.token,pM0(e.data.token,t.channel),e.data.token}function xM0(t){const e=`wallet_token_${t}`;if(window.debug){let r=localStorage.getItem(e);if(r&&!pN(60,r))return new oa().token=r,r}}function pM0(t,e){const r=`wallet_token_${e}`;window.debug&&localStorage.setItem(r,t)}async function YD(t,e){let r=new oa;const a=lM0.get(t);if(!a)throw new Xt(100,"channel not support");if(!xM0(t)){const f=await new bf()[a]();await ZD({channel:t,code:f,account:e})}return await Oh(),{token:r.token,address:r.address}}async function vM0(t,e){e=jsb.hashSvrPass(e);let r=await hM0({email:t,password:e});if(r.errcode||!r.data?.token)throw new Xt(r.errcode,r.errmsg);let a=new oa;return a.token=r.data.token,await Oh(),{token:a.token,address:a.address}}async function mM0(t){let e=new oa,r=await JD(t);if(e.address&&e.address!==r)throw new Xt(10,"address not match, perhaps wrong password");return e.address||Rh(()=>iM0({address:r}),Bg0),e.address=r,r}async function JD(t){let e=new oa;e.key||await Oh();let{id:r,openid:a}=e.tokenData;return jsb.prepareWallet(r,a,e.key,e.salt,t)}async function gM0(t){let e=await JD(t);return new oa().address===e}function yM0(t){let e=new oa;if(!e.address||!e.key)throw new Xt(10,"wallet not found");let{id:r,openid:a}=e.tokenData,f=jsb.walletSecKey(r,a,e.key,e.salt,t),n=JSON.parse(f);if(n.address!==e.address)throw new Xt(11,"address not match, perhaps wrong password");return n.key}async function wM0(t){console.log("found web login scheme, begin login")}function _M0(t){let e=Xg0(t);if(e)switch(t.replace(e+"://",""),e){case"weblogin":wM0();break}}var MM0=Object.defineProperty,EM0=Object.getOwnPropertyDescriptor,AM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?EM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&MM0(e,r,f),f};let ny=class{async checkEmailVerified(){let t=await oM0();if(t.errcode)throw new Xt(t.errcode,t.errmsg);const{data:e}=t;if(!e)throw new Error("Invalid response from the server");const{verified:r,email:a}=e;if(!a||typeof r!="number")throw new Error("Invalid values returned from server");return{verified:r,email:a}}async sendEmailCode(t,e){let r=await dM0({email:t,type:e});if(console.log(JSON.stringify(r)),r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async updateEmailVerify(t,e){let r=await sM0({email:t,code:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async isEmailRegister(t){let e=await uM0({email:t});if(e.errcode)throw new Xt(e.errcode,e.errmsg);return e.data}async registByEmail(t,e,r){e=jsb.hashSvrPass(e);let a=await bM0({email:t,password:e,code:r});if(a.errcode)throw new Xt(a.errcode,a.errmsg);return a.data}};ny=AM0([$c],ny);function SM0(t){const e=`${C8()}/pay/alchemy/buy`;return Rr(e,t)}function kM0(t,e,r){const a=`${C8()}/pay/alchemy/crypto_price`;return Rr(a,{token:t,chain:e,env:r})}function TM0(){const t=`${C8()}/pay/alchemy/fait_list`;return fh(t)}function XD(t){const e=`${C8()}/pay/google/verify`;return Rr(e,t)}function QD(t){const e=`${C8()}/pay/apple/verify`;return Rr(e,t)}var BM0=Object.defineProperty,PM0=Object.getOwnPropertyDescriptor,CM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?PM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&BM0(e,r,f),f};let d6=class{constructor(){this.priceMap=new Map}async alchemyPrePay(t){t.evn=jc.wallet.env,t.version=dN;let e=await SM0(t);if(e.errcode)throw new Error(e.errmsg);if(!e.data)throw new Error("No data returned");const r=e.data.url;if(!r)throw new Error("No url returned");return console.log("pay url::",r),e.data}async getGasPrice(t){const e=`gasprice_${t}`;if(this.priceMap.has(e))setTimeout(async()=>{let r=await new jc.wallet.web3.eth.getGasPrice;this.priceMap.set(e,r+"")},100);else{let r=await new jc.wallet.web3.eth.getGasPrice;this.priceMap.set(e,r+"")}return console.log("gas price",this.priceMap.get(e)),this.priceMap.get(e)}async updateTokenPrice(t,e,r){const a=`crypto_usd_${t}_${e}_${r}`;let f=await kM0(e,t,r);console.log("ETH price data",JSON.stringify(f));let n=f.data.price;this.priceMap.set(a,n+"")}async queryTokenPrice(t,e,r="release"){t=t.toUpperCase(),e=e.toUpperCase();const a=`crypto_usd_${t}_${e}_${r}`;if(this.priceMap.has(a))setTimeout(async()=>{try{await this.updateTokenPrice(t,e,r)}catch(f){console.log("ETH price err",f)}},100);else try{await this.updateTokenPrice(t,e,r)}catch(f){console.log("ETH price err",f)}return console.log("ETH price",this.priceMap.get(a)),this.priceMap.get(a)}async fetchFiatList(){return TM0()}async queryGoogleProducts(t){return await new bf().queryProducts(t.join(","))}async queryGooglePurchases(){let t=await new bf().queryPurchase(),e=JSON.parse(t+"");if(console.log("query purchase result:: "+e),e.length===0)throw new Xt(10,"no records");let r=await XD({list:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async buyGoogleProduct(t,e){let r=await new bf().buyProduct(t,e),a=JSON.parse(r+"");if(console.log("native buy result:: "+a),a.length===0)throw new Xt(10,"no records");let f=await XD({list:a});if(f.errcode)throw new Xt(f.errcode,f.errmsg);return f.data}async queryIOSProducts(t){return await new bf().queryProducts(t.join(","))}async queryIOSPurchases(){let t=await new bf().queryPurchase(),e=JSON.parse(t+"");if(console.log("query apple purchase result:: "+t),e.length===0)throw new Xt(10,"no records");let r=await QD({list:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);if(r.data.length>0)for(let a=0;a0)for(let n=0;n{for(var f=a>1?void 0:a?RM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&IM0(e,r,f),f};let fy=class{async ethRecords(t,e,r){t=t|0,e=e|0;let a={start:t,limit:e,chain:jc.wallet.currentChain.id};return Object.assign(a,r),mN(a)}async tokenRecords({address:t,tokenId:e,start:r,limit:a,moreParam:f}){r=r|0,a=a|0;let n={start:r,limit:a,chain:jc.wallet.currentChain.id,"details.address":t};return e&&(n["details.id"]=e+""),Object.assign(n,f),mN(n)}};fy=OM0([$c],fy);var R1={},L8={},vs=Lt,NM0=e1.ec,cy=new NM0("secp256k1"),s6=cy.curve;L8.privateKeyExport=function(t,e){var r=new vs(t);if(r.ucmp(s6.n)>=0)throw new Error("couldn't export to DER format");var a=cy.g.mul(r);return e$(a.getX(),a.getY(),e)},L8.privateKeyModInverse=function(t){var e=new vs(t);if(e.ucmp(s6.n)>=0||e.isZero())throw new Error("private key range is invalid");return e.invm(s6.n).toArrayLike(Q,"be",32)},L8.signatureImport=function(t){var e=new vs(t.r);e.ucmp(s6.n)>=0&&(e=new vs(0));var r=new vs(t.s);return r.ucmp(s6.n)>=0&&(r=new vs(0)),Q.concat([e.toArrayLike(Q,"be",32),r.toArrayLike(Q,"be",32)])},L8.ecdhUnsafe=function(t,e,r){var a=cy.keyFromPublic(t),f=new vs(e);if(f.ucmp(s6.n)>=0||f.isZero())throw new Error("scalar was invalid (zero or overflow)");var n=a.pub.mul(f);return e$(n.getX(),n.getY(),r)};var e$=function(e,r,a){var f=void 0;return a?(f=Q.alloc(33),f[0]=r.isOdd()?3:2,e.toArrayLike(Q,"be",32).copy(f,1)):(f=Q.alloc(65),f[0]=4,e.toArrayLike(Q,"be",32).copy(f,1),r.toArrayLike(Q,"be",32).copy(f,33)),f},Nh={},DM0=Q.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),$M0=Q.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);Nh.privateKeyExport=function(t,e,r){var a=Q.from(r?DM0:$M0);return t.copy(a,r?8:9),e.copy(a,r?181:214),a},Nh.privateKeyImport=function(t){var e=t.length,r=0;if(e2||e1?t[r+a-2]<<8:0);return r+=a,e32||ea)||t[f++]!==2)return null;var l=t[f++];if(l&128){if(n=l-128,f+n>a)return null;for(;n>0&&t[f]===0;f+=1,n-=1);for(l=0;n>0;f+=1,n-=1)l=(l<<8)+t[f]}if(l>a-f)return null;var m=f;if(f+=l,t[f++]!==2)return null;var y=t[f++];if(y&128){if(n=y-128,f+n>a)return null;for(;n>0&&t[f]===0;f+=1,n-=1);for(y=0;n>0;f+=1,n-=1)y=(y<<8)+t[f]}if(y>a-f)return null;var _=f;for(f+=y;l>0&&t[m]===0;l-=1,m+=1);if(l>32)return null;var E=t.slice(m,m+l);for(E.copy(e,32-E.length);y>0&&t[_]===0;y-=1,_+=1);if(y>32)return null;var A=t.slice(_,_+y);return A.copy(r,32-A.length),{r:e,s:r}};var Oa=Pi,Dh=L8,oy=Nh,t$=function(e){return e.length!==32?!1:Oa.privateKeyVerify(Uint8Array.from(e))},UM0=function(e,r){if(e.length!==32)throw new RangeError("private key length is invalid");var a=Dh.privateKeyExport(e,r);return oy.privateKeyExport(e,a,r)},LM0=function(e){if(e=oy.privateKeyImport(e),e!==null&&e.length===32&&t$(e))return e;throw new Error("couldn't import from DER format")},FM0=function(e){return Q.from(Oa.privateKeyNegate(Uint8Array.from(e)))},jM0=function(e){if(e.length!==32)throw new Error("private key length is invalid");return Q.from(Dh.privateKeyModInverse(Uint8Array.from(e)))},zM0=function(e,r){return Q.from(Oa.privateKeyTweakAdd(Uint8Array.from(e),r))},qM0=function(e,r){return Q.from(Oa.privateKeyTweakMul(Uint8Array.from(e),Uint8Array.from(r)))},HM0=function(e,r){return Q.from(Oa.publicKeyCreate(Uint8Array.from(e),r))},KM0=function(e,r){return Q.from(Oa.publicKeyConvert(Uint8Array.from(e),r))},VM0=function(e){return e.length!==33&&e.length!==65?!1:Oa.publicKeyVerify(Uint8Array.from(e))},WM0=function(e,r,a){return Q.from(Oa.publicKeyTweakAdd(Uint8Array.from(e),Uint8Array.from(r),a))},GM0=function(e,r,a){return Q.from(Oa.publicKeyTweakMul(Uint8Array.from(e),Uint8Array.from(r),a))},ZM0=function(e,r){var a=[];return e.forEach(function(f){a.push(Uint8Array.from(f))}),Q.from(Oa.publicKeyCombine(a,r))},YM0=function(e){return Q.from(Oa.signatureNormalize(Uint8Array.from(e)))},JM0=function(e){return Q.from(Oa.signatureExport(Uint8Array.from(e)))},XM0=function(e){return Q.from(Oa.signatureImport(Uint8Array.from(e)))},QM0=function(e){if(e.length===0)throw new RangeError("signature length is invalid");var r=oy.signatureImportLax(e);if(r===null)throw new Error("couldn't parse DER signature");return Dh.signatureImport(r)},eE0=function(e,r,a){if(a===null)throw new TypeError("options should be an Object");var f=void 0;if(a){if(f={},a.data===null)throw new TypeError("options.data should be a Buffer");if(a.data){if(a.data.length!==32)throw new RangeError("options.data length is invalid");f.data=new Uint8Array(a.data)}if(a.noncefn===null)throw new TypeError("options.noncefn should be a Function");a.noncefn&&(f.noncefn=function(l,m,y,_,E){var A=y!=null?Q.from(y):null,k=_!=null?Q.from(_):null,P=Q.from("");return a.noncefn&&(P=a.noncefn(Q.from(l),Q.from(m),A,k,E)),Uint8Array.from(P)})}var n=Oa.ecdsaSign(Uint8Array.from(e),Uint8Array.from(r),f);return{signature:Q.from(n.signature),recovery:n.recid}},tE0=function(e,r,a){return Oa.ecdsaVerify(Uint8Array.from(r),Uint8Array.from(e),a)},rE0=function(e,r,a,f){return Q.from(Oa.ecdsaRecover(Uint8Array.from(r),a,Uint8Array.from(e),f))},aE0=function(e,r){return Q.from(Oa.ecdh(Uint8Array.from(e),Uint8Array.from(r),{}))},iE0=function(e,r,a){if(e.length!==33&&e.length!==65)throw new RangeError("public key length is invalid");if(r.length!==32)throw new RangeError("private key length is invalid");return Q.from(Dh.ecdhUnsafe(Uint8Array.from(e),Uint8Array.from(r),a))},nE0={privateKeyVerify:t$,privateKeyExport:UM0,privateKeyImport:LM0,privateKeyNegate:FM0,privateKeyModInverse:jM0,privateKeyTweakAdd:zM0,privateKeyTweakMul:qM0,publicKeyCreate:HM0,publicKeyConvert:KM0,publicKeyVerify:VM0,publicKeyTweakAdd:WM0,publicKeyTweakMul:GM0,publicKeyCombine:ZM0,signatureNormalize:YM0,signatureExport:JM0,signatureImport:XM0,signatureImportLax:QM0,sign:eE0,verify:tE0,recover:rE0,ecdh:aE0,ecdhUnsafe:iE0};(function(t){var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(B){return typeof B}:function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},r=an,a=r.keccak224,f=r.keccak384,n=r.keccak256,l=r.keccak512,m=nE0,y=$r,_=na,E=Lt,A=ui,k=ct.Buffer;Object.assign(t,Un),t.MAX_INTEGER=new E("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",16),t.TWO_POW256=new E("10000000000000000000000000000000000000000000000000000000000000000",16),t.KECCAK256_NULL_S="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",t.SHA3_NULL_S=t.KECCAK256_NULL_S,t.KECCAK256_NULL=k.from(t.KECCAK256_NULL_S,"hex"),t.SHA3_NULL=t.KECCAK256_NULL,t.KECCAK256_RLP_ARRAY_S="1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",t.SHA3_RLP_ARRAY_S=t.KECCAK256_RLP_ARRAY_S,t.KECCAK256_RLP_ARRAY=k.from(t.KECCAK256_RLP_ARRAY_S,"hex"),t.SHA3_RLP_ARRAY=t.KECCAK256_RLP_ARRAY,t.KECCAK256_RLP_S="56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",t.SHA3_RLP_S=t.KECCAK256_RLP_S,t.KECCAK256_RLP=k.from(t.KECCAK256_RLP_S,"hex"),t.SHA3_RLP=t.KECCAK256_RLP,t.BN=E,t.rlp=_,t.secp256k1=m,t.zeros=function(B){return k.allocUnsafe(B).fill(0)},t.zeroAddress=function(){var B=20,I=t.zeros(B);return t.bufferToHex(I)},t.setLengthLeft=t.setLength=function(B,I,O){var H=t.zeros(I);return B=t.toBuffer(B),O?B.length0&&I.toString()==="0";)B=B.slice(1),I=B[0];return B},t.toBuffer=function(B){if(!k.isBuffer(B))if(Array.isArray(B))B=k.from(B);else if(typeof B=="string")t.isHexString(B)?B=k.from(t.padToEven(t.stripHexPrefix(B)),"hex"):B=k.from(B);else if(typeof B=="number")B=t.intToBuffer(B);else if(B==null)B=k.allocUnsafe(0);else if(E.isBN(B))B=B.toArrayLike(k);else if(B.toArray)B=k.from(B.toArray());else throw new Error("invalid type");return B},t.bufferToInt=function(B){return new E(t.toBuffer(B)).toNumber()},t.bufferToHex=function(B){return B=t.toBuffer(B),"0x"+B.toString("hex")},t.fromSigned=function(B){return new E(B).fromTwos(256)},t.toUnsigned=function(B){return k.from(B.toTwos(256).toArray())},t.keccak=function(B,I){switch(B=t.toBuffer(B),I||(I=256),I){case 224:return a(B);case 256:return n(B);case 384:return f(B);case 512:return l(B);default:throw new Error("Invald algorithm: keccak"+I)}},t.keccak256=function(B){return t.keccak(B)},t.sha3=t.keccak,t.sha256=function(B){return B=t.toBuffer(B),A("sha256").update(B).digest()},t.ripemd160=function(B,I){B=t.toBuffer(B);var O=A("rmd160").update(B).digest();return I===!0?t.setLength(O,32):O},t.rlphash=function(B){return t.keccak(_.encode(B))},t.isValidPrivate=function(B){return m.privateKeyVerify(B)},t.isValidPublic=function(B,I){return B.length===64?m.publicKeyVerify(k.concat([k.from([4]),B])):I?m.publicKeyVerify(B):!1},t.pubToAddress=t.publicToAddress=function(B,I){return B=t.toBuffer(B),I&&B.length!==64&&(B=m.publicKeyConvert(B,!1).slice(1)),y(B.length===64),t.keccak(B).slice(-20)};var P=t.privateToPublic=function(B){return B=t.toBuffer(B),m.publicKeyCreate(B,!1).slice(1)};t.importPublic=function(B){return B=t.toBuffer(B),B.length!==64&&(B=m.publicKeyConvert(B,!1).slice(1)),B},t.ecsign=function(B,I){var O=m.sign(B,I),H={};return H.r=O.signature.slice(0,32),H.s=O.signature.slice(32,64),H.v=O.recovery+27,H},t.hashPersonalMessage=function(B){var I=t.toBuffer(`Ethereum Signed Message: +`,r+="-----END PUBLIC KEY-----",r},e.hasPublicKeyProperty=function(r){return r=r||{},r.hasOwnProperty("n")&&r.hasOwnProperty("e")},e.hasPrivateKeyProperty=function(r){return r=r||{},r.hasOwnProperty("n")&&r.hasOwnProperty("e")&&r.hasOwnProperty("d")&&r.hasOwnProperty("p")&&r.hasOwnProperty("q")&&r.hasOwnProperty("dmp1")&&r.hasOwnProperty("dmq1")&&r.hasOwnProperty("coeff")},e.prototype.parsePropertiesFrom=function(r){this.n=r.n,this.e=r.e,r.hasOwnProperty("d")&&(this.d=r.d,this.p=r.p,this.q=r.q,this.dmp1=r.dmp1,this.dmq1=r.dmq1,this.coeff=r.coeff)},e}(q_0),ry,G_0=typeof Fe<"u"?(ry=Fe.env)===null||ry===void 0?void 0:ry.npm_package_version:void 0,Z_0=function(){function t(e){e===void 0&&(e={}),e=e||{},this.default_key_size=e.default_key_size?parseInt(e.default_key_size,10):1024,this.default_public_exponent=e.default_public_exponent||"010001",this.log=e.log||!1,this.key=null}return t.prototype.setKey=function(e){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new KD(e)},t.prototype.setPrivateKey=function(e){this.setKey(e)},t.prototype.setPublicKey=function(e){this.setKey(e)},t.prototype.decrypt=function(e){try{return this.getKey().decrypt(DD(e))}catch{return!1}},t.prototype.encrypt=function(e){try{return Ah(this.getKey().encrypt(e))}catch{return!1}},t.prototype.sign=function(e,r,a){try{return Ah(this.getKey().sign(e,r,a))}catch{return!1}},t.prototype.verify=function(e,r,a){try{return this.getKey().verify(e,DD(r),a)}catch{return!1}},t.prototype.getKey=function(e){if(!this.key){if(this.key=new KD,e&&{}.toString.call(e)==="[object Function]"){this.key.generateAsync(this.default_key_size,this.default_public_exponent,e);return}this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},t.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},t.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},t.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},t.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},t.version=G_0,t}();function Y_0(t){return a_0(t).toString()}function J_0(t){return r_0(t).toString()}function VD(t){const e=i_0(t).toString(),r=C1.enc.Base64.parse(e),a=r.clone();return a.sigBytes=16,a.words.splice(4),{keyHex:r,ivHex:a}}function ay(t,e){const{keyHex:r,ivHex:a}=VD(e),f=C1.enc.Utf8.parse(t);return C1.AES.encrypt(f,r,{iv:a,mode:C1.mode.CBC,padding:C1.pad.Pkcs7}).toString()}function iy(t,e){const{keyHex:r,ivHex:a}=VD(e),f=C1.AES.decrypt(t,r,{iv:a,mode:C1.mode.CBC,padding:C1.pad.Pkcs7});return C1.enc.Utf8.stringify(f)}function WD(t,e){var r=new Z_0;return e?(e.startsWith("-----BEGIN PUBLIC KEY-----")||(e=window.atob(e)),r.setPublicKey(e),r.encrypt(t)):!1}function GD(){return zr()}var X_0=Object.freeze({__proto__:null,aesDecrypt:iy,aesEncrypt:ay,md5Hash:J_0,randomId:GD,rsaEncryptJs:WD,sha1Hash:Y_0}),Q_0=Object.defineProperty,eM0=Object.getOwnPropertyDescriptor,tM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?eM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&Q_0(e,r,f),f};let bf=class{constructor(){this._event=nh()}_subscribeToResponse(t,e){this._event.on(`response:${t}`,e)}_subscribeToCallResponse(t){return new Promise((e,r)=>{this._subscribeToResponse(t,a=>{if(a.errcode){r(a.errmessage||a.errcode);return}e(a.data)})})}handleNativeCallback(...t){let e=t[0],r=JSON.parse(t[1]);this._event.emit(`response:${e}`,r)}signWithGoogle(){let t=zr();return jsb.signWithGoogle(t),this._subscribeToCallResponse(t)}signWithApple(){let t=zr();return jsb.signWithApple(t),this._subscribeToCallResponse(t)}signWithTikTok(){let t=zr();return jsb.signWithTikTok(t),this._subscribeToCallResponse(t)}signWithFacebook(){let t=zr();return jsb.signWithFacebook(t),this._subscribeToCallResponse(t)}signWithTwitter(){let t=zr();return jsb.signWithTwitter(t),this._subscribeToCallResponse(t)}signWithEmail(){let t=zr();return jsb.signWithEmail(t),this._subscribeToCallResponse(t)}signOutGoogle(){let t=zr();return jsb.signOutGoogle(t),this._subscribeToCallResponse(t)}scanQRCode(t){let e=zr();return jsb.scanQRCode(e,t),this._subscribeToCallResponse(e)}buyProduct(t,e){let r=zr();return jsb.beginBuy(r,t,e),this._subscribeToCallResponse(r)}queryPurchase(){let t=zr();return jsb.queryPurchase(t),this._subscribeToCallResponse(t)}queryProducts(t){let e=zr();return jsb.queryProducts(e,t),this._subscribeToCallResponse(e)}finishTransaction(t){let e=zr();return jsb.finishTransaction(e,t),this._subscribeToCallResponse(e)}authGetStoragePass(t){let e=zr();return jsb.authGetStoragePass(e,t),this._subscribeToCallResponse(e)}passStorageState(t){let e=zr();return jsb.passStorageState(e,t),this._subscribeToCallResponse(e)}storagePass(t,e){let r=zr();return jsb.storagePass(r,t,e),this._subscribeToCallResponse(r)}clientLogin(){let t=zr();return jsb.getClientId(t),this._subscribeToCallResponse(t)}};bf=tM0([$c],bf);function rM0(t){const e=`${Hr()}/wallet/login/general`;return Rr(e,t)}function aM0(){const t=`${Hr()}/wallet/info`;return fh(t)}function iM0(t){const e=`${Hr()}/wallet/info`;return Rr(e,t)}function nM0(){const t=`${Hr()}/wallet/reset`;return Rr(t,{})}function fM0(){const t=`${Hr()}/wallet/account/reset`;return Rr(t,{})}function cM0(){const t=`${Hr()}/wallet/third/nonce`;return fh(t)}function Rh(t,e=3,r=[],a=0){return new Promise((f,n)=>{t().then(f).catch(l=>{(r.length==0||r.indexOf(l.constructor)!==-1)&&a++{Rh(t,e,r,a).then(f).catch(m=>n(m))},Math.floor(Math.random()*Math.pow(2,a)*400)):n(l)})})}class Xt{constructor(e,r){this.statusCode=e,this.message=r}}function oM0(){const t=`${Hr()}/wallet/info/email`;return fh(t)}function dM0(t){const e=`${Hr()}/email/send_code`;return Rr(e,t)}function sM0(t){const e=`${Hr()}/email/verify_by_code`;return Rr(e,t)}function uM0(t){const e=`${Hr()}/email/check`;return Rr(e,t)}function bM0(t){const e=`${Hr()}/email/regist`;return Rr(e,t)}function hM0(t){const e=`${Hr()}/wallet/login/email`;return Rr(e,t)}var Do=(t=>(t[t.GOOGLE=0]="GOOGLE",t[t.APPLE=1]="APPLE",t[t.TIKTOK=2]="TIKTOK",t[t.FACEBOOK=3]="FACEBOOK",t[t.TWITTER=4]="TWITTER",t[t.TELEGRAM=5]="TELEGRAM",t[t.EMAIL=6]="EMAIL",t[t.DISCORD=7]="DISCORD",t[t.CLIENT=10]="CLIENT",t[t.RELAY_WALLET=11]="RELAY_WALLET",t[t.WC=12]="WC",t[t.EXTERNAL_WALLET=13]="EXTERNAL_WALLET",t))(Do||{});const lM0=new Map([[Do.GOOGLE,"signWithGoogle"],[Do.APPLE,"signWithApple"],[Do.FACEBOOK,"signWithFacebook"],[Do.TIKTOK,"signWithTikTok"],[Do.TWITTER,"signWithTwitter"],[Do.CLIENT,"clientLogin"]]);async function Oh(){let t=new oa,e=await Rh(()=>aM0(),cN);if(e.errcode)throw new Xt(e.errcode,e.errmsg);t.address=e.data.address,t.key=e.data.key,t.salt=e.data.salt}async function ZD(t){const e=await rM0(t);if(window.debug&&console.log(e),window.debug&&console.log("wallet token: "+e.data?.token),e.errcode||!e.data?.token)throw new Xt(e.errcode,e.errmsg);return new oa().token=e.data.token,pM0(e.data.token,t.channel),e.data.token}function xM0(t){const e=`wallet_token_${t}`;if(window.debug){let r=localStorage.getItem(e);if(r&&!pN(60,r))return new oa().token=r,r}}function pM0(t,e){const r=`wallet_token_${e}`;window.debug&&localStorage.setItem(r,t)}async function YD(t,e){let r=new oa;const a=lM0.get(t);if(!a)throw new Xt(100,"channel not support");if(!xM0(t)){const f=await new bf()[a]();await ZD({channel:t,code:f,account:e})}return await Oh(),{token:r.token,address:r.address}}async function vM0(t,e){e=jsb.hashSvrPass(e);let r=await hM0({email:t,password:e});if(r.errcode||!r.data?.token)throw new Xt(r.errcode,r.errmsg);let a=new oa;return a.token=r.data.token,await Oh(),{token:a.token,address:a.address}}async function mM0(t){let e=new oa,r=await JD(t);if(e.address&&e.address!==r)throw new Xt(10,"address not match, perhaps wrong password");return e.address||Rh(()=>iM0({address:r}),Bg0),e.address=r,r}async function JD(t){let e=new oa;await Oh();let{id:r,openid:a}=e.tokenData;return jsb.prepareWallet(r,a,e.key,e.salt,t)}async function gM0(t){let e=await JD(t);return new oa().address===e}function yM0(t){let e=new oa;if(!e.address||!e.key)throw new Xt(10,"wallet not found");let{id:r,openid:a}=e.tokenData,f=jsb.walletSecKey(r,a,e.key,e.salt,t),n=JSON.parse(f);if(n.address!==e.address)throw new Xt(11,"address not match, perhaps wrong password");return n.key}async function wM0(t){console.log("found web login scheme, begin login")}function _M0(t){let e=Xg0(t);if(e)switch(t.replace(e+"://",""),e){case"weblogin":wM0();break}}var MM0=Object.defineProperty,EM0=Object.getOwnPropertyDescriptor,AM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?EM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&MM0(e,r,f),f};let ny=class{async checkEmailVerified(){let t=await oM0();if(t.errcode)throw new Xt(t.errcode,t.errmsg);const{data:e}=t;if(!e)throw new Error("Invalid response from the server");const{verified:r,email:a}=e;if(!a||typeof r!="number")throw new Error("Invalid values returned from server");return{verified:r,email:a}}async sendEmailCode(t,e){let r=await dM0({email:t,type:e});if(console.log(JSON.stringify(r)),r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async updateEmailVerify(t,e){let r=await sM0({email:t,code:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async isEmailRegister(t){let e=await uM0({email:t});if(e.errcode)throw new Xt(e.errcode,e.errmsg);return e.data}async registByEmail(t,e,r){e=jsb.hashSvrPass(e);let a=await bM0({email:t,password:e,code:r});if(a.errcode)throw new Xt(a.errcode,a.errmsg);return a.data}};ny=AM0([$c],ny);function SM0(t){const e=`${C8()}/pay/alchemy/buy`;return Rr(e,t)}function kM0(t,e,r){const a=`${C8()}/pay/alchemy/crypto_price`;return Rr(a,{token:t,chain:e,env:r})}function TM0(){const t=`${C8()}/pay/alchemy/fait_list`;return fh(t)}function XD(t){const e=`${C8()}/pay/google/verify`;return Rr(e,t)}function QD(t){const e=`${C8()}/pay/apple/verify`;return Rr(e,t)}var BM0=Object.defineProperty,PM0=Object.getOwnPropertyDescriptor,CM0=(t,e,r,a)=>{for(var f=a>1?void 0:a?PM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&BM0(e,r,f),f};let d6=class{constructor(){this.priceMap=new Map}async alchemyPrePay(t){t.evn=jc.wallet.env,t.version=dN;let e=await SM0(t);if(e.errcode)throw new Error(e.errmsg);if(!e.data)throw new Error("No data returned");const r=e.data.url;if(!r)throw new Error("No url returned");return console.log("pay url::",r),e.data}async getGasPrice(t){const e=`gasprice_${t}`;if(this.priceMap.has(e))setTimeout(async()=>{let r=await new jc.wallet.web3.eth.getGasPrice;this.priceMap.set(e,r+"")},100);else{let r=await new jc.wallet.web3.eth.getGasPrice;this.priceMap.set(e,r+"")}return console.log("gas price",this.priceMap.get(e)),this.priceMap.get(e)}async updateTokenPrice(t,e,r){const a=`crypto_usd_${t}_${e}_${r}`;let f=await kM0(e,t,r);console.log("ETH price data",JSON.stringify(f));let n=f.data.price;this.priceMap.set(a,n+"")}async queryTokenPrice(t,e,r="release"){t=t.toUpperCase(),e=e.toUpperCase();const a=`crypto_usd_${t}_${e}_${r}`;if(this.priceMap.has(a))setTimeout(async()=>{try{await this.updateTokenPrice(t,e,r)}catch(f){console.log("ETH price err",f)}},100);else try{await this.updateTokenPrice(t,e,r)}catch(f){console.log("ETH price err",f)}return console.log("ETH price",this.priceMap.get(a)),this.priceMap.get(a)}async fetchFiatList(){return TM0()}async queryGoogleProducts(t){return await new bf().queryProducts(t.join(","))}async queryGooglePurchases(){let t=await new bf().queryPurchase(),e=JSON.parse(t+"");if(console.log("query purchase result:: "+e),e.length===0)throw new Xt(10,"no records");let r=await XD({list:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);return r.data}async buyGoogleProduct(t,e){let r=await new bf().buyProduct(t,e),a=JSON.parse(r+"");if(console.log("native buy result:: "+a),a.length===0)throw new Xt(10,"no records");let f=await XD({list:a});if(f.errcode)throw new Xt(f.errcode,f.errmsg);return f.data}async queryIOSProducts(t){return await new bf().queryProducts(t.join(","))}async queryIOSPurchases(){let t=await new bf().queryPurchase(),e=JSON.parse(t+"");if(console.log("query apple purchase result:: "+t),e.length===0)throw new Xt(10,"no records");let r=await QD({list:e});if(r.errcode)throw new Xt(r.errcode,r.errmsg);if(r.data.length>0)for(let a=0;a0)for(let n=0;n{for(var f=a>1?void 0:a?RM0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&IM0(e,r,f),f};let fy=class{async ethRecords(t,e,r){t=t|0,e=e|0;let a={start:t,limit:e,chain:jc.wallet.currentChain.id};return Object.assign(a,r),mN(a)}async tokenRecords({address:t,tokenId:e,start:r,limit:a,moreParam:f}){r=r|0,a=a|0;let n={start:r,limit:a,chain:jc.wallet.currentChain.id,"details.address":t};return e&&(n["details.id"]=e+""),Object.assign(n,f),mN(n)}};fy=OM0([$c],fy);var R1={},L8={},vs=Lt,NM0=e1.ec,cy=new NM0("secp256k1"),s6=cy.curve;L8.privateKeyExport=function(t,e){var r=new vs(t);if(r.ucmp(s6.n)>=0)throw new Error("couldn't export to DER format");var a=cy.g.mul(r);return e$(a.getX(),a.getY(),e)},L8.privateKeyModInverse=function(t){var e=new vs(t);if(e.ucmp(s6.n)>=0||e.isZero())throw new Error("private key range is invalid");return e.invm(s6.n).toArrayLike(Q,"be",32)},L8.signatureImport=function(t){var e=new vs(t.r);e.ucmp(s6.n)>=0&&(e=new vs(0));var r=new vs(t.s);return r.ucmp(s6.n)>=0&&(r=new vs(0)),Q.concat([e.toArrayLike(Q,"be",32),r.toArrayLike(Q,"be",32)])},L8.ecdhUnsafe=function(t,e,r){var a=cy.keyFromPublic(t),f=new vs(e);if(f.ucmp(s6.n)>=0||f.isZero())throw new Error("scalar was invalid (zero or overflow)");var n=a.pub.mul(f);return e$(n.getX(),n.getY(),r)};var e$=function(e,r,a){var f=void 0;return a?(f=Q.alloc(33),f[0]=r.isOdd()?3:2,e.toArrayLike(Q,"be",32).copy(f,1)):(f=Q.alloc(65),f[0]=4,e.toArrayLike(Q,"be",32).copy(f,1),r.toArrayLike(Q,"be",32).copy(f,33)),f},Nh={},DM0=Q.from([48,129,211,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,133,48,129,130,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,33,2,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,36,3,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),$M0=Q.from([48,130,1,19,2,1,1,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,160,129,165,48,129,162,2,1,1,48,44,6,7,42,134,72,206,61,1,1,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,252,47,48,6,4,1,0,4,1,7,4,65,4,121,190,102,126,249,220,187,172,85,160,98,149,206,135,11,7,2,155,252,219,45,206,40,217,89,242,129,91,22,248,23,152,72,58,218,119,38,163,196,101,93,164,251,252,14,17,8,168,253,23,180,72,166,133,84,25,156,71,208,143,251,16,212,184,2,33,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,186,174,220,230,175,72,160,59,191,210,94,140,208,54,65,65,2,1,1,161,68,3,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);Nh.privateKeyExport=function(t,e,r){var a=Q.from(r?DM0:$M0);return t.copy(a,r?8:9),e.copy(a,r?181:214),a},Nh.privateKeyImport=function(t){var e=t.length,r=0;if(e2||e1?t[r+a-2]<<8:0);return r+=a,e32||ea)||t[f++]!==2)return null;var l=t[f++];if(l&128){if(n=l-128,f+n>a)return null;for(;n>0&&t[f]===0;f+=1,n-=1);for(l=0;n>0;f+=1,n-=1)l=(l<<8)+t[f]}if(l>a-f)return null;var m=f;if(f+=l,t[f++]!==2)return null;var y=t[f++];if(y&128){if(n=y-128,f+n>a)return null;for(;n>0&&t[f]===0;f+=1,n-=1);for(y=0;n>0;f+=1,n-=1)y=(y<<8)+t[f]}if(y>a-f)return null;var _=f;for(f+=y;l>0&&t[m]===0;l-=1,m+=1);if(l>32)return null;var E=t.slice(m,m+l);for(E.copy(e,32-E.length);y>0&&t[_]===0;y-=1,_+=1);if(y>32)return null;var A=t.slice(_,_+y);return A.copy(r,32-A.length),{r:e,s:r}};var Oa=Pi,Dh=L8,oy=Nh,t$=function(e){return e.length!==32?!1:Oa.privateKeyVerify(Uint8Array.from(e))},UM0=function(e,r){if(e.length!==32)throw new RangeError("private key length is invalid");var a=Dh.privateKeyExport(e,r);return oy.privateKeyExport(e,a,r)},LM0=function(e){if(e=oy.privateKeyImport(e),e!==null&&e.length===32&&t$(e))return e;throw new Error("couldn't import from DER format")},FM0=function(e){return Q.from(Oa.privateKeyNegate(Uint8Array.from(e)))},jM0=function(e){if(e.length!==32)throw new Error("private key length is invalid");return Q.from(Dh.privateKeyModInverse(Uint8Array.from(e)))},zM0=function(e,r){return Q.from(Oa.privateKeyTweakAdd(Uint8Array.from(e),r))},qM0=function(e,r){return Q.from(Oa.privateKeyTweakMul(Uint8Array.from(e),Uint8Array.from(r)))},HM0=function(e,r){return Q.from(Oa.publicKeyCreate(Uint8Array.from(e),r))},KM0=function(e,r){return Q.from(Oa.publicKeyConvert(Uint8Array.from(e),r))},VM0=function(e){return e.length!==33&&e.length!==65?!1:Oa.publicKeyVerify(Uint8Array.from(e))},WM0=function(e,r,a){return Q.from(Oa.publicKeyTweakAdd(Uint8Array.from(e),Uint8Array.from(r),a))},GM0=function(e,r,a){return Q.from(Oa.publicKeyTweakMul(Uint8Array.from(e),Uint8Array.from(r),a))},ZM0=function(e,r){var a=[];return e.forEach(function(f){a.push(Uint8Array.from(f))}),Q.from(Oa.publicKeyCombine(a,r))},YM0=function(e){return Q.from(Oa.signatureNormalize(Uint8Array.from(e)))},JM0=function(e){return Q.from(Oa.signatureExport(Uint8Array.from(e)))},XM0=function(e){return Q.from(Oa.signatureImport(Uint8Array.from(e)))},QM0=function(e){if(e.length===0)throw new RangeError("signature length is invalid");var r=oy.signatureImportLax(e);if(r===null)throw new Error("couldn't parse DER signature");return Dh.signatureImport(r)},eE0=function(e,r,a){if(a===null)throw new TypeError("options should be an Object");var f=void 0;if(a){if(f={},a.data===null)throw new TypeError("options.data should be a Buffer");if(a.data){if(a.data.length!==32)throw new RangeError("options.data length is invalid");f.data=new Uint8Array(a.data)}if(a.noncefn===null)throw new TypeError("options.noncefn should be a Function");a.noncefn&&(f.noncefn=function(l,m,y,_,E){var A=y!=null?Q.from(y):null,k=_!=null?Q.from(_):null,P=Q.from("");return a.noncefn&&(P=a.noncefn(Q.from(l),Q.from(m),A,k,E)),Uint8Array.from(P)})}var n=Oa.ecdsaSign(Uint8Array.from(e),Uint8Array.from(r),f);return{signature:Q.from(n.signature),recovery:n.recid}},tE0=function(e,r,a){return Oa.ecdsaVerify(Uint8Array.from(r),Uint8Array.from(e),a)},rE0=function(e,r,a,f){return Q.from(Oa.ecdsaRecover(Uint8Array.from(r),a,Uint8Array.from(e),f))},aE0=function(e,r){return Q.from(Oa.ecdh(Uint8Array.from(e),Uint8Array.from(r),{}))},iE0=function(e,r,a){if(e.length!==33&&e.length!==65)throw new RangeError("public key length is invalid");if(r.length!==32)throw new RangeError("private key length is invalid");return Q.from(Dh.ecdhUnsafe(Uint8Array.from(e),Uint8Array.from(r),a))},nE0={privateKeyVerify:t$,privateKeyExport:UM0,privateKeyImport:LM0,privateKeyNegate:FM0,privateKeyModInverse:jM0,privateKeyTweakAdd:zM0,privateKeyTweakMul:qM0,publicKeyCreate:HM0,publicKeyConvert:KM0,publicKeyVerify:VM0,publicKeyTweakAdd:WM0,publicKeyTweakMul:GM0,publicKeyCombine:ZM0,signatureNormalize:YM0,signatureExport:JM0,signatureImport:XM0,signatureImportLax:QM0,sign:eE0,verify:tE0,recover:rE0,ecdh:aE0,ecdhUnsafe:iE0};(function(t){var e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(B){return typeof B}:function(B){return B&&typeof Symbol=="function"&&B.constructor===Symbol&&B!==Symbol.prototype?"symbol":typeof B},r=an,a=r.keccak224,f=r.keccak384,n=r.keccak256,l=r.keccak512,m=nE0,y=$r,_=na,E=Lt,A=ui,k=ct.Buffer;Object.assign(t,Un),t.MAX_INTEGER=new E("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",16),t.TWO_POW256=new E("10000000000000000000000000000000000000000000000000000000000000000",16),t.KECCAK256_NULL_S="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",t.SHA3_NULL_S=t.KECCAK256_NULL_S,t.KECCAK256_NULL=k.from(t.KECCAK256_NULL_S,"hex"),t.SHA3_NULL=t.KECCAK256_NULL,t.KECCAK256_RLP_ARRAY_S="1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",t.SHA3_RLP_ARRAY_S=t.KECCAK256_RLP_ARRAY_S,t.KECCAK256_RLP_ARRAY=k.from(t.KECCAK256_RLP_ARRAY_S,"hex"),t.SHA3_RLP_ARRAY=t.KECCAK256_RLP_ARRAY,t.KECCAK256_RLP_S="56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",t.SHA3_RLP_S=t.KECCAK256_RLP_S,t.KECCAK256_RLP=k.from(t.KECCAK256_RLP_S,"hex"),t.SHA3_RLP=t.KECCAK256_RLP,t.BN=E,t.rlp=_,t.secp256k1=m,t.zeros=function(B){return k.allocUnsafe(B).fill(0)},t.zeroAddress=function(){var B=20,I=t.zeros(B);return t.bufferToHex(I)},t.setLengthLeft=t.setLength=function(B,I,O){var H=t.zeros(I);return B=t.toBuffer(B),O?B.length0&&I.toString()==="0";)B=B.slice(1),I=B[0];return B},t.toBuffer=function(B){if(!k.isBuffer(B))if(Array.isArray(B))B=k.from(B);else if(typeof B=="string")t.isHexString(B)?B=k.from(t.padToEven(t.stripHexPrefix(B)),"hex"):B=k.from(B);else if(typeof B=="number")B=t.intToBuffer(B);else if(B==null)B=k.allocUnsafe(0);else if(E.isBN(B))B=B.toArrayLike(k);else if(B.toArray)B=k.from(B.toArray());else throw new Error("invalid type");return B},t.bufferToInt=function(B){return new E(t.toBuffer(B)).toNumber()},t.bufferToHex=function(B){return B=t.toBuffer(B),"0x"+B.toString("hex")},t.fromSigned=function(B){return new E(B).fromTwos(256)},t.toUnsigned=function(B){return k.from(B.toTwos(256).toArray())},t.keccak=function(B,I){switch(B=t.toBuffer(B),I||(I=256),I){case 224:return a(B);case 256:return n(B);case 384:return f(B);case 512:return l(B);default:throw new Error("Invald algorithm: keccak"+I)}},t.keccak256=function(B){return t.keccak(B)},t.sha3=t.keccak,t.sha256=function(B){return B=t.toBuffer(B),A("sha256").update(B).digest()},t.ripemd160=function(B,I){B=t.toBuffer(B);var O=A("rmd160").update(B).digest();return I===!0?t.setLength(O,32):O},t.rlphash=function(B){return t.keccak(_.encode(B))},t.isValidPrivate=function(B){return m.privateKeyVerify(B)},t.isValidPublic=function(B,I){return B.length===64?m.publicKeyVerify(k.concat([k.from([4]),B])):I?m.publicKeyVerify(B):!1},t.pubToAddress=t.publicToAddress=function(B,I){return B=t.toBuffer(B),I&&B.length!==64&&(B=m.publicKeyConvert(B,!1).slice(1)),y(B.length===64),t.keccak(B).slice(-20)};var P=t.privateToPublic=function(B){return B=t.toBuffer(B),m.publicKeyCreate(B,!1).slice(1)};t.importPublic=function(B){return B=t.toBuffer(B),B.length!==64&&(B=m.publicKeyConvert(B,!1).slice(1)),B},t.ecsign=function(B,I){var O=m.sign(B,I),H={};return H.r=O.signature.slice(0,32),H.s=O.signature.slice(32,64),H.v=O.recovery+27,H},t.hashPersonalMessage=function(B){var I=t.toBuffer(`Ethereum Signed Message: `+B.length.toString());return t.keccak(k.concat([I,B]))},t.ecrecover=function(B,I,O,H){var N=k.concat([t.setLength(O,32),t.setLength(H,32)],64),$=I-27;if($!==0&&$!==1)throw new Error("Invalid signature v value");var R=m.recover(B,N,$);return m.publicKeyConvert(R,!1).slice(1)},t.toRpcSig=function(B,I,O){if(B!==27&&B!==28)throw new Error("Invalid recovery id");return t.bufferToHex(k.concat([t.setLengthLeft(I,32),t.setLengthLeft(O,32),t.toBuffer(B-27)]))},t.fromRpcSig=function(B){if(B=t.toBuffer(B),B.length!==65)throw new Error("Invalid signature length");var I=B[64];return I<27&&(I+=27),{v:I,r:B.slice(0,32),s:B.slice(32,64)}},t.privateToAddress=function(B){return t.publicToAddress(P(B))},t.isValidAddress=function(B){return/^0x[0-9a-fA-F]{40}$/.test(B)},t.isZeroAddress=function(B){var I=t.zeroAddress();return I===t.addHexPrefix(B)},t.toChecksumAddress=function(B){B=t.stripHexPrefix(B).toLowerCase();for(var I=t.keccak(B).toString("hex"),O="0x",H=0;H=8?O+=B[H].toUpperCase():O+=B[H];return O},t.isValidChecksumAddress=function(B){return t.isValidAddress(B)&&t.toChecksumAddress(B)===B},t.generateAddress=function(B,I){return B=t.toBuffer(B),I=new E(I),I.isZero()?I=null:I=k.from(I.toArray()),t.rlphash([B,I]).slice(-20)},t.isPrecompiled=function(B){var I=t.unpad(B);return I.length===1&&I[0]>=1&&I[0]<=8},t.addHexPrefix=function(B){return typeof B!="string"||t.isHexPrefixed(B)?B:"0x"+B},t.isValidSignature=function(B,I,O,H){var N=new E("7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0",16),$=new E("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16);return!(I.length!==32||O.length!==32||B!==27&&B!==28||(I=new E(I),O=new E(O),I.isZero()||I.gt($)||O.isZero()||O.gt($))||H===!1&&new E(O).cmp(N)===1)},t.baToJSON=function(B){if(k.isBuffer(B))return"0x"+B.toString("hex");if(B instanceof Array){for(var I=[],O=0;O=U.length,"The field "+N.name+" must not have more "+N.length+" bytes")):!(N.allowZero&&U.length===0)&&N.length&&y(N.length===U.length,"The field "+N.name+" must have byte length of "+N.length),B.raw[$]=U}Object.defineProperty(B,N.name,{enumerable:!0,configurable:!0,get:R,set:q}),N.default&&(B[N.name]=N.default),N.alias&&Object.defineProperty(B,N.alias,{enumerable:!1,configurable:!0,set:q,get:R})}),O)if(typeof O=="string"&&(O=k.from(t.stripHexPrefix(O),"hex")),k.isBuffer(O)&&(O=_.decode(O)),Array.isArray(O)){if(O.length>B._fields.length)throw new Error("wrong number of fields in data");O.forEach(function(N,$){B[B._fields[$]]=t.toBuffer(N)})}else if((typeof O>"u"?"undefined":e(O))==="object"){var H=Object.keys(O);I.forEach(function(N){H.indexOf(N.name)!==-1&&(B[N.name]=O[N.name]),H.indexOf(N.alias)!==-1&&(B[N.alias]=O[N.alias])})}else throw new Error("invalid data")}})(R1);var Kt=(t=>(t[t.INTERNAL=0]="INTERNAL",t[t.THIRD_PARTY=1]="THIRD_PARTY",t[t.INJECTED=2]="INJECTED",t[t.RELAY=3]="RELAY",t))(Kt||{});class fE0{constructor(e){this.web3=e}async checkEthEnough(e,r){r=r||jc.wallet.currentAccAddr;let a=await this.web3.eth.getGasPrice();console.log("gasPrice: "+new R1.BN(a));let f=await this.web3.eth.getBalance(r);return console.log("eth balance: "+new R1.BN(f)),new R1.BN(f).gte(new R1.BN(a).mul(new R1.BN(e)))}async getBalance(e){return e=e||jc.wallet.currentAccAddr,await this.web3.eth.getBalance(e)}async sendEth(e,r,a){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("chainCommon","sendEth",...arguments);let f=jc.wallet.currentAccAddr;const n=this.web3.utils.toWei(r+"","ether");let l=await this.web3.eth.estimateGas({from:f,to:e,value:"0"});if(a)return jc.wallet.generateGasShow(l);let m=await jc.wallet.fetchGasPrice();const y={from:f,to:e,gas:l,gasPrice:m,value:n};return wi({gas:l,title:"transfer",details:[{address:"eth",from:f,to:e,value:n,id:"0"}]},this.web3.eth.sendTransaction(y))}}const $h=[{inputs:[{internalType:"string",name:"uri_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],cE0=new Error("timeout");async function oE0(t,e){const r=await fetch(t,e);if(!r.ok)throw new Error(`Fetch failed with status '${r.status}' for request '${t}'`);return r}async function r$(t,e,r=500){return Promise.race([oE0(t,e),new Promise((a,f)=>setTimeout(()=>{f(cE0)},r))])}const dE0=new R1.BN(0);function dy(t,e,r=5){const a=Uh(t||0,e),f=parseFloat(a);let n;if(f<1e-5&&f>0)n="< 0.00001";else{const l=Math.pow(10,r);n=(Math.round(f*l)/l).toString()}return n}function Uh(t,e){t=sy(Number(t).toString(16));let r=F8(t);const a=r.lt(new R1.BN(0)),f=ya.utils.toBN(Math.pow(10,e).toString());a&&(r=r.mul(new R1.BN(-1)));let n=r.mod(f).toString(10);for(;n.length0)r="< 0.00001";else{const n=Math.pow(10,e);r=(Math.round(f*n)/n).toString()}}return r}function uE0(t,e){return t?(t*Math.pow(10,e)).toString(16):0}function bE0(t){return Number.isFinite(parseFloat(t))&&!Number.isNaN(parseFloat(t))&&!isNaN(+t)}function kr(t){return ya.utils.toBN(t)}function sy(t){return typeof t!="string"||t.match(/^-?0x/u)?t:t.match(/^-?0X/u)?t.replace("0X","0x"):t.startsWith("-")?t.replace("-","-0x"):`0x${t}`}function F8(t){const e=a$(t.toString())||"0";return n$(e)}function a$(t,e="."){t+="";const[r,a]=[t.indexOf(e),0];return t.substring(r,a)||t}function uy(t){return typeof t!="string"?t:t.slice(0,2)==="0x"?t.slice(2):t}function i$(t,e){let r=ya.utils.toBN(ya.utils.toWei(t+""));return e>18?r=r.mul(ya.utils.toBN(10).pow(ya.utils.toBN(e-18))):e<18&&(r=r.div(ya.utils.toBN(10).pow(ya.utils.toBN(18-e)))),r}function n$(t){if(typeof t=="string"||typeof t=="number"){var e=ya.utils.toBN(1),r=String(t).toLowerCase().trim(),a=r.substr(0,2)==="0x"||r.substr(0,3)==="-0x",f=uy(r);if(f.substr(0,1)==="-"&&(f=uy(f.slice(1)),e=ya.utils.toBN(-1)),f=f===""?"0":f,!f.match(/^-?[0-9]+$/)&&f.match(/^[0-9A-Fa-f]+$/)||f.match(/^[a-fA-F]+$/)||a===!0&&f.match(/^[0-9A-Fa-f]+$/)||(f.match(/^-?[0-9]+$/)||f==="")&&a===!1)return ya.utils.toBN(f).mul(e)}else if(typeof t=="object"&&t.toString&&!t.pop&&!t.push&&t.toString(10).match(/^-?[0-9]+$/)&&(t.mul||t.dividedToIntegerBy))return ya.utils.toBN(t.toString(10));throw new Error("[number-to-bn] while converting number "+JSON.stringify(t)+" to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.")}function by(t){if(t.startsWith("ipfs://ipfs/"))return t.replace("ipfs://ipfs/","");if(t.startsWith("ipfs://"))return t.replace("ipfs://","");throw new Error("this method should not be used with non ipfs urls")}function f$(t){const e=by(t),r=e.indexOf("/"),a=r!==-1?e.substring(0,r):e,f=r!==-1?e.substring(r):void 0;return{cid:a,path:f}}function c$(t){return t.match(/(^http:\/\/)|(^https:\/\/)/u)?t:`https://${t}`}function j8(t,e,r){const{host:a,protocol:f,origin:n}=new URL(c$(t));if(r){const{cid:m,path:y}=f$(e);return`${f}//${m}.ipfs.${a}${y||""}`}const l=by(e);return`${n}/ipfs/${l}`}function hE0(t){return t?t!=="0x"&&t!=="0x0":!1}function lE0(t){return t.length>=10?t.substring(0,6)+"..."+t.substring(t.length-4):t.length>0&&t.length<10?t:""}function xE0(t,e){return t==="-"?`- ${e}`:`${dy(t,18,4)} ${e}`}const pE0="ERC1155",vE0="0xd9b67a26",mE0="0x0e89341c",gE0="0x4e2312e0";class yE0{constructor(e){this.contractSupportsURIMetadataInterface=async r=>this.contractSupportsInterface(r,mE0),this.contractSupportsTokenReceiverInterface=async r=>this.contractSupportsInterface(r,gE0),this.contractSupportsBase1155Interface=async r=>this.contractSupportsInterface(r,vE0),this.getTokenURI=async(r,a)=>{const f=new this.web3.eth.Contract($h,r);return new Promise((n,l)=>{f.methods.tokenURI(a).call((m,y)=>{if(m){l(m);return}n(y)})})},this.getBalanceOf=async(r,a,f)=>{const n=new this.web3.eth.Contract($h,r);return new Promise((l,m)=>{n.methods.balanceOf(a,f,(y,_)=>{if(y){m(y);return}l(_)})})},this.contractSupportsInterface=async(r,a)=>{const f=new this.web3.eth.Contract($h,r);return new Promise((n,l)=>{f.methods.supportsInterface(a,(m,y)=>{if(m){l(m);return}n(y)})})},this.getDetails=async(r,a,f)=>{if(!await this.contractSupportsBase1155Interface(r))throw new Error("This isn't a valid ERC1155 contract");let n,l;if(f){n=await this.getTokenURI(r,f),n.startsWith("ipfs://")&&(n=j8(a,n,!0));try{l=(await(await r$(n)).json())?.image,l?.startsWith("ipfs://")&&(l=j8(a,l,!0))}catch{}}return{standard:pE0,tokenURI:n,image:l}},this.web3=e}async transferBatch({address:e,from:r,to:a,tokenIds:f,amounts:n,gas:l,estimate:m}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("erc1155Standard","transferBatch",...arguments);r=r||jc.wallet.currentAccAddr;const y=new this.web3.eth.Contract($h,e);if(l||(l=await y.methods.safeBatchTransferFrom(r,a,f,n,[]).estimateGas()),l=l*Kr|1,m)return jc.wallet.generateGasShow(l);const _=[];for(let k=0,P=f.length;k{a.methods.balanceOf(r).call({from:r},(l,m)=>{if(l){n(l);return}console.log("getBalanceOf success "+m),f(m)})})}async getTokenDecimals(e){const r=new this.web3.eth.Contract(O1,e);return new Promise((a,f)=>{r.methods.decimals().call((n,l)=>{if(n){f(n);return}a(l.toString())})})}async getTokenSymbol(e){const r=new this.web3.eth.Contract(O1,e);return new Promise((a,f)=>{r.methods.symbol().call((n,l)=>{if(n){f(n);return}a(l.toString())})})}async getDetails(e,r){const[a,f]=await Promise.all([this.getTokenDecimals(e),this.getTokenSymbol(e)]);let n;return r&&(n=await this.getBalanceOf(e,r)),{decimals:a,symbol:f,balance:n,standard:"ERC20"}}async transfer({address:e,from:r,to:a,amount:f,decimal:n,gas:l,estimate:m}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("erc20Standard","transfer",...arguments);r=r||jc.wallet.currentAccAddr;const y=new this.web3.eth.Contract(O1,e);n||(n=await this.getTokenDecimals(e));let _=i$(f,+n);if(!l){let k=m?"0":_;l=await y.methods.transfer(a,k).estimateGas({from:r}),await this.getBalanceOf(e,a)=="0"&&(l+=12e3)}if(l=l*Kr|1,m)return jc.wallet.generateGasShow(l);const E={gas:l,title:"transfer",details:[{address:e,from:r,to:a,value:_,id:"0"}]};let A=await jc.wallet.fetchGasPrice();return wi(E,y.methods.transfer(a,_).send({from:r,gas:l,gasPrice:A}))}}const Gc=[{constant:!0,inputs:[{name:"interfaceID",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"name",outputs:[{name:"_name",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"getApproved",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_approved",type:"address"},{name:"_tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"transferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"_index",type:"uint256"}],name:"tokenByIndex",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"ownerOf",outputs:[{name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"_symbol",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_operator",type:"address"},{name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_tokenId",type:"uint256"},{name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"_tokenId",type:"uint256"}],name:"tokenURI",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_operator",type:"address"}],name:"isApprovedForAll",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{anonymous:!1,inputs:[{indexed:!0,name:"_from",type:"address"},{indexed:!0,name:"_to",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_approved",type:"address"},{indexed:!0,name:"_tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"_owner",type:"address"},{indexed:!0,name:"_operator",type:"address"},{indexed:!1,name:"_approved",type:"bool"}],name:"ApprovalForAll",type:"event"}],_E0="ERC721",ME0="0x80ac58cd",EE0="0x5b5e139f",AE0="0x780e9d63";class SE0{constructor(e){this.contractSupportsMetadataInterface=async r=>this.contractSupportsInterface(r,EE0),this.contractSupportsEnumerableInterface=async r=>this.contractSupportsInterface(r,AE0),this.contractSupportsBase721Interface=async r=>this.contractSupportsInterface(r,ME0),this.getCollectibleTokenId=async(r,a,f)=>{const n=new this.web3.eth.Contract(Gc,r);return new Promise((l,m)=>{n.methods.tokenOfOwnerByIndex(a,f).call((y,_)=>{if(y){m(y);return}l(_)})})},this.getBalance=async(r,a,f)=>{let n=this.web3;f&&parseInt(f)!==jc.wallet.currentChain.id&&(n=jc.wallet.generateWeb3(parseInt(f),!1));const l=new n.eth.Contract(Gc,r);return new Promise((m,y)=>{l.methods.balanceOf(a).call((_,E)=>{if(_){y(_);return}m(E)})})},this.getTokenURI=async(r,a)=>{const f=new this.web3.eth.Contract(Gc,r);if(!await this.contractSupportsMetadataInterface(r))throw new Error("Contract does not support ERC721 metadata interface.");return new Promise((n,l)=>{f.methods.tokenURI(a).call((m,y)=>{if(m){l(m);return}n(y)})})},this.getAssetName=async r=>{const a=new this.web3.eth.Contract(Gc,r);return new Promise((f,n)=>{a.methods.name().call((l,m)=>{if(l){n(l);return}f(m)})})},this.getAssetSymbol=async r=>{const a=new this.web3.eth.Contract(Gc,r);return new Promise((f,n)=>{a.methods.symbol().call((l,m)=>{if(l){n(l);return}f(m)})})},this.contractSupportsInterface=async(r,a)=>{const f=new this.web3.eth.Contract(Gc,r);return new Promise((n,l)=>{f.methods.supportsInterface(a).call((m,y)=>{if(m){l(m);return}n(y)})})},this.getDetails=async(r,a,f)=>{if(!await this.contractSupportsBase721Interface(r))throw new Error("This isn't a valid ERC721 contract");let n,l,m,y;try{m=await this.getAssetSymbol(r)}catch{}try{y=await this.getAssetName(r)}catch{}if(f)try{n=await this.getTokenURI(r,f),n.startsWith("ipfs://")&&(n=j8(a,n,!0));const _=await(await r$(n)).json();l=_?_.image:"",l.startsWith("ipfs://")&&(l=j8(a,l,!0))}catch{}return{standard:_E0,tokenURI:n,symbol:m,name:y,image:l}},this.web3=e}async getOwnerOf(e,r){const a=new this.web3.eth.Contract(Gc,e);return new Promise((f,n)=>{a.methods.ownerOf(r).call((l,m)=>{if(l){n(l);return}f(m)})})}async transfer({address:e,from:r,to:a,tokenId:f,gas:n,estimate:l}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("erc721Standard","transfer",...arguments);r=r||jc.wallet.currentAccAddr;const m=new this.web3.eth.Contract(Gc,e);if(n||(n=await m.methods.safeTransferFrom(r,a,f).estimateGas({from:r})),n=n*Kr|1,l)return jc.wallet.generateGasShow(n);const y={gas:n,title:"transfer",details:[{address:e,from:r,to:a,id:f}]};let _=await jc.wallet.fetchGasPrice();return wi(y,m.methods.safeTransferFrom(r,a,f).send({from:r,gas:n,gasPrice:_}))}}let kE0=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"nftAddress",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"startTime",type:"uint256"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"TokenMinted",type:"event"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner",outputs:[],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"structHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner712",outputs:[],stateMutability:"view",type:"function"},{inputs:[],name:"executor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDuration",outputs:[{internalType:"uint256",name:"duration",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"tokenSupported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"valNew",type:"uint256"}],name:"updateDuation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftAddress",type:"address"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"saltNonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"mintNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"addTokenSupport",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"removeTokenSupport",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"updateExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_to",type:"address"},{internalType:"address",name:"_nftAddress",type:"address"},{internalType:"uint256",name:"_startTime",type:"uint256"},{internalType:"uint256",name:"_saltNonce",type:"uint256"},{internalType:"uint256[]",name:"_ids",type:"uint256[]"}],name:"getMessageHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"}],z8=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"AddERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"nftToken",type:"address"}],name:"AddNFTSuppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!1,internalType:"address",name:"nftToken",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"seller",type:"address"},{indexed:!1,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"address",name:"erc20",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"BuyOrder",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!0,internalType:"address",name:"nftToken",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"CancelOrder",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!0,internalType:"address",name:"nftToken",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"priceOld",type:"uint256"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"PriceUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"RemoveERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"nftToken",type:"address"}],name:"RemoveNFTSuppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"nftToken",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"SellOrder",type:"event"},{inputs:[],name:"MAX_TRANSACTION_FEE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_TRANSACTION_TAX",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_TRANSACTION_FEE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_TRANSACTION_TAX",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc1155Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc1155SupportedHistory",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc20Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc721Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc721SupportedHistory",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nftPriceMaxLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nftPriceMinLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"orderInfos",outputs:[{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"address",name:"nftToken",type:"address"},{internalType:"address",name:"currency",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"taxToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tranFeeTotal",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tranTaxTotal",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"transactionFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"transactionTax",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"sell",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"}],name:"buy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"orderId",type:"uint256"}],name:"cancelOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"price",type:"uint256"}],name:"updatePrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"addERC721Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"removeERC721Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"addERC1155Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"removeERC1155Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"addERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"removeERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"},{internalType:"uint256",name:"maxLimit",type:"uint256"}],name:"setNFTPriceMaxLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"},{internalType:"uint256",name:"minLimit",type:"uint256"}],name:"setNFTPriceMinLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_transactionFee",type:"uint256"}],name:"setTransactionFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeToAddress",type:"address"}],name:"setFeeToAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_transactionTax",type:"uint256"}],name:"setTransactionTax",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_taxToAddress",type:"address"}],name:"setTaxToAddress",outputs:[],stateMutability:"nonpayable",type:"function"}],TE0=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"AddERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"nftToken",type:"address"}],name:"AddNFTSuppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"},{indexed:!1,internalType:"address[]",name:"nftAddresses",type:"address[]"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"BuyTransaction",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"RemoveERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"nftToken",type:"address"}],name:"RemoveNFTSuppout",type:"event"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"addERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner",outputs:[],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"structHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner712",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc1155Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc20Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc721Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"executor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDuration",outputs:[{internalType:"uint256",name:"duration",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"removeERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeToAddress",type:"address"}],name:"setFeeToAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"valNew",type:"uint256"}],name:"updateDuation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"updateExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"addERC721Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"removeERC721Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"addERC1155Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"nftToken",type:"address"}],name:"removeERC1155Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"currency",type:"address"},{internalType:"address[]",name:"nftAddresses",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"buyNFT",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_buyerAddress",type:"address"},{internalType:"address[]",name:"_nftAddresses",type:"address[]"},{internalType:"uint256[]",name:"_datas",type:"uint256[]"}],name:"getMessageHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"}],BE0=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"AddERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"address",name:"seller",type:"address"},{indexed:!0,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"ItemSoldOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"RemoveERC20Suppout",type:"event"},{inputs:[],name:"MAX_TRANSACTION_FEE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MIN_TRANSACTION_FEE",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"addERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner",outputs:[],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"structHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner712",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc20Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"executor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDuration",outputs:[{internalType:"uint256",name:"duration",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"orderIdUsed",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"removeERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeToAddress",type:"address"}],name:"setFeeToAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"transactionFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"valNew",type:"uint256"}],name:"updateDuation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"updateExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"saltNonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"buy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_transactionFee",type:"uint256"}],name:"setTransactionFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_buyer",type:"address"},{internalType:"address",name:"_seller",type:"address"},{internalType:"uint256",name:"_orderId",type:"uint256"},{internalType:"address",name:"_currency",type:"address"},{internalType:"uint256",name:"_price",type:"uint256"},{internalType:"uint256",name:"_startTime",type:"uint256"},{internalType:"uint256",name:"_saltNonce",type:"uint256"}],name:"getMessageHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"}],PE0=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"AddERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!0,internalType:"uint256",name:"orderId",type:"uint256"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"}],name:"ItemSoldOut",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"RemoveERC20Suppout",type:"event"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"addERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner",outputs:[],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"bytes32",name:"structHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"checkSigner712",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc20Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"executor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDuration",outputs:[{internalType:"uint256",name:"duration",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"orderIdUsed",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"removeERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeToAddress",type:"address"}],name:"setFeeToAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"valNew",type:"uint256"}],name:"updateDuation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"updateExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"price",type:"uint256"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"saltNonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"buy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_buyer",type:"address"},{internalType:"uint256",name:"_orderId",type:"uint256"},{internalType:"address",name:"_currency",type:"address"},{internalType:"uint256",name:"_price",type:"uint256"},{internalType:"uint256",name:"_startTime",type:"uint256"},{internalType:"uint256",name:"_saltNonce",type:"uint256"}],name:"getMessageHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"}],hy=[{inputs:[{internalType:"address[]",name:"nfts",type:"address[]"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"},{internalType:"uint64[]",name:"staketimes",type:"uint64[]"}],name:"stake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"nfts",type:"address[]"},{internalType:"uint256[]",name:"tokenIds",type:"uint256[]"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"periods",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"cooldownSeconds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc721Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"stakingMap",outputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"nft",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint64",name:"start",type:"uint64"},{internalType:"uint64",name:"stakeTime",type:"uint64"}],stateMutability:"view",type:"function"}],CE0=[{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"},{internalType:"address",name:"_seller",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"AddERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"buyer",type:"address"},{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"},{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenAmount",type:"uint256"}],name:"BuyTransaction",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"erc20",type:"address"}],name:"RemoveERC20Suppout",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"seller",type:"address"}],name:"SellerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAddress",type:"address"}],name:"TokenAddressUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"currency",type:"address"},{indexed:!1,internalType:"uint256",name:"price",type:"uint256"},{indexed:!1,internalType:"uint256",name:"pricePre",type:"uint256"}],name:"UpdateTokenPrice",type:"event"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"addERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"erc20Supported",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"executor",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeToAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"prices",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"erc20",type:"address"}],name:"removeERC20Support",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"seller",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_feeToAddress",type:"address"}],name:"setFeeToAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"tokenAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"updateExecutor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_tokenAddress",type:"address"}],name:"updateTokenAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_seller",type:"address"}],name:"updateSeller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"price",type:"uint256"}],name:"updateTokenPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"currency",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"buyToken",outputs:[],stateMutability:"nonpayable",type:"function"}];class IE0{constructor(e){this.web3=e}async mintNFT({address:e,tokenIds:r,startTime:a,saltNonce:f,signature:n,gas:l,estimate:m}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","mintNFT",...arguments);const y=jc.wallet.currentChainCfg.contracts.minterFactory;console.log("addressFactory:: ",y),console.log("address",e),console.log("tokenIds",r),console.log("startTime",a),console.log("saltNonce",f),console.log("signature",n),console.log("gas",l),console.log("estimate",m);const _=new this.web3.eth.Contract(kE0,y,{from:jc.wallet.currentAccAddr});if(l||(l=await _.methods.mintNft(e,r,a,f,n).estimateGas()),l=l*Kr|1,m)return jc.wallet.generateGasShow(l);let E=[{address:y,from:jc.wallet.currentAccAddr,to:y}];for(let P of r)E.push({address:e,from:Cg0,to:jc.wallet.currentAccAddr,id:P});const A={gas:l,title:"mint_nft",details:E};let k=await jc.wallet.fetchGasPrice();return wi(A,_.methods.mintNft(e,r,a,f,n).send({gas:l,gasPrice:k}))}async marketSellNFT({nftToken:e,currency:r,tokenId:a,price:f,amount:n,gas:l,estimate:m}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","marketSellNFT",...arguments);const y=jc.wallet.currentChainCfg;m=parseInt(m+"");const _=y.contracts.nftmarket;console.log("addressMarket:: ",_);const E=new this.web3.eth.Contract(z8,_,{from:jc.wallet.currentAccAddr}),A=new this.web3.eth.Contract(Gc,e,{from:jc.wallet.currentAccAddr});let k=await A.methods.getApproved(a),P=0,B=await jc.wallet.fetchGasPrice();if(k!=_&&(P=await A.methods.approve(_,a).estimateGas(),P=P*Kr|1,await A.methods.approve(_,a).send({gas:P,gasPrice:B})),l||(l=await E.methods.sell(e,r,a,f,n).estimateGas()),l=l*Kr|1,m)return jc.wallet.generateGasShow(l+P);let I=[{address:_,from:jc.wallet.currentAccAddr,to:_},{address:e,from:jc.wallet.currentAccAddr,to:_,id:a}];return wi({gas:l,title:"market_sell",details:I},E.methods.sell(e,r,a,f,n).send({gas:l,gasPrice:B}))}async marketUpdatePrice({orderId:e,price:r,gas:a,estimate:f}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","marketUpdatePrice",...arguments);const n=jc.wallet.currentChainCfg;f=parseInt(f+"");const l=n.contracts.nftmarket;console.log("addressMarket:: ",l);const m=new this.web3.eth.Contract(z8,l,{from:jc.wallet.currentAccAddr});if(a||(a=await m.methods.updatePrice(e,r).estimateGas()),a=a*Kr|1,f)return jc.wallet.generateGasShow(a);let y=[{address:l,from:jc.wallet.currentAccAddr,to:l}];const _={gas:a,title:"market_update_price",details:y};let E=await jc.wallet.fetchGasPrice();return wi(_,m.methods.updatePrice(e,r).send({gas:a,gasPrice:E}))}async marketCancelOrder({orderId:e,gas:r,estimate:a}){const f=jc.wallet.currentChainCfg;a=parseInt(a+"");const n=f.contracts.nftmarket;console.log("addressMarket:: ",n);const l=new this.web3.eth.Contract(z8,n,{from:jc.wallet.currentAccAddr});if(r||(r=await l.methods.cancelOrder(e).estimateGas()),r=r*Kr|1,a)return jc.wallet.generateGasShow(r);let m=await l.methods.orderInfos(e).call();if(!m.orderId)throw new Xt(100,`order info with id: ${e} not found`);let y=[{address:n,from:jc.wallet.currentAccAddr,to:n},{address:m.nftToken,from:n,to:jc.wallet.currentAccAddr,id:m.tokenId}],_=await jc.wallet.fetchGasPrice();return wi({gas:r,title:"market_cancel_order",details:y},l.methods.cancelOrder(e).send({gas:r,gasPrice:_}))}async marketBuy({orderId:e,gas:r,price:a,estimate:f}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","marketBuy",...arguments);const n=jc.wallet.currentChainCfg;f=parseInt(f+"");const l=n.contracts.nftmarket;console.log("addressMarket:: ",l);const m=new this.web3.eth.Contract(z8,l,{from:jc.wallet.currentAccAddr});let y=await m.methods.orderInfos(e).call();if(!y.orderId)throw new Xt(100,`order info with id: ${e} not found`);if(!kr(a).eq(kr(y.price)))throw new Xt(101,`price must equal to ${y.price}`);const _=new this.web3.eth.Contract(O1,y.currency,{from:jc.wallet.currentAccAddr});let E=await _.methods.allowance(jc.wallet.currentAccAddr,l).call();console.log("approved:: ",E);let A=0,k=await jc.wallet.fetchGasPrice();if(kr(E).lt(kr(a))&&(A=await _.methods.approve(l,a).estimateGas(),A=A*Kr|1,await _.methods.approve(l,a).send({gas:A,gasPrice:k})),r||(r=await m.methods.buy(e,a).estimateGas()),r=r*Kr|1,f)return jc.wallet.generateGasShow(r+A);let P=[{address:l,from:jc.wallet.currentAccAddr,to:l},{address:y.nftToken,from:l,to:jc.wallet.currentAccAddr,id:y.tokenId,value:y.amount},{address:y.currency,from:jc.wallet.currentAccAddr,to:l,id:y.price}];return wi({gas:r,title:"market_buy",details:P},m.methods.buy(e,a).send({gas:r,gasPrice:k}))}async marketOrderInfo(e){const r=jc.wallet.currentChainCfg.contracts.nftmarket;return console.log("addressMarket:: ",r),await new this.web3.eth.Contract(z8,r,{from:jc.wallet.currentAccAddr}).methods.orderInfos(e).call()}async gameMallBuy({orderId:e,currency:r,price:a,startTime:f,saltNonce:n,signature:l,gas:m,estimate:y}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","gameMallBuy",...arguments);const _=jc.wallet.currentChainCfg;y=parseInt(y+"");const E=_.contracts.gamemall;console.log("addressGameMall:: ",E);const A=new this.web3.eth.Contract(PE0,E,{from:jc.wallet.currentAccAddr}),k=new this.web3.eth.Contract(O1,r,{from:jc.wallet.currentAccAddr});let P=await k.methods.allowance(jc.wallet.currentAccAddr,E).call();console.log("approved:: ",P);let B=0,I=await jc.wallet.fetchGasPrice();if(kr(P).lt(kr(a))&&(B=await k.methods.approve(E,a).estimateGas(),B=B*Kr|1,console.log("gasApprove:: ",B),await k.methods.approve(E,a).send({gas:B,gasPrice:I})),m||(m=await A.methods.buy(e,r,a,f,n,l).estimateGas()),m=m*Kr|1,y)return jc.wallet.generateGasShow(m+B);let O=await A.methods.feeToAddress().call(),H=[{address:E,from:jc.wallet.currentAccAddr,to:E},{address:r,from:jc.wallet.currentAccAddr,to:O,value:a}];return wi({gas:m,title:"game_mall_buy",details:H},A.methods.buy(e,r,a,f,n,l).send({gas:m,gasPrice:I}))}async gameMarketBuy({orderId:e,seller:r,currency:a,price:f,startTime:n,saltNonce:l,signature:m,gas:y,estimate:_}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","gameMarketBuy",...arguments);const E=jc.wallet.currentChainCfg;_=parseInt(_+"");const A=E.contracts.gamemarket;console.log("addressGameMarket:: ",A);const k=new this.web3.eth.Contract(BE0,A,{from:jc.wallet.currentAccAddr}),P=new this.web3.eth.Contract(O1,a,{from:jc.wallet.currentAccAddr});let B=await P.methods.allowance(jc.wallet.currentAccAddr,A).call();console.log("approved:: ",B);let I=0,O=await jc.wallet.fetchGasPrice();if(kr(B).lt(kr(f))&&(I=await P.methods.approve(A,f).estimateGas(),I=I*Kr|1,await P.methods.approve(A,f).send({gas:I,gasPrice:O})),console.log("gasApprove: "+I),y||(y=await k.methods.buy(e,r,a,f,n,l,m).estimateGas()),y=y*Kr|1,console.log("gas: "+y),_)return jc.wallet.generateGasShow(y+I);let H=await k.methods.feeToAddress().call(),N=[{address:A,from:jc.wallet.currentAccAddr,to:A},{address:a,from:jc.wallet.currentAccAddr,to:H,value:f}];return wi({gas:y,title:"game_market_buy",details:N},k.methods.buy(e,r,a,f,n,l,m).send({gas:y,gasPrice:O}))}async buyTokenWithErc20({currency:e,amount:r,estimate:a}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","buyTokenWithErc20",...arguments);const f=jc.wallet.currentChainCfg;a=parseInt(a+"");const n=f.contracts.tokenmall;console.log("addressMall:: ",n);const l=new this.web3.eth.Contract(CE0,n,{from:jc.wallet.currentAccAddr}),m=new this.web3.eth.Contract(O1,e,{from:jc.wallet.currentAccAddr});let y=await m.methods.allowance(jc.wallet.currentAccAddr,n).call();console.log("approved:: ",y);let _=await jc.wallet.fetchGasPrice();console.log("gas price: "+_);let E=0;kr(y).lt(kr(r))&&(E=await m.methods.approve(n,r).estimateGas(),E=E*Kr|1,await m.methods.approve(n,r).send({gas:E,gasPrice:_}));let A=await l.methods.buyToken(e,r).estimateGas();if(A=A*Kr|1,a)return jc.wallet.generateGasShow(A+E);let k=[{address:n,from:jc.wallet.currentAccAddr,to:n},{address:e,from:jc.wallet.currentAccAddr,to:n,value:r}],P=await l.methods.tokenAddress().call(),B=await m.methods.decimals().call(),I=await l.methods.prices(e).call(),O=kr(I).mul(kr(r)).mul(kr(10).pow(kr(10).sub(kr(B)))).div(kr("1000000"));return console.log(`buyTokenWithErc20: currency: ${e}, amount: ${r}, tokenAmount: ${O}`),k.push({address:P,from:n,to:jc.wallet.currentAccAddr,value:O}),wi({gas:A,title:"mall_buy_token",details:k},l.methods.buyToken(e,r).send({gas:A,gasPrice:_}))}async mallBuy({currency:e,addresses:r,ids:a,amounts:f,values:n,signature:l,gas:m,estimate:y}){if(jc.wallet.walletType===Kt.RELAY)return jc.wallet.relaySvr.beginReq("jcStandard","mallBuy",...arguments);const _=jc.wallet.currentChainCfg;y=parseInt(y+"");const E=_.contracts.nftmall;console.log("addressMall:: ",E);const A=new this.web3.eth.Contract(TE0,E,{from:jc.wallet.currentAccAddr}),k=new this.web3.eth.Contract(O1,e,{from:jc.wallet.currentAccAddr});let P=await k.methods.allowance(jc.wallet.currentAccAddr,E).call();console.log("approved:: ",P);let B=await jc.wallet.fetchGasPrice();console.log("gas price: "+B);let I=0;if(kr(P).lt(kr(n[1]))&&(I=await k.methods.approve(E,n[1]).estimateGas(),I=I*Kr|1,await k.methods.approve(E,n[1]).send({gas:I,gasPrice:B})),m||(m=await A.methods.buyNFT(e,r,a,f,n,l).estimateGas()),m=m*Kr|1,y)return jc.wallet.generateGasShow(m+I);let O=[{address:E,from:jc.wallet.currentAccAddr,to:E},{address:e,from:jc.wallet.currentAccAddr,to:E,value:n[1]}];for(let H=0;H`- ${_}`)].join(` `));const y=m.join(` @@ -140,5 +140,5 @@ version: 2.9.0 `),this.statement&&(a+=` `),[a,y].join(` -`)}}class OE0{constructor(){this.accounts=[],this.onAccountsChanged=e=>{console.log("on accountsChanged: ",e),this.accounts=e},this.onChainChanged=e=>{const r=parseInt(e);console.log("on chainChanged",e,r)},this.onDisconnect=e=>{console.log("on disconnect",e)}}async connect(e){this.provider=window.okxwallet||window.ethereum,this.chainId=e,this._subscribeToEvents()}async disconnect(){this.provider&&(this.provider.removeListener("accountsChanged",this.onAccountsChanged),this.provider.removeListener("chainChanged",this.onChainChanged),this.provider.removeListener("disconnect",this.onDisconnect))}_subscribeToEvents(){this.provider.on("accountsChanged",this.onAccountsChanged),this.provider.on("chainChanged",this.onChainChanged),this.provider.on("disconnect",this.onDisconnect)}async addOrChangeChain(e){return new Promise((r,a)=>{const f=l=>{console.log("switchEthereumChain: ",l),this.provider.removeListener("chainChanged",f),r&&r(l)};this.provider.on("chainChanged",f);let n={chainId:gN(e.id),chainName:e.name,nativeCurrency:{name:e.symbol,symbol:e.symbol,decimals:e.decimals||18},rpcUrls:[e.rpc],blockExplorerUrls:[e.explorerurl]};this.provider.request({method:"wallet_addEthereumChain",params:[n]}).then(()=>{console.log("add chain success, wait result")}).catch(l=>{console.error("add chain error: ",JSON.stringify(l)),this.provider.removeListener("chainChanged",f),a&&a(l)})})}async signWithSiwe(){let e=await Rh(()=>cM0(),cN);if(e.errcode)throw new Xt(e.errcode,e.errmsg);let r=e.data.nonce;return this.signData({chainId:this.chainId,nonce:r},this.accounts[0])}async signData(e,r){const a=Ur.toChecksumAddress(r),{chainId:f,nonce:n}=e;let l=new RE0({domain:document.location.host,address:a,chainId:f,uri:document.location.origin,version:"1",statement:"Counter Fire Wallet Relay",nonce:n}),m=l.toMessage();return{signature:await this.provider.request({method:"personal_sign",params:[Ur.utf8ToHex(m),a]}),message:l}}async sendCmd({method:e,params:r,from:a}){}}function NE0(t){const e=`${Hr()}/wallet/relay/prepare`;return Rr(e,t)}function o$(t){const e=`${Hr()}/wallet/relay/getlast`;return Rr(e,{type:t},new oa().relayToken)}function DE0(t){const e=`${Hr()}/wallet/relay/getdata`;return Rr(e,{id:t},new oa().relayToken)}function d$(t,e){const r=`${Hr()}/wallet/relay/putdata`;return Rr(r,{type:t,data:e},new oa().relayToken)}function s$(t,e){const r=`${Hr()}/wallet/relay/updata`;return Rr(r,{id:t,data:e},new oa().relayToken)}var q8=(t=>(t[t.TO_WALLET=0]="TO_WALLET",t[t.FROM_WALLET=1]="FROM_WALLET",t))(q8||{});async function $E0(t,e="dev"){let r=zr()+"",a=localStorage.getItem(sN);if(pN(60,a)){let _=jsb.preRegistClient(r),[E,A]=_.split("|"),k=await NE0({msg:r,address:E,signature:A});if(k.errorcode)throw new Error(k.errmsg);a=k.data.token,localStorage.setItem(sN,a)}console.log(`relay token: ${a}`),UE0(a);let f=await jc.wallet.relaySvr.beginReq("",ih,t,e),{address:n,signature:l,message:m,key:y}=f;return console.log(`initRelayWallet::from relay: address: ${n}, signature: ${l}, encrypt: ${!!y}`),y&&jsb.parseRelayAESKey(y),{token:await ZD({channel:Do.RELAY_WALLET,code:l,message:m}),address:n}}async function UE0(t){new oa().relayToken=t}async function LE0(t){return d$(q8.TO_WALLET,t)}var FE0=Object.defineProperty,jE0=Object.getOwnPropertyDescriptor,zE0=(t,e,r,a)=>{for(var f=a>1?void 0:a?jE0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&FE0(e,r,f),f};let ly=class{constructor(){this._event=nh()}_subscribeToResponse(t,e){this._event.on(`response:${t}`,e)}_subscribeToCallResponse(t){return new Promise((e,r)=>{this._subscribeToResponse(t,a=>{if(a.errcode){r(a.errmsg||a.data||a.errcode);return}e(a.data)})})}handleNativeCallback(...t){let e=t[0],r=JSON.parse(t[1]);this._event.emit(`response:${e}`,r)}async checkResult(){if(console.log("relay check result: "+window.currentRelayId),!window.currentRelayId)return;let{errcode:t,errmsg:e,data:r}=await DE0(window.currentRelayId),a=r.resp;if(typeof a=="object"&&a.encrypt){let f=jsb.loadRelayAESKey();a=JSON.parse(iy(a.values,f)),console.log("decrypt result: "+JSON.stringify(a))}this._event.emit(`response:${window.currentRelayId}`,a),window.currentRelayId=void 0}async beginReq(...t){let e=t[1],r={method:e,params:t};e===ih?r.pk=jsb.prepareRelayRSAKey():r={method:uN,values:ay(JSON.stringify(r),jsb.loadRelayAESKey())};let{errcode:a,data:f,errmsg:n}=await LE0(r);console.log("uploadRelayData result: "+JSON.stringify({errcode:a,data:f,errmsg:n}));let{id:l}=f;console.log("relay id: "+l);let m=$g0(new oa().relayToken);return window.toRelayPage(`${Tg0()}?token=${m}`),window.currentRelayId=l+"",this._subscribeToCallResponse(l)}};ly=zE0([$c],ly);const qE0={"42161_release":{tokens:[{type:"eth",address:"eth",symbol:"ETH",decimal:18},{type:"erc20",address:"0x741482aE1480E552735E44Ff3A733448AcBbeD8d",symbol:"CEG",decimal:18},{address:"0x79fc2a4216A1e595DBD09D13c4B4bD3B095d5bb2",name:"hero",type:"erc721"},{address:"0x551838d7754157D13e7D945b8a37bBD6Ad50dDC7",name:"chip",type:"erc721"},{address:"0xD728de3d9ebeD90E84aBe84539280cbC5b18E304",name:"genesis",type:"erc721"},{address:"0x3F13F83E6363D97d0353cAAfACA08B05D9BF3637",name:"gacha",type:"erc721"},{type:"erc20",address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",symbol:"USDT",decimal:6,thirdparty:1},{type:"erc20",address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",symbol:"USDC",decimal:6,thirdparty:1},{address:"0x66944F7AEB68779DE2B4f68Fde5d704fff723134",name:"planet",type:"erc721"}],contracts:{minterFactory:"0x24499444b2BE6A8E3F800D47E4Ed0c36B5c0747e",nftmarket:"0xA683c7BC5f3c73782fce9fc614Fda7C999934db8",nftmall:"0xb5EF2FAC11c385041f847E34E0b1B4740436f769",gamemarket:"0x6232d2B720C22D6BCB633560b05002C472a64f18",gamemall:"0x1Ee01D949C848aF1ceDb80165b290554937819d9",tokenmall:"0x2Da675caB260c6aDC6A59802Df028B3057EeE848",nftStaking:"0x2d8D530941d6Cbe92Cf0654671522e425b9882A2"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}},"421613_release":{tokens:[{type:"eth",address:"eth",symbol:"AGOR",decimal:18},{type:"erc20",address:"0x8dd1439E0C3254b4543d6D68b3C0C891E5Bd2eCE",symbol:"CEC",decimal:18},{type:"erc20",address:"0x2C7221588D4FBac2585D71618CD540e74c7413B8",symbol:"CEG",decimal:18},{address:"0xE6A69474E04B93De50dd07F239d62879dB9bF716",name:"hero",type:"erc721"},{address:"0x8Ce844402bE22fA1276a375Ff2354DD27aDEF285",name:"weapon",type:"erc721"},{address:"0x4678fE0177B15538F441264cB851364d9F3872AA",name:"chip",type:"erc721"}],contracts:{minterFactory:"0x1A27515c35a92Fb276c2670fa27C85ffAd75D094",market:"0xb80E19c50747972E735c68C0BA5651AD952d70BC"}},"421613_dev":{tokens:[{type:"eth",address:"eth",symbol:"AGOR",decimal:18},{type:"erc20",address:"0x8dd1439E0C3254b4543d6D68b3C0C891E5Bd2eCE",symbol:"CEC",decimal:18},{type:"erc20",address:"0x2C7221588D4FBac2585D71618CD540e74c7413B8",symbol:"CEG",decimal:18},{address:"0xE6A69474E04B93De50dd07F239d62879dB9bF716",name:"hero",type:"erc721"},{address:"0x8Ce844402bE22fA1276a375Ff2354DD27aDEF285",name:"weapon",type:"erc721"},{address:"0x4678fE0177B15538F441264cB851364d9F3872AA",name:"chip",type:"erc721"},{type:"erc20",address:"0xaa34B79A0Ab433eaC900fB3CB9f191F5Cd27501D",symbol:"USDT",decimal:18,thirdparty:1},{type:"erc20",address:"0x944D0A8463B2c955F90F7252bBb99A3395087155",symbol:"USDC",decimal:6,thirdparty:1},{address:"0xEbC170185ad614C05Af38C820020b70E458717F5",name:"gacha",type:"erc721"},{address:"0xae37bb7BcA26Bab9a11D8BaE8fdB97f63b82c189",name:"TestHero",type:"erc721"},{address:"0x6f9c3F80C7F92064560eC09ab66dc132928Ff2dF",name:"planet",type:"erc721"}],contracts:{minterFactory:"0x1A27515c35a92Fb276c2670fa27C85ffAd75D094",nftmarket:"0xB9720d2c9D01FE36a1aA1224cbB06BF8e436812E",nftmall:"0x4d71dE0428328112A78D402A6fdd7ceD1C96B71e",gamemarket:"0x46e2C612756b702b3d68d89F97c88FFa725F6fab",gamemall:"0x1D058c7c7451c34BbfF9c0dF1C16b95C5d171d64",tokenmall:"0x22557f3fe7fbA53C66a35a3D70527D014704fd4D",nftStaking:"0xB18Ba312f939E58b959F30c747c198BDc205482E"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}},"195_dev":{tokens:[{type:"eth",address:"eth",symbol:"OKB",decimal:18},{type:"erc20",address:"0xB469331cEC98E52b7Eab07dFB586253bE232BBF7",symbol:"CEC",decimal:18},{type:"erc20",address:"0x0Ddb3c60DEab2d55bb757772A89680A0533f6B41",symbol:"CEG",decimal:18},{address:"0xE68F149daF2F314d9960c08496D8701BC7671850",name:"hero",type:"erc721"},{address:"0xD80a641a28702064e3f5EF383bd2640d4ff795c8",name:"planet",type:"erc721"},{address:"0x1991ee2f224ae5500fb15E90f9967Fb70F4ca27f",name:"gacha",type:"erc721"},{address:"0xC35Dcdb3672f1CFC5fe0B0Ec6861a5e9777757CD",name:"TestHero",type:"erc721"},{type:"erc20",address:"0x0Fd13D2CD0B6c679B6f92590E0b91C18DDe7BD3A",symbol:"USDT",decimal:18,thirdparty:1},{type:"erc20",address:"0x23e7Ef7D6F9bc3305E8EF0Fa1e5e12C1D5a4b06B",symbol:"USDC",decimal:6,thirdparty:1}],contracts:{minterFactory:"0xf45702180314187a3549FEDac3B78349b47ca6A0",nftmarket:"0xD7Fc45b5E6C7A7ad299b45E6D34B59b9c3B5e7e1",nftmall:"0x2036A0708AC2F17F67b08357d8b4A7d47cF49c29",gamemarket:"0x61E1B8A2937Fa966a6D50D294B66948Ee20f328a",gamemall:"0x31F29C9A3D0c1c13C825475aebF0d964b5B47c45",tokenmall:"0x20e2677F32dC0CB5D0bB0DEf9df84369AD5a7EC2",nftStaking:"0x07564E0C9dAC31F1640b34070C09aF3C820CD9E7"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}}};function HE0(t){const e=`${Hr()}/wallet/okx/sendtran`;return Rr(e,t)}function KE0(t){const e=`${Hr()}/wallet/okx/gasprice`;return Rr(e,t)}const u$=new Map([["eth_requestAccounts","requestAccounts"],["eth_gasPrice","gasPrice"],["eth_sendRawTransaction","sendTransaction"]]),VE0="0xa9059cbb",WE0="0x23b872dd";class GE0{constructor(e,r){this.address=e,this.rpc=r}async sendAsync(e,r){window.debug&&console.log("payload: "+JSON.stringify(e)),u$.has(e.method)?await this[u$.get(e.method)].call(this,e,r):await this.normalSend(e,r)}async send(e,r){this.sendAsync(e,r)}async normalSend(e,r){try{let a={};a["Content-Type"]="application/json";let f=await P4(this.rpc,{method:"POST",body:JSON.stringify(e),headers:a});f=await f.json(),r(null,f)}catch(a){r(a)}}requestAccounts(e,r){r(null,{id:e.id,jsonrpc:e.jsonrpc,result:this.address})}async gasPrice(e,r){let a=jc.wallet.currentChain.id;try{let f=await KE0({chain:a});if(f.errcode)r(new Error(f.errmsg));else{let n=f.data.min;n=sy(Number(n).toString(16)),r(null,{id:e.id,jsonrpc:e.jsonrpc,result:n})}}catch(f){r(f)}}async sendTransaction(e,r){let a=e.paramsOrig,f=jc.wallet.currentChain.id,n=kr(a.gas),l=kr(a.maxFeePerGas||a.gasPrice),m=n.mul(l),y={signedTx:e.params[0],addrFrom:a.from,addrTo:a.to,txHash:a.transactionHash,txAmount:kr(a.value||0).toString(),chainId:f,serviceCharge:m.toString(),extJson:{gasPrice:l.toString(),gasLimit:n.toString(),nonce:kr(a.nonce).toString()}};a.data?(y.txType="contractCall",(a.data.startsWith(VE0)||a.data.startsWith(WE0))&&(y.tokenAddress=a.to)):y.txType="transfer";try{let _=await HE0({data:y});console.log("sendTransaction result: ",JSON.stringify(_));let E={id:e.id,jsonrpc:e.jsonrpc};_.errcode?E.error={code:_.errcode,message:_.errmsg}:E.result=_.data.txHash,r(null,E)}catch(_){r(_)}}}var $o=(t=>(t.DEV="dev",t.RELEASE="release",t))($o||{});function ZE0(t){let e=GD();return localStorage.setItem(Jm,e+""),WD(e+"",t)}async function b$(...t){let e=t.pop(),r=t.pop(),a=!1;e&&(a=ZE0(e)),t.shift(),t.shift();let f;try{let n=await jc.wallet.initOKXWallet(...t);localStorage.setItem(bN,JSON.stringify(t)),localStorage.setItem(hN,n.address),Object.assign(n,{key:a}),n={errcode:0,data:n},r&&await s$(r,n)}catch(n){f=n}return{error:f}}async function YE0(){if(!jc||!jc.wallet||!jc.wallet.web3){window.showLoading({title:"prepare wallet"});let t=localStorage.getItem(bN);t||(t=JSON.stringify([421613,"dev"]));let e=JSON.parse(t);e.push(!1);let r=await jc.wallet.initOKXWallet(...e),a=localStorage.getItem(hN);if(a&&a!==r.address)throw new Error("Current address is inconsistent with the address bound to the game, Change current account then retry.")}}async function h$(...t){let e=t.shift(),r=t.shift();console.log(`relay method: ${e}.${r}`),r!==ih&&(await YE0(),window.showLoading({title:"parse chain request"}));let a,f;try{e?a=await jc.wallet[e][r](...t):a=await jc.wallet[r](...t)}catch(n){a=n.message||n,f=n}return{value:a,error:f}}var JE0=Object.defineProperty,XE0=Object.getOwnPropertyDescriptor,QE0=(t,e,r,a)=>{for(var f=a>1?void 0:a?XE0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&JE0(e,r,f),f};const l$=[{path:"",method:"initOKXWallet"},{path:"erc20Standard",method:"transfer"},{path:"erc721Standard",method:"transfer"},{path:"erc1155Standard",method:"transferBatch"},{path:"chainCommon",method:"sendEth"},{path:"jcStandard",method:"mintNFT"},{path:"jcStandard",method:"marketSellNFT"},{path:"jcStandard",method:"marketUpdatePrice"},{path:"jcStandard",method:"marketBuy"},{path:"jcStandard",method:"gameMallBuy"},{path:"jcStandard",method:"gameMarketBuy"},{path:"jcStandard",method:"buyTokenWithErc20"},{path:"jcStandard",method:"mallBuy"},{path:"jcStandard",method:"stakeNfts"},{path:"jcStandard",method:"redeemNfts"}],x$=1201;mt.RelayWallet=class{async startRelay(e){e=Ug0(e),new oa().relayToken=e,window.showLoading({title:"init wallet"});try{let{errcode:r,errmsg:a,data:f}=await o$(q8.TO_WALLET);if(r)throw new Error(a);if(f.status!==0)throw new Error("no task to do, back to game and try again.");await this.parseLastRelayCmd(f),window.showResult({title:"finished parse task, back to game manually."})}catch(r){if(r instanceof Xt&&r.statusCode===x$){let a=r.message||r||"";window.showResult({error:1,title:`parse task with error: ${a}, try again?`})}else{let a=r.message||r||"error parse task, please try again later.";window.showResult({title:a,error:1})}}return!0}async uploadRelayData(e){return d$(q8.FROM_WALLET,e)}async fetchRelayData(){return o$(q8.TO_WALLET)}async retryLastRelayCmd(){let e=localStorage.getItem(Xm);if(e)try{let r=JSON.parse(e);await this.parseLastRelayCmd(r),window.showResult({title:"finished parse task, back to game manually."}),localStorage.removeItem(Xm)}catch(r){let a=r.message||r||"";window.showResult({error:1,title:`parse task with error: ${a}, try again?`})}else console.log("no local tmp data")}async parseLastRelayCmd(e){window.hideRetry();let r=e.data,a;if(r.method===ih){let f=[...r.params,e.id,r.pk];a=(await b$.apply(this,f)).error}else{let f=r.method===uN;if(f){let m=localStorage.getItem(Jm);if(!m)throw new Error("relay msg key not found");r=JSON.parse(iy(r.values,m))}if(l$.findIndex(m=>m.method==r.method)<0)throw new Error(`method ${r.method} not found`);let{value:n,error:l}=await h$.apply(this,r.params);a=l,f&&(n={encrypt:1,values:ay(JSON.stringify({errcode:l?1:0,data:n}),localStorage.getItem(Jm))}),window.showLoading({title:"upload task result"}),await s$(e.id,n)}if(window.showBack(),a)throw e.retry+=1,window.showRetry(),localStorage.setItem(Xm,JSON.stringify(e)),new Xt(x$,a);window.backToGame&&window.backToGame()}async testInitWallet(){await b$("","",421613,"dev",0,"","")}async testSendEth(){await h$("chainCommon","sendEth","0x50A8e60041A206AcaA5F844a1104896224be6F39","0.01",0)}},mt.RelayWallet=QE0([$c],mt.RelayWallet);var eA0=Object.defineProperty,tA0=Object.getOwnPropertyDescriptor,rA0=(t,e,r,a)=>{for(var f=a>1?void 0:a?tA0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&eA0(e,r,f),f};window.Buffer=Q,global.AbortController=global.AbortController||window.AbortController,mt.default=class{constructor(){this.web3=null,this.wallet=null,this.password="111111",this.chainSet=new Set,this.chainMap=new Map,this.walletType=Kt.INTERNAL,this.rpcUrl="",this.rpc={},this.nativeAccount="",this.env=$o.DEV,this.web3Map=new Map,this.gameAccount="",this.useWaas=!1,this.nativeSvr=new bf,this.relaySvr=new ly,this.historySvr=new fy,this.emailVerifySvr=new ny,this.paySvr=new d6,window.jc={wallet:this},this.init()}updateChain(e){e=e||421613;let r=this.chainMap.get(e);if(!r)throw new Error("no current chain data");this._currentChain=r,this.rpcUrl=r.rpc,console.log(`rpc url: ${this.rpcUrl}`)}get isInternal(){return this.walletType===Kt.INTERNAL}get platform(){return window.JavascriptJavaBridge?(console.log("regist android jsb.reflection"),"game_android"):window.JavaScriptObjCBridge?"game_ios":window.platform||"web"}preLogin(e,r=$o.DEV,a){return this.env=r,YD(e,a)}bindPlatform(e,r){return YD(r,e)}verifyLocalPass(e){return gM0(e)}exportPrivateKey(e){return yM0(e)}emailLogin(e,r){return vM0(e,r)}configWeb3Env(){this.web3.eth.handleRevert=!0,this.web3.eth.transactionConfirmationBlocks=oN,this.erc20Standard=new wE0(this.web3),this.erc721Standard=new SE0(this.web3),this.erc1155Standard=new yE0(this.web3),this.jcStandard=new IE0(this.web3),this.chainCommon=new fE0(this.web3)}async initInternalWallet(e,r,a=$o.DEV,f=!1){this.env=a,this.walletType=Kt.INTERNAL,this.updateChain(e);let n=await mM0(r);this.nativeAccount=n,console.log("native wallet address: "+n);var l=Date.now();this.useWaas=f,this.web3=this.generateWeb3(e),console.log(`init web3 cost: ${(Date.now()-l)/1e3}s`),this.configWeb3Env(),console.log("this.web3.eth.defaultAccount: "+JSON.stringify(this.web3.eth.defaultAccount));let m=await this.web3.eth.getGasPrice();console.log("gas price: "+m)}async initThirdPartyWallet(e,r=$o.DEV){this.env=r,this.walletType=Kt.THIRD_PARTY,this.updateChain(e),this.wConnect&&this.wConnect.disconnect(),this.wConnect=new Zg0,await this.wConnect.connect(e),this.web3=new ya(this.wConnect.provider),this.configWeb3Env();let a=await this.web3.eth.getChainId();console.log(`current chain: ${a}, this._currentchain: ${this._currentChain.id}`),a!==this._currentChain.id&&await this.updateCurrentChain(this.currentChain.id)}async initRelayWallet(e,r=$o.DEV){this.env=r,this.walletType=Kt.RELAY,this.updateChain(e);let{token:a,address:f}=await $E0(e,r);return this.nativeAccount=f,this.web3=this.generateWeb3(e),this.configWeb3Env(),{address:f,token:a}}async initOKXWallet(e,r=$o.DEV,a=!0){console.log(`initOKXWallet with chain: ${e}, env: ${r}`),this.env=r,this.walletType=Kt.INJECTED,this.updateChain(e),this.injectedConnect&&this.injectedConnect.disconnect(),this.injectedConnect=new OE0,await this.injectedConnect.connect(e),this.web3=new ya(this.injectedConnect.provider);const f=await this.web3.eth.requestAccounts();this.injectedConnect.accounts=f;let n,l;if(a){let m=await this.injectedConnect.signWithSiwe();n=m.signature,l=m.message}return this.configWeb3Env(),await this.web3.eth.getChainId()!==this._currentChain.id&&await this.updateCurrentChain(this.currentChain.id),{address:f[0],signature:n,message:l}}init(){for(let e of Ig0)if(this.chainSet.add(e),!this.chainMap.has(e)){let r=Yg0.find(a=>a.id===e);r&&this.chainMap.set(e,r)}}get currentChain(){return this._currentChain}get currentChainCfg(){return qE0[`${this.currentChain.id}_${this.env}`]}updateCurrentChain(e){return new Promise((r,a)=>{if(this.walletType===Kt.INTERNAL){const f=this.chainMap.get(e);if(!f){a&&a("chain data not found");return}this._currentChain=f,this.web3.eth.setProvider(f.rpc),r&&r(this.currentChain)}else if(this.walletType===Kt.INJECTED){const f=this.chainMap.get(e);this.injectedConnect.addOrChangeChain(f).then(()=>{r&&r(f)}).catch(n=>{a&&a(n)})}else{console.log("third party wallet change chain: "+e);const f=this.chainMap.get(e);this.wConnect.addOrChangeChain(f).then(()=>{r&&r(f)}).catch(n=>{a&&a(n)}),setTimeout(()=>{jumpToWallet()},500)}})}get chainList(){return[...this.chainMap.values()]}currentAccount(){return this.walletType===Kt.INTERNAL||this.walletType===Kt.RELAY?this.wallet[0]:this.walletType===Kt.INJECTED?this.injectedConnect.accounts[0]:this.wConnect.accounts[0]}get currentAccAddr(){return this.walletType===Kt.INTERNAL||this.walletType===Kt.RELAY?this.nativeAccount:this.walletType===Kt.INJECTED?this.injectedConnect.accounts[0]:this.wConnect.accounts[0]}generateWeb3(e,r=!0){if(this.web3Map.has(e))return this.web3Map.get(e);const a=this.chainMap.get(e);if(!a)return null;let f;return this.useWaas&&this.env===$o.RELEASE?f=new ya(new GE0(this.nativeAccount,a.rpc)):f=new ya(a.rpc),this.injectAccount(f,r),this.web3Map.set(e,f),f}injectAccount(e,r=!0){const a=`${Pg0}${this.currentAccAddr.slice(2)}`,f=e.eth.accounts.privateKeyToAccount(a),n=e.eth.accounts.wallet.add(f);return e.eth.defaultAccount=n.address,console.log("web3 account: "+JSON.stringify(e.eth.accounts.wallet[0])),r&&(this.wallet=e.eth.accounts.wallet,e.eth.accounts.wallet.save(this.password,wg0)),n.address}async generateGasShow(e){let r=this.currentChain,a=await new d6().getGasPrice(r.id),f=F8(a).mul(F8(e)),n=r.type!=="Testnet"?r.symbol:"ETH",l=r.type!=="Testnet"?r.network||r.symbol:"ETH",m=await new d6().queryTokenPrice(l,n),y=parseFloat(m)*100,_=F8(y),E=Uh(f.mul(_),20),A=Uh(f,18);return{gas:e,price:a,eth:A,usd:E}}async fetchGasPrice(){let e=await this.web3.eth.getGasPrice();return console.log("fetchGasPrice::"+e),(parseInt(e)*1.3|0)+""}async calcTokenPrice(e,r){let a=this.currentChain,f=a.type!=="Testnet"?a.network||a.symbol:"ETH",n=this.env,l=await new d6().queryTokenPrice(f,e,n);return parseFloat(l)*parseFloat(r)}signTypedDataV4(e){const r=this.currentAccount();return Zo.signTypedData({data:e,privateKey:Q.from(r.privateKey.replace("0x",""),"hex"),version:Zo.SignTypedDataVersion.V4})}loginSign(e,r,a){return new Promise((f,n)=>{const l=this.currentAccount();if(this.walletType===Kt.INTERNAL){const m=Dg0(e,r,l.privateKey);f&&f(m)}else if(this.walletType===Kt.INJECTED)this.injectedConnect.signData({nonce:e,tips:r,chainId:this.currentChain.id},a||l).then(m=>{f&&f(m)});else{const m=lN(e,r);this.wConnect.signData(m,a||l).then(y=>{f&&f(y)}).catch(y=>{n&&n(y)}),setTimeout(()=>{jumpToWallet()},500)}})}recoverTypedSignatureV4(e,r){return Zo.recoverTypedSignature({data:e,signature:r,version:Zo.SignTypedDataVersion.V4})}generateIconData(e,r){return new C40().init(e,r)}formatPrice(e,r,a){return dy(e,r,a)}async erc20Info(e){let r=await this.erc20Standard.getTokenSymbol(e),a=await this.erc20Standard.getTokenDecimals(e);return{symbol:r,decimal:a}}async scanQr(e){let r=await this.nativeSvr.scanQRCode(e)+"";return console.log("scan qr code: "+r),r&&r.indexOf("://")>=0&&_M0(r),r}async deleteAccount(){return await fM0(),{}}async resetWalletAddress(){return await nM0(),await Oh(),{}}saveLocalItem(e,r){jsb.saveLocalStorage(e,r)}loadLocalItem(e){let r=jsb.loadLocalStorage(e);return console.log("loadLocalItem:: "+r),r}},mt.default=rA0([$c],mt.default),mt.BN_ZERO=dE0,mt.RELAYED_METHODS=l$,mt.WALLET_ACCOUNT_CHANGE=Og0,mt.WALLET_CHAIN_CHANGE=Rg0,mt.WALLET_TOKEN_TYPE_CHANGE=Ng0,mt.ZError=Xt,mt.addHexPrefix=sy,mt.addUrlProtocolPrefix=c$,mt.calcTokenValueToSend=uE0,mt.createWalletEvents=nh,mt.cryptoUtil=X_0,mt.fastSplit=a$,mt.formatAddress=lE0,mt.formatMoney=xE0,mt.fromTokenMinimalUnit=Uh,mt.getFormattedIpfsUrl=j8,mt.getIpfsCIDv1AndPath=f$,mt.isDecimal=bE0,mt.isSmartContractCode=hE0,mt.numberToBN=n$,mt.removeIpfsProtocolPrefix=by,mt.renderFromTokenMinimalUnit=dy,mt.renderFromWei=sE0,mt.safeNumberToBN=F8,mt.stripHexPrefix=uy,mt.toBN=kr,mt.toWeiBn=i$,Object.defineProperty(mt,"__esModule",{value:!0})}); +`)}}class OE0{constructor(){this.accounts=[],this.onAccountsChanged=e=>{console.log("on accountsChanged: ",e),this.accounts=e},this.onChainChanged=e=>{const r=parseInt(e);console.log("on chainChanged",e,r)},this.onDisconnect=e=>{console.log("on disconnect",e)}}async connect(e){this.provider=window.okxwallet||window.ethereum,this.chainId=e,this._subscribeToEvents()}async disconnect(){this.provider&&(this.provider.removeListener("accountsChanged",this.onAccountsChanged),this.provider.removeListener("chainChanged",this.onChainChanged),this.provider.removeListener("disconnect",this.onDisconnect))}_subscribeToEvents(){this.provider.on("accountsChanged",this.onAccountsChanged),this.provider.on("chainChanged",this.onChainChanged),this.provider.on("disconnect",this.onDisconnect)}async addOrChangeChain(e){return new Promise((r,a)=>{const f=l=>{console.log("switchEthereumChain: ",l),this.provider.removeListener("chainChanged",f),r&&r(l)};this.provider.on("chainChanged",f);let n={chainId:gN(e.id),chainName:e.name,nativeCurrency:{name:e.symbol,symbol:e.symbol,decimals:e.decimals||18},rpcUrls:[e.rpc],blockExplorerUrls:[e.explorerurl]};this.provider.request({method:"wallet_addEthereumChain",params:[n]}).then(()=>{console.log("add chain success, wait result")}).catch(l=>{console.error("add chain error: ",JSON.stringify(l)),this.provider.removeListener("chainChanged",f),a&&a(l)})})}async signWithSiwe(){let e=await Rh(()=>cM0(),cN);if(e.errcode)throw new Xt(e.errcode,e.errmsg);let r=e.data.nonce;return this.signData({chainId:this.chainId,nonce:r},this.accounts[0])}async signData(e,r){const a=Ur.toChecksumAddress(r),{chainId:f,nonce:n}=e;let l=new RE0({domain:document.location.host,address:a,chainId:f,uri:document.location.origin,version:"1",statement:"Counter Fire Wallet Relay",nonce:n}),m=l.toMessage();return{signature:await this.provider.request({method:"personal_sign",params:[Ur.utf8ToHex(m),a]}),message:l}}async sendCmd({method:e,params:r,from:a}){}}function NE0(t){const e=`${Hr()}/wallet/relay/prepare`;return Rr(e,t)}function o$(t){const e=`${Hr()}/wallet/relay/getlast`;return Rr(e,{type:t},new oa().relayToken)}function DE0(t){const e=`${Hr()}/wallet/relay/getdata`;return Rr(e,{id:t},new oa().relayToken)}function d$(t,e){const r=`${Hr()}/wallet/relay/putdata`;return Rr(r,{type:t,data:e},new oa().relayToken)}function s$(t,e){const r=`${Hr()}/wallet/relay/updata`;return Rr(r,{id:t,data:e},new oa().relayToken)}var q8=(t=>(t[t.TO_WALLET=0]="TO_WALLET",t[t.FROM_WALLET=1]="FROM_WALLET",t))(q8||{});async function $E0(t,e="dev"){let r=zr()+"",a=localStorage.getItem(sN);if(pN(60,a)){let _=jsb.preRegistClient(r),[E,A]=_.split("|"),k=await NE0({msg:r,address:E,signature:A});if(k.errorcode)throw new Error(k.errmsg);a=k.data.token,localStorage.setItem(sN,a)}console.log(`relay token: ${a}`),UE0(a);let f=await jc.wallet.relaySvr.beginReq("",ih,t,e),{address:n,signature:l,message:m,key:y}=f;return console.log(`initRelayWallet::from relay: address: ${n}, signature: ${l}, encrypt: ${!!y}`),y&&jsb.parseRelayAESKey(y),{token:await ZD({channel:Do.RELAY_WALLET,code:l,message:m}),address:n}}async function UE0(t){new oa().relayToken=t}async function LE0(t){return d$(q8.TO_WALLET,t)}var FE0=Object.defineProperty,jE0=Object.getOwnPropertyDescriptor,zE0=(t,e,r,a)=>{for(var f=a>1?void 0:a?jE0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&FE0(e,r,f),f};let ly=class{constructor(){this._event=nh()}_subscribeToResponse(t,e){this._event.on(`response:${t}`,e)}_subscribeToCallResponse(t){return new Promise((e,r)=>{this._subscribeToResponse(t,a=>{if(a.errcode){r(a.errmsg||a.data||a.errcode);return}e(a.data)})})}handleNativeCallback(...t){let e=t[0],r=JSON.parse(t[1]);this._event.emit(`response:${e}`,r)}async checkResult(){if(console.log("relay check result: "+window.currentRelayId),!window.currentRelayId)return;let{errcode:t,errmsg:e,data:r}=await DE0(window.currentRelayId),a=r.resp;if(typeof a=="object"&&a.encrypt){let f=jsb.loadRelayAESKey();a=JSON.parse(iy(a.values,f)),console.log("decrypt result: "+JSON.stringify(a))}this._event.emit(`response:${window.currentRelayId}`,a),window.currentRelayId=void 0}async beginReq(...t){let e=t[1],r={method:e,params:t};e===ih?r.pk=jsb.prepareRelayRSAKey():r={method:uN,values:ay(JSON.stringify(r),jsb.loadRelayAESKey())};let{errcode:a,data:f,errmsg:n}=await LE0(r);console.log("uploadRelayData result: "+JSON.stringify({errcode:a,data:f,errmsg:n}));let{id:l}=f;console.log("relay id: "+l);let m=$g0(new oa().relayToken);return window.toRelayPage(`${Tg0()}?token=${m}`),window.currentRelayId=l+"",this._subscribeToCallResponse(l)}};ly=zE0([$c],ly);const qE0={"42161_release":{tokens:[{type:"eth",address:"eth",symbol:"ETH",decimal:18},{type:"erc20",address:"0x741482aE1480E552735E44Ff3A733448AcBbeD8d",symbol:"CEG",decimal:18},{address:"0x79fc2a4216A1e595DBD09D13c4B4bD3B095d5bb2",name:"hero",type:"erc721"},{address:"0x551838d7754157D13e7D945b8a37bBD6Ad50dDC7",name:"chip",type:"erc721"},{address:"0xD728de3d9ebeD90E84aBe84539280cbC5b18E304",name:"genesis",type:"erc721"},{address:"0x3F13F83E6363D97d0353cAAfACA08B05D9BF3637",name:"gacha",type:"erc721"},{type:"erc20",address:"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",symbol:"USDT",decimal:6,thirdparty:1},{type:"erc20",address:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",symbol:"USDC",decimal:6,thirdparty:1},{address:"0x66944F7AEB68779DE2B4f68Fde5d704fff723134",name:"planet",type:"erc721"}],contracts:{minterFactory:"0x24499444b2BE6A8E3F800D47E4Ed0c36B5c0747e",nftmarket:"0xA683c7BC5f3c73782fce9fc614Fda7C999934db8",nftmall:"0xb5EF2FAC11c385041f847E34E0b1B4740436f769",gamemarket:"0x6232d2B720C22D6BCB633560b05002C472a64f18",gamemall:"0x1Ee01D949C848aF1ceDb80165b290554937819d9",tokenmall:"0x2Da675caB260c6aDC6A59802Df028B3057EeE848",nftStaking:"0x2d8D530941d6Cbe92Cf0654671522e425b9882A2"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}},"421613_release":{tokens:[{type:"eth",address:"eth",symbol:"AGOR",decimal:18},{type:"erc20",address:"0x8dd1439E0C3254b4543d6D68b3C0C891E5Bd2eCE",symbol:"CEC",decimal:18},{type:"erc20",address:"0x2C7221588D4FBac2585D71618CD540e74c7413B8",symbol:"CEG",decimal:18},{address:"0xE6A69474E04B93De50dd07F239d62879dB9bF716",name:"hero",type:"erc721"},{address:"0x8Ce844402bE22fA1276a375Ff2354DD27aDEF285",name:"weapon",type:"erc721"},{address:"0x4678fE0177B15538F441264cB851364d9F3872AA",name:"chip",type:"erc721"}],contracts:{minterFactory:"0x1A27515c35a92Fb276c2670fa27C85ffAd75D094",market:"0xb80E19c50747972E735c68C0BA5651AD952d70BC"}},"421613_dev":{tokens:[{type:"eth",address:"eth",symbol:"AGOR",decimal:18},{type:"erc20",address:"0x8dd1439E0C3254b4543d6D68b3C0C891E5Bd2eCE",symbol:"CEC",decimal:18},{type:"erc20",address:"0x2C7221588D4FBac2585D71618CD540e74c7413B8",symbol:"CEG",decimal:18},{address:"0xE6A69474E04B93De50dd07F239d62879dB9bF716",name:"hero",type:"erc721"},{address:"0x8Ce844402bE22fA1276a375Ff2354DD27aDEF285",name:"weapon",type:"erc721"},{address:"0x4678fE0177B15538F441264cB851364d9F3872AA",name:"chip",type:"erc721"},{type:"erc20",address:"0xaa34B79A0Ab433eaC900fB3CB9f191F5Cd27501D",symbol:"USDT",decimal:18,thirdparty:1},{type:"erc20",address:"0x944D0A8463B2c955F90F7252bBb99A3395087155",symbol:"USDC",decimal:6,thirdparty:1},{address:"0xEbC170185ad614C05Af38C820020b70E458717F5",name:"gacha",type:"erc721"},{address:"0xae37bb7BcA26Bab9a11D8BaE8fdB97f63b82c189",name:"TestHero",type:"erc721"},{address:"0x6f9c3F80C7F92064560eC09ab66dc132928Ff2dF",name:"planet",type:"erc721"}],contracts:{minterFactory:"0x1A27515c35a92Fb276c2670fa27C85ffAd75D094",nftmarket:"0xB9720d2c9D01FE36a1aA1224cbB06BF8e436812E",nftmall:"0x4d71dE0428328112A78D402A6fdd7ceD1C96B71e",gamemarket:"0x46e2C612756b702b3d68d89F97c88FFa725F6fab",gamemall:"0x1D058c7c7451c34BbfF9c0dF1C16b95C5d171d64",tokenmall:"0x22557f3fe7fbA53C66a35a3D70527D014704fd4D",nftStaking:"0xB18Ba312f939E58b959F30c747c198BDc205482E"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}},"195_dev":{tokens:[{type:"eth",address:"eth",symbol:"OKB",decimal:18},{type:"erc20",address:"0xB469331cEC98E52b7Eab07dFB586253bE232BBF7",symbol:"CEC",decimal:18},{type:"erc20",address:"0x0Ddb3c60DEab2d55bb757772A89680A0533f6B41",symbol:"CEG",decimal:18},{address:"0xE68F149daF2F314d9960c08496D8701BC7671850",name:"hero",type:"erc721"},{address:"0xD80a641a28702064e3f5EF383bd2640d4ff795c8",name:"planet",type:"erc721"},{address:"0x1991ee2f224ae5500fb15E90f9967Fb70F4ca27f",name:"gacha",type:"erc721"},{address:"0xC35Dcdb3672f1CFC5fe0B0Ec6861a5e9777757CD",name:"TestHero",type:"erc721"},{type:"erc20",address:"0x0Fd13D2CD0B6c679B6f92590E0b91C18DDe7BD3A",symbol:"USDT",decimal:18,thirdparty:1},{type:"erc20",address:"0x23e7Ef7D6F9bc3305E8EF0Fa1e5e12C1D5a4b06B",symbol:"USDC",decimal:6,thirdparty:1}],contracts:{minterFactory:"0xf45702180314187a3549FEDac3B78349b47ca6A0",nftmarket:"0xD7Fc45b5E6C7A7ad299b45E6D34B59b9c3B5e7e1",nftmall:"0x2036A0708AC2F17F67b08357d8b4A7d47cF49c29",gamemarket:"0x61E1B8A2937Fa966a6D50D294B66948Ee20f328a",gamemall:"0x31F29C9A3D0c1c13C825475aebF0d964b5B47c45",tokenmall:"0x20e2677F32dC0CB5D0bB0DEf9df84369AD5a7EC2",nftStaking:"0x07564E0C9dAC31F1640b34070C09aF3C820CD9E7"},gasInfo:{nftApprove:49340,cecApprove:46962,marketSellNFT:270740,marketCancelOrder:119027,marketUpdatePrice:41272,marketBuy:207735,gameMallBuy:119416,gameMarketBuy:133251}}};function HE0(t){const e=`${Hr()}/wallet/okx/sendtran`;return Rr(e,t)}function KE0(t){const e=`${Hr()}/wallet/okx/gasprice`;return Rr(e,t)}const u$=new Map([["eth_requestAccounts","requestAccounts"],["eth_gasPrice","gasPrice"],["eth_sendRawTransaction","sendTransaction"]]),VE0="0xa9059cbb",WE0="0x23b872dd";class GE0{constructor(e,r){this.address=e,this.rpc=r}async sendAsync(e,r){window.debug&&console.log("payload: "+JSON.stringify(e)),u$.has(e.method)?await this[u$.get(e.method)].call(this,e,r):await this.normalSend(e,r)}async send(e,r){this.sendAsync(e,r)}async normalSend(e,r){try{let a={};a["Content-Type"]="application/json";let f=await P4(this.rpc,{method:"POST",body:JSON.stringify(e),headers:a});f=await f.json(),r(null,f)}catch(a){r(a)}}requestAccounts(e,r){r(null,{id:e.id,jsonrpc:e.jsonrpc,result:this.address})}async gasPrice(e,r){let a=jc.wallet.currentChain.id;try{let f=await KE0({chain:a});if(f.errcode)r(new Error(f.errmsg));else{let n=f.data.min;n=sy(Number(n).toString(16)),r(null,{id:e.id,jsonrpc:e.jsonrpc,result:n})}}catch(f){r(f)}}async sendTransaction(e,r){let a=e.paramsOrig,f=jc.wallet.currentChain.id,n=kr(a.gas),l=kr(a.maxFeePerGas||a.gasPrice),m=n.mul(l),y={signedTx:e.params[0],addrFrom:a.from,addrTo:a.to,txHash:a.transactionHash,txAmount:kr(a.value||0).toString(),chainId:f,serviceCharge:m.toString(),extJson:{gasPrice:l.toString(),gasLimit:n.toString(),nonce:kr(a.nonce).toString()}};a.data?(y.txType="contractCall",(a.data.startsWith(VE0)||a.data.startsWith(WE0))&&(y.tokenAddress=a.to)):y.txType="transfer";try{let _=await HE0({data:y});console.log("sendTransaction result: ",JSON.stringify(_));let E={id:e.id,jsonrpc:e.jsonrpc};_.errcode?E.error={code:_.errcode,message:_.errmsg}:E.result=_.data.txHash,r(null,E)}catch(_){r(_)}}}var $o=(t=>(t.DEV="dev",t.RELEASE="release",t))($o||{});function ZE0(t){let e=GD();return localStorage.setItem(Jm,e+""),WD(e+"",t)}async function b$(...t){let e=t.pop(),r=t.pop(),a=!1;e&&(a=ZE0(e)),t.shift(),t.shift();let f;try{let n=await jc.wallet.initOKXWallet(...t);localStorage.setItem(bN,JSON.stringify(t)),localStorage.setItem(hN,n.address),Object.assign(n,{key:a}),n={errcode:0,data:n},r&&await s$(r,n)}catch(n){f=n}return{error:f}}async function YE0(){if(!jc||!jc.wallet||!jc.wallet.web3){window.showLoading({title:"prepare wallet"});let t=localStorage.getItem(bN);t||(t=JSON.stringify([421613,"dev"]));let e=JSON.parse(t);e.push(!1);let r=await jc.wallet.initOKXWallet(...e),a=localStorage.getItem(hN);if(a&&a!==r.address)throw new Error("Current address is inconsistent with the address bound to the game, Change current account then retry.")}}async function h$(...t){let e=t.shift(),r=t.shift();console.log(`relay method: ${e}.${r}`),r!==ih&&(await YE0(),window.showLoading({title:"parse chain request"}));let a,f;try{e?a=await jc.wallet[e][r](...t):a=await jc.wallet[r](...t)}catch(n){a=n.message||n,f=n}return{value:a,error:f}}var JE0=Object.defineProperty,XE0=Object.getOwnPropertyDescriptor,QE0=(t,e,r,a)=>{for(var f=a>1?void 0:a?XE0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&JE0(e,r,f),f};const l$=[{path:"",method:"initOKXWallet"},{path:"erc20Standard",method:"transfer"},{path:"erc721Standard",method:"transfer"},{path:"erc1155Standard",method:"transferBatch"},{path:"chainCommon",method:"sendEth"},{path:"jcStandard",method:"mintNFT"},{path:"jcStandard",method:"marketSellNFT"},{path:"jcStandard",method:"marketUpdatePrice"},{path:"jcStandard",method:"marketBuy"},{path:"jcStandard",method:"gameMallBuy"},{path:"jcStandard",method:"gameMarketBuy"},{path:"jcStandard",method:"buyTokenWithErc20"},{path:"jcStandard",method:"mallBuy"},{path:"jcStandard",method:"stakeNfts"},{path:"jcStandard",method:"redeemNfts"}],x$=1201;mt.RelayWallet=class{async startRelay(e){e=Ug0(e),new oa().relayToken=e,window.showLoading({title:"init wallet"});try{let{errcode:r,errmsg:a,data:f}=await o$(q8.TO_WALLET);if(r)throw new Error(a);if(f.status!==0)throw new Error("no task to do, back to game and try again.");await this.parseLastRelayCmd(f),window.showResult({title:"finished parse task, back to game manually."})}catch(r){if(r instanceof Xt&&r.statusCode===x$){let a=r.message||r||"";window.showResult({error:1,title:`parse task with error: ${a}, try again?`})}else{let a=r.message||r||"error parse task, please try again later.";window.showResult({title:a,error:1})}}return!0}async uploadRelayData(e){return d$(q8.FROM_WALLET,e)}async fetchRelayData(){return o$(q8.TO_WALLET)}async retryLastRelayCmd(){let e=localStorage.getItem(Xm);if(e)try{let r=JSON.parse(e);await this.parseLastRelayCmd(r),window.showResult({title:"finished parse task, back to game manually."}),localStorage.removeItem(Xm)}catch(r){let a=r.message||r||"";window.showResult({error:1,title:`parse task with error: ${a}, try again?`})}else console.log("no local tmp data")}async parseLastRelayCmd(e){window.hideRetry();let r=e.data,a;if(r.method===ih){let f=[...r.params,e.id,r.pk];a=(await b$.apply(this,f)).error}else{let f=r.method===uN;if(f){let m=localStorage.getItem(Jm);if(!m)throw new Error("relay msg key not found");r=JSON.parse(iy(r.values,m))}if(l$.findIndex(m=>m.method==r.method)<0)throw new Error(`method ${r.method} not found`);let{value:n,error:l}=await h$.apply(this,r.params);a=l,f&&(n={encrypt:1,values:ay(JSON.stringify({errcode:l?1:0,data:n}),localStorage.getItem(Jm))}),window.showLoading({title:"upload task result"}),await s$(e.id,n)}if(window.showBack(),a)throw e.retry+=1,window.showRetry(),localStorage.setItem(Xm,JSON.stringify(e)),new Xt(x$,a);window.backToGame&&window.backToGame()}async testInitWallet(){await b$("","",421613,"dev",0,"","")}async testSendEth(){await h$("chainCommon","sendEth","0x50A8e60041A206AcaA5F844a1104896224be6F39","0.01",0)}},mt.RelayWallet=QE0([$c],mt.RelayWallet);var eA0=Object.defineProperty,tA0=Object.getOwnPropertyDescriptor,rA0=(t,e,r,a)=>{for(var f=a>1?void 0:a?tA0(e,r):e,n=t.length-1,l;n>=0;n--)(l=t[n])&&(f=(a?l(e,r,f):l(f))||f);return a&&f&&eA0(e,r,f),f};window.Buffer=Q,global.AbortController=global.AbortController||window.AbortController,mt.default=class{constructor(){this.web3=null,this.wallet=null,this.password="111111",this.chainSet=new Set,this.chainMap=new Map,this.walletType=Kt.INTERNAL,this.rpcUrl="",this.rpc={},this.nativeAccount="",this.env=$o.DEV,this.web3Map=new Map,this.gameAccount="",this.useWaas=!1,this.nativeSvr=new bf,this.relaySvr=new ly,this.historySvr=new fy,this.emailVerifySvr=new ny,this.paySvr=new d6,window.jc={wallet:this},this.init()}updateChain(e){e=e||421613;let r=this.chainMap.get(e);if(!r)throw new Error("no current chain data");this._currentChain=r,this.rpcUrl=r.rpc,console.log(`rpc url: ${this.rpcUrl}`)}get isInternal(){return this.walletType===Kt.INTERNAL}get platform(){return window.JavascriptJavaBridge?(console.log("regist android jsb.reflection"),"game_android"):window.JavaScriptObjCBridge?"game_ios":window.platform||"web"}preLogin(e,r=$o.DEV,a){return this.env=r,YD(e,a)}bindPlatform(e,r){return YD(r,e)}verifyLocalPass(e){return gM0(e)}exportPrivateKey(e){return yM0(e)}emailLogin(e,r){return vM0(e,r)}configWeb3Env(){this.web3.eth.handleRevert=!0,this.web3.eth.transactionConfirmationBlocks=oN,this.erc20Standard=new wE0(this.web3),this.erc721Standard=new SE0(this.web3),this.erc1155Standard=new yE0(this.web3),this.jcStandard=new IE0(this.web3),this.chainCommon=new fE0(this.web3)}async initInternalWallet(e,r,a=$o.DEV,f=!1){this.env=a,this.useWaas=f,this.walletType=Kt.INTERNAL,this.updateChain(e);let n=await mM0(r);this.nativeAccount=n,console.log("native wallet address: "+n);var l=Date.now();this.web3=this.generateWeb3(e),console.log(`init web3 cost: ${(Date.now()-l)/1e3}s`),this.configWeb3Env(),console.log("this.web3.eth.defaultAccount: "+JSON.stringify(this.web3.eth.defaultAccount));let m=await this.web3.eth.getGasPrice();console.log("gas price: "+m)}async initThirdPartyWallet(e,r=$o.DEV){this.env=r,this.walletType=Kt.THIRD_PARTY,this.updateChain(e),this.wConnect&&this.wConnect.disconnect(),this.wConnect=new Zg0,await this.wConnect.connect(e),this.web3=new ya(this.wConnect.provider),this.configWeb3Env();let a=await this.web3.eth.getChainId();console.log(`current chain: ${a}, this._currentchain: ${this._currentChain.id}`),a!==this._currentChain.id&&await this.updateCurrentChain(this.currentChain.id)}async initRelayWallet(e,r=$o.DEV){this.env=r,this.walletType=Kt.RELAY,this.updateChain(e);let{token:a,address:f}=await $E0(e,r);return this.nativeAccount=f,this.web3=this.generateWeb3(e),this.configWeb3Env(),{address:f,token:a}}async initOKXWallet(e,r=$o.DEV,a=!0){console.log(`initOKXWallet with chain: ${e}, env: ${r}`),this.env=r,this.walletType=Kt.INJECTED,this.updateChain(e),this.injectedConnect&&this.injectedConnect.disconnect(),this.injectedConnect=new OE0,await this.injectedConnect.connect(e),this.web3=new ya(this.injectedConnect.provider);const f=await this.web3.eth.requestAccounts();this.injectedConnect.accounts=f;let n,l;if(a){let m=await this.injectedConnect.signWithSiwe();n=m.signature,l=m.message}return this.configWeb3Env(),await this.web3.eth.getChainId()!==this._currentChain.id&&await this.updateCurrentChain(this.currentChain.id),{address:f[0],signature:n,message:l}}init(){for(let e of Ig0)if(this.chainSet.add(e),!this.chainMap.has(e)){let r=Yg0.find(a=>a.id===e);r&&this.chainMap.set(e,r)}}get currentChain(){return this._currentChain}get currentChainCfg(){return qE0[`${this.currentChain.id}_${this.env}`]}updateCurrentChain(e){return new Promise((r,a)=>{if(this.walletType===Kt.INTERNAL){const f=this.chainMap.get(e);if(!f){a&&a("chain data not found");return}this._currentChain=f,this.web3.eth.setProvider(f.rpc),r&&r(this.currentChain)}else if(this.walletType===Kt.INJECTED){const f=this.chainMap.get(e);this.injectedConnect.addOrChangeChain(f).then(()=>{r&&r(f)}).catch(n=>{a&&a(n)})}else{console.log("third party wallet change chain: "+e);const f=this.chainMap.get(e);this.wConnect.addOrChangeChain(f).then(()=>{r&&r(f)}).catch(n=>{a&&a(n)}),setTimeout(()=>{jumpToWallet()},500)}})}get chainList(){return[...this.chainMap.values()]}currentAccount(){return this.walletType===Kt.INTERNAL||this.walletType===Kt.RELAY?this.wallet[0]:this.walletType===Kt.INJECTED?this.injectedConnect.accounts[0]:this.wConnect.accounts[0]}get currentAccAddr(){return this.walletType===Kt.INTERNAL||this.walletType===Kt.RELAY?this.nativeAccount:this.walletType===Kt.INJECTED?this.injectedConnect.accounts[0]:this.wConnect.accounts[0]}generateWeb3(e,r=!0){if(this.web3Map.has(e))return this.web3Map.get(e);const a=this.chainMap.get(e);if(!a)return null;let f;return this.useWaas&&this.env===$o.RELEASE?f=new ya(new GE0(this.nativeAccount,a.rpc)):f=new ya(a.rpc),this.injectAccount(f,r),this.web3Map.set(e,f),f}injectAccount(e,r=!0){const a=`${Pg0}${this.currentAccAddr.slice(2)}`,f=e.eth.accounts.privateKeyToAccount(a),n=e.eth.accounts.wallet.add(f);return e.eth.defaultAccount=n.address,console.log("web3 account: "+JSON.stringify(e.eth.accounts.wallet[0])),r&&(this.wallet=e.eth.accounts.wallet,e.eth.accounts.wallet.save(this.password,wg0)),n.address}async generateGasShow(e){let r=this.currentChain,a=await new d6().getGasPrice(r.id),f=F8(a).mul(F8(e)),n=r.type!=="Testnet"?r.symbol:"ETH",l=r.type!=="Testnet"?r.network||r.symbol:"ETH",m=await new d6().queryTokenPrice(l,n),y=parseFloat(m)*100,_=F8(y),E=Uh(f.mul(_),20),A=Uh(f,18);return{gas:e,price:a,eth:A,usd:E}}async fetchGasPrice(){let e=await this.web3.eth.getGasPrice();return console.log("fetchGasPrice::"+e),(parseInt(e)*1.3|0)+""}async calcTokenPrice(e,r){let a=this.currentChain,f=a.type!=="Testnet"?a.network||a.symbol:"ETH",n=this.env,l=await new d6().queryTokenPrice(f,e,n);return parseFloat(l)*parseFloat(r)}signTypedDataV4(e){const r=this.currentAccount();return Zo.signTypedData({data:e,privateKey:Q.from(r.privateKey.replace("0x",""),"hex"),version:Zo.SignTypedDataVersion.V4})}loginSign(e,r,a){return new Promise((f,n)=>{const l=this.currentAccount();if(this.walletType===Kt.INTERNAL){const m=Dg0(e,r,l.privateKey);f&&f(m)}else if(this.walletType===Kt.INJECTED)this.injectedConnect.signData({nonce:e,tips:r,chainId:this.currentChain.id},a||l).then(m=>{f&&f(m)});else{const m=lN(e,r);this.wConnect.signData(m,a||l).then(y=>{f&&f(y)}).catch(y=>{n&&n(y)}),setTimeout(()=>{jumpToWallet()},500)}})}recoverTypedSignatureV4(e,r){return Zo.recoverTypedSignature({data:e,signature:r,version:Zo.SignTypedDataVersion.V4})}generateIconData(e,r){return new C40().init(e,r)}formatPrice(e,r,a){return dy(e,r,a)}async erc20Info(e){let r=await this.erc20Standard.getTokenSymbol(e),a=await this.erc20Standard.getTokenDecimals(e);return{symbol:r,decimal:a}}async scanQr(e){let r=await this.nativeSvr.scanQRCode(e)+"";return console.log("scan qr code: "+r),r&&r.indexOf("://")>=0&&_M0(r),r}async deleteAccount(){return await fM0(),{}}async resetWalletAddress(){return await nM0(),await Oh(),{}}saveLocalItem(e,r){jsb.saveLocalStorage(e,r)}loadLocalItem(e){let r=jsb.loadLocalStorage(e);return console.log("loadLocalItem:: "+r),r}},mt.default=rA0([$c],mt.default),mt.BN_ZERO=dE0,mt.RELAYED_METHODS=l$,mt.WALLET_ACCOUNT_CHANGE=Og0,mt.WALLET_CHAIN_CHANGE=Rg0,mt.WALLET_TOKEN_TYPE_CHANGE=Ng0,mt.ZError=Xt,mt.addHexPrefix=sy,mt.addUrlProtocolPrefix=c$,mt.calcTokenValueToSend=uE0,mt.createWalletEvents=nh,mt.cryptoUtil=X_0,mt.fastSplit=a$,mt.formatAddress=lE0,mt.formatMoney=xE0,mt.fromTokenMinimalUnit=Uh,mt.getFormattedIpfsUrl=j8,mt.getIpfsCIDv1AndPath=f$,mt.isDecimal=bE0,mt.isSmartContractCode=hE0,mt.numberToBN=n$,mt.removeIpfsProtocolPrefix=by,mt.renderFromTokenMinimalUnit=dy,mt.renderFromWei=sE0,mt.safeNumberToBN=F8,mt.stripHexPrefix=uy,mt.toBN=kr,mt.toWeiBn=i$,Object.defineProperty(mt,"__esModule",{value:!0})}); //# sourceMappingURL=index.umd.js.map