@wowok/wowok 2.4.0 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/esm/{arb-pFcb4ftp.mjs → arb-BnQJqqhz.mjs} +1 -1
  2. package/dist/esm/{base-BdlWCNje.mjs → base-BlihG_GH.mjs} +1 -1
  3. package/dist/esm/bcs/index.d.mts +1 -1
  4. package/dist/esm/{call-Cf74XogX.mjs → call-B6fYMOsg.mjs} +1 -1
  5. package/dist/esm/client/index.d.mts +1 -1
  6. package/dist/esm/client/index.mjs +1 -1
  7. package/dist/esm/{client-CcSxA1Tm.mjs → client-BQ4n-Q-u.mjs} +1 -1
  8. package/dist/esm/common-Dez7yfwb.mjs +1 -0
  9. package/dist/esm/cryptography/index.d.mts +1 -1
  10. package/dist/esm/{evm-account-B1-nzcbY.d.mts → evm-account-31ggIkIl.d.mts} +11 -1
  11. package/dist/esm/graphql/index.d.mts +1 -1
  12. package/dist/esm/graphql/index.mjs +1 -1
  13. package/dist/esm/{graphql-Ccoor2f6.mjs → graphql-BYYn-EoT.mjs} +1 -1
  14. package/dist/esm/grpc/index.d.mts +1 -1
  15. package/dist/esm/grpc/index.mjs +1 -1
  16. package/dist/esm/{grpc-33XsFGKx.mjs → grpc-7RkEoDwQ.mjs} +1 -1
  17. package/dist/esm/{index-B8BZSNzI.d.mts → index-Cj4KHtbw.d.mts} +6 -6
  18. package/dist/esm/{index-C-WBdTM5.d.mts → index-KMDfU9AV.d.mts} +98 -9
  19. package/dist/esm/index.d.mts +6 -6
  20. package/dist/esm/index.mjs +1 -1
  21. package/dist/esm/jsonRpc/index.d.mts +1 -1
  22. package/dist/esm/jsonRpc/index.mjs +1 -1
  23. package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
  24. package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
  25. package/dist/esm/keypairs/passkey/index.d.mts +1 -1
  26. package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
  27. package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
  28. package/dist/esm/{local-CnxBimye.d.mts → local-gzBIsXyJ.d.mts} +16 -0
  29. package/dist/esm/{messenger-CkRQcNzs.mjs → messenger-Cihp09QB.mjs} +1 -1
  30. package/dist/esm/{messenger-api-B9NB9Byo.mjs → messenger-api-qb3twtEB.mjs} +1 -1
  31. package/dist/esm/multisig/index.d.mts +1 -1
  32. package/dist/esm/multisig/index.mjs +1 -1
  33. package/dist/esm/object-BNhdNXsP.mjs +1 -0
  34. package/dist/esm/{proof-BR6cbbRo.mjs → proof-BFhl55ft.mjs} +1 -1
  35. package/dist/esm/publickey-DMk4XMWI.mjs +1 -0
  36. package/dist/esm/{query-CoCibg2q.mjs → query-BimC4q7z.mjs} +1 -1
  37. package/dist/esm/{received-H24viThJ.mjs → received-CnachG8a.mjs} +1 -1
  38. package/dist/esm/{secure-storage-D4X3f-9t.d.mts → secure-storage-DFF-RQn-.d.mts} +30 -0
  39. package/dist/esm/{service-NZ-TLNHV.mjs → service-D2Cr9jMJ.mjs} +1 -1
  40. package/dist/esm/transactions/index.d.mts +1 -1
  41. package/dist/esm/{util-DWhWaV7w.mjs → util-Ohx2L-yb.mjs} +1 -1
  42. package/dist/esm/verify/index.d.mts +1 -1
  43. package/dist/esm/verify/index.mjs +1 -1
  44. package/dist/esm/w/call/allocation.d.mts +1 -1
  45. package/dist/esm/w/call/allocation.mjs +1 -1
  46. package/dist/esm/w/call/arbitration.d.mts +1 -1
  47. package/dist/esm/w/call/arbitration.mjs +1 -1
  48. package/dist/esm/w/call/base.d.mts +1 -1
  49. package/dist/esm/w/call/base.mjs +1 -1
  50. package/dist/esm/w/call/demand.d.mts +1 -1
  51. package/dist/esm/w/call/demand.mjs +1 -1
  52. package/dist/esm/w/call/guard.d.mts +1 -1
  53. package/dist/esm/w/call/guard.mjs +1 -1
  54. package/dist/esm/w/call/index.d.mts +2 -2
  55. package/dist/esm/w/call/index.mjs +1 -1
  56. package/dist/esm/w/call/machine.d.mts +1 -1
  57. package/dist/esm/w/call/machine.mjs +1 -1
  58. package/dist/esm/w/call/passport.d.mts +1 -1
  59. package/dist/esm/w/call/passport.mjs +1 -1
  60. package/dist/esm/w/call/payment.d.mts +1 -1
  61. package/dist/esm/w/call/payment.mjs +1 -1
  62. package/dist/esm/w/call/permission.d.mts +1 -1
  63. package/dist/esm/w/call/permission.mjs +1 -1
  64. package/dist/esm/w/call/progress.d.mts +1 -1
  65. package/dist/esm/w/call/progress.mjs +1 -1
  66. package/dist/esm/w/call/repository.d.mts +1 -1
  67. package/dist/esm/w/call/repository.mjs +1 -1
  68. package/dist/esm/w/call/reward.d.mts +1 -1
  69. package/dist/esm/w/call/reward.mjs +1 -1
  70. package/dist/esm/w/call/service.d.mts +1 -1
  71. package/dist/esm/w/call/service.mjs +1 -1
  72. package/dist/esm/w/call/treasury.d.mts +1 -1
  73. package/dist/esm/w/call/treasury.mjs +1 -1
  74. package/dist/esm/w/common.d.mts +2 -2
  75. package/dist/esm/w/common.mjs +1 -1
  76. package/dist/esm/w/index.d.mts +5 -5
  77. package/dist/esm/w/index.mjs +1 -1
  78. package/dist/esm/w/local/account.d.mts +1 -1
  79. package/dist/esm/w/local/account.mjs +1 -1
  80. package/dist/esm/w/local/evm-account.d.mts +1 -1
  81. package/dist/esm/w/local/evm-account.mjs +1 -1
  82. package/dist/esm/w/local/index.d.mts +4 -4
  83. package/dist/esm/w/local/index.mjs +1 -1
  84. package/dist/esm/w/local/local.d.mts +1 -1
  85. package/dist/esm/w/local/local.mjs +1 -1
  86. package/dist/esm/w/local/secure-storage.d.mts +1 -1
  87. package/dist/esm/w/local/secure-storage.mjs +1 -1
  88. package/dist/esm/w/local/token.d.mts +1 -1
  89. package/dist/esm/w/local/token.mjs +1 -1
  90. package/dist/esm/w/messenger/index.d.mts +1 -1
  91. package/dist/esm/w/messenger/index.mjs +1 -1
  92. package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
  93. package/dist/esm/w/messenger/messenger-api.mjs +1 -1
  94. package/dist/esm/w/messenger/messenger.d.mts +1 -1
  95. package/dist/esm/w/messenger/messenger.mjs +1 -1
  96. package/dist/esm/w/messenger/storage.d.mts +1 -1
  97. package/dist/esm/w/messenger/types.d.mts +1 -1
  98. package/dist/esm/w/query/index.d.mts +1 -1
  99. package/dist/esm/w/query/index.mjs +1 -1
  100. package/dist/esm/w/query/object.d.mts +1 -1
  101. package/dist/esm/w/query/object.mjs +1 -1
  102. package/dist/esm/{w-GXPhQ_II.mjs → w-3MFUa2LE.mjs} +1 -1
  103. package/package.json +1 -1
  104. package/dist/esm/common-D8TcHVCJ.mjs +0 -1
  105. package/dist/esm/object-D5C_RkYD.mjs +0 -1
  106. package/dist/esm/publickey-DhiTZPiB.mjs +0 -1
@@ -1 +1 @@
1
- import{a as a75a}from'../../wow-types-DcqbnAaK.mjs';import{t as a75b}from'../../client-CcSxA1Tm.mjs';import{t as a75c}from'../../Transaction-CzqJDezj.mjs';import{n as a75d}from'../../network-CeDd07Hg.mjs';import{c as a75e}from'../../keypair-BqNhxtoP.mjs';import{n as a75f,r as a75g}from'../../faucet-RNvBvVJf.mjs';import{n as a75h}from'../../falcon512-Be5BlPLD.mjs';import{L as a75i,U as a75j}from'../../common-D8TcHVCJ.mjs';import{o as a75k}from'../../exception-CkI_xPvd.mjs';import{n as a75l,u as a75m}from'../../storage-UnD4qWaK.mjs';import{Config}from'./config.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{sha256}from'@noble/hashes/sha2.js';import{x25519}from'@noble/curves/ed25519.js';import{hkdf}from'@noble/hashes/hkdf.js';const DEFAULT_ACCOUNT_NAME='',MAX_MESSENGER_ACCOUNTS=0x64;var Account=class Account{constructor(){this['balance']=async(b,c,d)=>{const e=await this['get'](c);b=b??'0x2::wow::WOW';if(e){const f=await Config['Instance']()['network_get'](d);return new a75b({'url':a75d(f),'network':f})['getBalance']({'owner':e['address'],'coinType':b});}},this['coin']=async(b,c,d,e,f)=>{const g=await this['get'](e);b=b??'0x2::wow::WOW';if(g){const h=await Config['Instance']()['network_get'](f);return new a75b({'url':a75d(h),'network':h})['getCoins']({'owner':g['address'],'coinType':b,'cursor':c,'limit':d});}},this['get_coin_object']=async(c,d,e,f,g)=>{const h=await this['get'](f);if(h){const j=BigInt(d),k=await Config['Instance']()['network_get'](g),l=new a75b({'url':a75d(k),'network':k});if(j>=BigInt(0x0)){if(!e||a75i(e))return c['splitCoins'](c['gas'],[j]);else{const m=await l['getCoins']({'owner':h['address'],'coinType':e}),n=[],o=new Set();let p=BigInt(0x0);for(let q=0x0;q<m['data']['length'];++q){const s=m['data'][q]['coinObjectId'];if(o['has'](s))continue;o['add'](s),p+=BigInt(m['data'][q]['balance']),n['push'](s);if(p>=j)break;}if(n['length']===0x0)return;if(n['length']===0x1)return c['splitCoins'](n[0x0],[j]);else{const t=n['pop']();return c['mergeCoins'](t,n),c['splitCoins'](t,[j]);}}}}},this['get_many_coin_object']=async(a,b,c,d,e)=>{const f=[];for(const g of b){const h=await this['get_coin_object'](a,g,d,c,e);if(!h)a75k('invalid\x20parameter','Invalid\x20coin\x20object:\x20'+g);else f['push'](h);}return a['makeMoveVec']({'elements':f});},this['coinObject_with_balance']=async(b,c,d,e)=>{const f=await this['get_imp'](d);if(!f)return void 0x0;const g=a75h['fromSecretKey'](f['secret']);if(!g)return void 0x0;const h=new a75c(),i=await this['get_coin_object'](h,b,c,d,e);if(i){h['transferObjects']([i],f['address']);const j=await Config['Instance']()['network_get'](e),k=await new a75b({'url':a75d(j),'network':j})['signAndExecuteTransaction']({'transaction':h,'signer':g,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}}),l=c??'0x2::wow::WOW';return(k?.['objectChanges']?.['find'](m=>m?.['type']==='created'&&(m?.['objectType'])['includes'](l)))?.['objectId'];}};}static{this['_dataLock']=new a75m();}static{this['_storageLock']=new a75m();}['setStorage'](a){Account['storage']=a;}['setEncryptedStorage'](a){Account['storage']=new SecureAccountStorage(a);}async['getStorage'](){if(Account['storage'])return Account['storage'];return Account['_storageLock']['run'](async()=>{if(!Account['storage'])Account['storage']=new SecureAccountStorage(new a75l());return Account['storage'];});}async['unlock'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}async['exportSecret'](a){const b=await(await this['getStorage']())['get']();if(!b)return void 0x0;const c=JSON['parse'](b),d=a['toLowerCase']();return c['find'](e=>e['address']['toLowerCase']()===d||e['name']&&e['name']['toLowerCase']()===d)?.['secret'];}static['Instance'](){if(Account['_instance'])return Account['_instance'];if(!Account['_instance'])Account['_instance']=new Account();return Account['_instance'];}['accountData'](a,b=![]){if(!a||!a['secret'])return void 0x0;if(b)a['pubkey']=a75h['fromSecretKey'](a['secret'])['getPublicKey']()['toWowPublicKey']();a['secret']=void 0x0;if(a['name']===void 0x0)a['name']='';return a;}static['nameMatch'](a,b){if(a==null)return![];return a['toLowerCase']()===b['toLowerCase']();}async['gen'](a,b,c,d=![]){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a);if(a&&!a75j(a))a75k('invalid\x20name','Name\x20'+a+'\x20is\x20exceeds\x20max\x2064');if(c&&!a75j(c))a75k('invalid\x20name','Messenger\x20name\x20'+c+'\x20is\x20exceeds\x20max\x2064');const e=a75h['generate']()['getSecretKey'](),f=a75h['fromSecretKey'](e)['getPublicKey']()['toWowAddress'](),g=Date['now'](),h={'name':a,'address':f,'secret':e,'m':c||void 0x0,'createdAt':g,'updatedAt':g},i=await this['getStorage'](),j=await i['get'](),k=j?JSON['parse'](j):[],l=k['findIndex'](n=>Account['nameMatch'](n['name'],a));if(l!==-0x1){if(b)k[l]['name']=void 0x0;else a75k('account\x20name\x20exist','Name\x20'+(a||'')+'\x20already\x20exist');}if(c){const n=k['filter'](o=>o['m']!=null&&!o['suspended'])['length'];if(n>=0x64)a75k('invalid\x20parameter','Maximum\x20100\x20messenger\x20accounts\x20allowed,\x20current\x20count:\x20'+n);}return k['push'](h),await i['put'](JSON['stringify'](k)),this['accountData'](h,d);});}async['default'](a=![]){return this['accountData'](await this['get_imp'](''),a);}async['get'](a,b,c=![]){if(!b)return this['accountData'](await this['get_imp'](a),c);return this['gen'](a);}async['get_address'](a){if(a&&a75a(a))return a['toLowerCase']();return(await this['get_imp'](a))?.['address'];}async['get_many_address'](a){const b=await(await this['getStorage']())['get']();if(b){const c=JSON['parse'](b);return a['map'](d=>{if(d&&a75a(d))return d['toLowerCase']();const e=this['name_resolve'](d);return c['find'](f=>f['address']['toLowerCase']()===e['toLowerCase']()||Account['nameMatch'](f['name'],e))?.['address'];});}return a['map'](d=>d&&a75a(d)?d['toLowerCase']():void 0x0);}async['get_imp'](a){a=this['name_resolve'](a);const b=await(await this['getStorage']())['get']();if(b){const c=a['toLowerCase']();return JSON['parse'](b)['find'](e=>Account['nameMatch'](e['name'],a)||e['address']['toLowerCase']()===c);}}['name_resolve'](a){return a||'';}async['get_many'](a,b=![]){return this['get_many_imp'](a,b);}async['get_many_imp'](a,b=![]){const c=await(await this['getStorage']())['get']();if(c){const d=JSON['parse'](c);return a['map'](e=>{const f=this['name_resolve'](e),g=d['find'](h=>h['address']['toLowerCase']()===f['toLowerCase']()||Account['nameMatch'](h['name'],f));if(!g)return void 0x0;if(b){const h=a75h['fromSecretKey'](g['secret']),j={...g,'pubkey':h['getPublicKey']()['toWowPublicKey']()};return delete j['secret'],j;}return g;});}return a['map'](e=>void 0x0);}async['swap_name'](a,b){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a),b=this['name_resolve'](b);if(this['name_resolve'](a)===this['name_resolve'](b))return!![];if(a&&!a75j(a))a75k('invalid\x20name','Name\x20'+(a||'')+'\x20is\x20exceeds\x20max\x2064');if(b&&!a75j(b))a75k('invalid\x20name','Name\x20'+(b||'')+'\x20is\x20exceeds\x20max\x2064');const c=await this['getStorage'](),d=await c['get']();if(!d)return![];const e=JSON['parse'](d),f=e['find'](i=>Account['nameMatch'](i['name'],a)),g=e['find'](i=>Account['nameMatch'](i['name'],b));if(!f||!g)return![];const h=Date['now']();return f['name']=b,f['updatedAt']=h,g['name']=a,g['updatedAt']=h,await c['put'](JSON['stringify'](e)),!![];});}async['rename'](a,b){return Account['_dataLock']['run'](async()=>{if(b&&!a75j(b))a75k('invalid\x20name','Invalid\x20new\x20name:\x20\x22'+(b||'')+'\x22.\x20Must\x20be\x20a\x20valid\x20name\x20(not\x20an\x20address)');const c=this['name_resolve'](a);if(c===b)return!![];const d=await this['getStorage'](),e=await d['get']();if(e){const g=JSON['parse'](e);if(g['find'](j=>Account['nameMatch'](j['name'],b)))a75k('invalid\x20name','New\x20name\x20\x22'+(b||'')+'\x22\x20already\x20exists');const h=g['find'](j=>Account['nameMatch'](j['name'],c)||j['address']['toLowerCase']()===c['toLowerCase']());if(!h)a75k('account\x20not\x20found','Source\x20account\x20\x22'+(a||'')+'\x22\x20not\x20found');const i=Date['now']();return h['name']=b,h['updatedAt']=i,await d['put'](JSON['stringify'](g)),!![];}return![];});}async['list'](a){const b=await(await this['getStorage']())['get']();if(b){let c=JSON['parse'](b);if(a?.['suspended']!==void 0x0)c=c['filter'](d=>a['suspended']?d['suspended']===!![]:!d['suspended']);else c=c['filter'](d=>!d['suspended']);if(a?.['hasMessenger']!==void 0x0)c=c['filter'](d=>a['hasMessenger']?d['m']!=null:d['m']==null);if(a?.['m']!=null)c=c['filter'](d=>d['m']!=null);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)c=c['filter'](d=>d['createdAt']&&d['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)c=c['filter'](d=>d['createdAt']&&d['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)c=c['filter'](d=>d['updatedAt']&&d['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)c=c['filter'](d=>d['updatedAt']&&d['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address']||a?.['m']!=null)c=c['map'](d=>{let e=0x0;if(a?.['name']!=null){const f=d['name']?.['toLowerCase']()||'',g=a['name']['toLowerCase']();if(f===g)e+=0x64;else{if(f['startsWith'](g))e+=0x32;else{if(f['includes'](g))e+=0x19;}}}if(a?.['address']){const h=d['address']['toLowerCase'](),i=a['address']['toLowerCase']();if(h===i)e+=0x64;else{if(h['startsWith'](i))e+=0x32;else{if(h['includes'](i))e+=0x19;}}}if(a?.['m']!=null&&d['m']!=null){const j=d['m']['toLowerCase'](),k=a['m']['toLowerCase']();if(j===k)e+=0x64;else{if(j['startsWith'](k))e+=0x32;else{if(j['includes'](k))e+=0x19;}}}if((a?.['name']||a?.['address']||a?.['m']!=null)&&e===0x0)e=-0x1;return{'account':d,'score':e};})['filter'](({score:d})=>d>=0x0)['sort']((d,e)=>e['score']-d['score'])['map'](({account:d})=>d);return c['map'](d=>this['accountData'](d,a?.['includePubkey']))['filter'](d=>d!==void 0x0);}return[];}async['suspend'](a){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a);const b=await this['getStorage'](),c=await b['get']();if(c){const d=JSON['parse'](c),e=d['find'](g=>g['address']['toLowerCase']()===a['toLowerCase']()||Account['nameMatch'](g['name'],a));if(e){const g=Date['now']();return e['suspended']=!![],e['name']=void 0x0,e['m']=void 0x0,e['updatedAt']=g,await b['put'](JSON['stringify'](d)),!![];}}return![];});}async['suspend_many'](a){return Account['_dataLock']['run'](async()=>{const b=await this['getStorage'](),c=await b['get'](),d={'success':[],'failed':[]};if(c){const e=JSON['parse'](c),g=Date['now']();let h=![];for(const i of a){const j=this['name_resolve'](i),k=e['find'](l=>l['address']['toLowerCase']()===j['toLowerCase']()||Account['nameMatch'](l['name'],j));if(k)k['suspended']=!![],k['name']=void 0x0,k['m']=void 0x0,k['updatedAt']=g,d['success']['push'](i),h=!![];else d['failed']['push'](i);}if(h)await b['put'](JSON['stringify'](e));}else d['failed']=[...a];return d;});}async['resume'](a,b){return Account['_dataLock']['run'](async()=>{b=this['name_resolve'](b),a=a['toLowerCase']();if(b&&!a75j(b))a75k('invalid\x20name','Name\x20'+b+'\x20is\x20exceeds\x20max\x2064');const c=await this['getStorage'](),d=await c['get']();if(d){const e=JSON['parse'](d);if(e['find'](h=>Account['nameMatch'](h['name'],b)))a75k('invalid\x20name','Name\x20\x22'+(b||'')+'\x22\x20already\x20exists');const g=e['find'](h=>h['address']['toLowerCase']()===a['toLowerCase']());if(g){const h=Date['now']();return g['suspended']=![],g['name']=b,g['updatedAt']=h,await c['put'](JSON['stringify'](e)),!![];}}return![];});}async['faucet'](b,c){const d=await this['get_imp'](b);if(!d)throw new Error('Faucet\x20request\x20failed:\x20account\x20\x22'+(b??'<default>')+'\x22\x20not\x20found');return(await a75g({'host':a75f(c),'recipient':d['address']}))['coins_sent']||[];}async['sign_and_commit'](b,c,d){const e=await this['get_imp'](c);if(e){const f=a75h['fromSecretKey'](e['secret']);if(f){const g=await Config['Instance']()['network_get'](d);return new a75b({'url':a75d(g),'network':g})['signAndExecuteTransaction']({'transaction':b,'signer':f,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}});}}}async['refund_coin'](a,b,c){const d=await this['get_address'](c);if(!d)a75k('invalid\x20parameter','Invalid\x20to\x20address\x20or\x20name\x20'+c);a['transferObjects']([b],a['pure']['address'](d));}async['transfer'](a,b,c,d,e){const [f,g]=await this['get_many_imp']([d,c]);if(!f)a75k('invalid\x20parameter','Invalid\x20from\x20address\x20or\x20name\x20'+d);const h=g?.['address']??c;if(!h)a75k('invalid\x20parameter','Invalid\x20to\x20address\x20or\x20name\x20'+c);const i=a75h['fromSecretKey'](f['secret']);if(i){const j=new a75c(),k=await this['get_coin_object'](j,a,b,d,e);if(k){j['transferObjects']([k],h);const l=await Config['Instance']()['network_get'](e);return new a75b({'url':a75d(l),'network':l})['signAndExecuteTransaction']({'transaction':j,'signer':i,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}});}}}async['sign'](a,b){const c=await this['get_imp'](a);if(!c?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const d=a75h['fromSecretKey'](c['secret']),e=typeof b==='string'?new TextEncoder()['encode'](b):b,f=await d['sign'](e);return'0x'+Buffer['from'](f)['toString']('hex');}async['signData'](a,b){const c=await this['get_imp'](a);if(!c?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const d=a75h['fromSecretKey'](c['secret']),e=typeof b==='string'?new TextEncoder()['encode'](b):b,f=await d['sign'](e);return{'signature':'0x'+Buffer['from'](f)['toString']('hex'),'publicKey':d['getPublicKey']()['toWowPublicKey'](),'address':c['address']};}async['deriveX25519Identity'](a){const b=await this['get_imp'](a);if(!b?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const c=a75e(b['secret'])['secretKey'],d=a75h['fromSecretKey'](b['secret'])['getPublicKey']()['toRawBytes'](),e=new TextEncoder()['encode']('WowokX25519IdentityDerivation'),f=hkdf(sha256,sha256(c),new Uint8Array(0x0),e,0x20);f[0x0]&=0xf8,f[0x1f]&=0x7f,f[0x1f]|=0x40;const g=x25519['getPublicKey'](f),h=g[0x0]<<0x8|g[0x1];return{'x25519KeyPair':{'publicKey':g,'privateKey':f},'falcon512KeyPair':{'publicKey':d,'privateKey':c},'registrationId':h===0x0?0x1:h};}async['set_messenger'](a,b){return Account['_dataLock']['run'](async()=>{const c=this['name_resolve'](a),d=await this['getStorage'](),e=await d['get']();if(!e)return![];const g=JSON['parse'](e),h=g['find'](k=>k['address']['toLowerCase']()===c['toLowerCase']()||Account['nameMatch'](k['name'],c));if(!h)return![];if(!b){const k=Date['now']();return h['m']=void 0x0,h['updatedAt']=k,await d['put'](JSON['stringify'](g)),!![];}if(!a75j(b))a75k('invalid\x20name','Messenger\x20name\x20'+b+'\x20is\x20exceeds\x20max\x2064');const i=g['filter'](l=>l['m']!=null&&!l['suspended']&&l['address']!==h['address'])['length'];if(i>=0x64)a75k('invalid\x20parameter','Maximum\x20100\x20messenger\x20accounts\x20allowed,\x20current\x20count:\x20'+i);const j=Date['now']();return h['m']=b,h['updatedAt']=j,await d['put'](JSON['stringify'](g)),!![];});}async['list_messenger_accounts'](){return this['list']({'hasMessenger':!![]});}async['count_messenger_accounts'](){const a=await(await this['getStorage']())['get']();if(!a)return 0x0;return JSON['parse'](a)['filter'](b=>b['m']!=null&&!b['suspended'])['length'];}};export{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS};
1
+ import{a as a75a}from'../../wow-types-DcqbnAaK.mjs';import{t as a75b}from'../../client-BQ4n-Q-u.mjs';import{t as a75c}from'../../Transaction-CzqJDezj.mjs';import{n as a75d}from'../../network-CeDd07Hg.mjs';import{c as a75e}from'../../keypair-BqNhxtoP.mjs';import{n as a75f,r as a75g}from'../../faucet-RNvBvVJf.mjs';import{n as a75h}from'../../falcon512-Be5BlPLD.mjs';import{L as a75i,U as a75j}from'../../common-Dez7yfwb.mjs';import{o as a75k}from'../../exception-CkI_xPvd.mjs';import{n as a75l,u as a75m}from'../../storage-UnD4qWaK.mjs';import{Config}from'./config.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{sha256}from'@noble/hashes/sha2.js';import{x25519}from'@noble/curves/ed25519.js';import{hkdf}from'@noble/hashes/hkdf.js';const DEFAULT_ACCOUNT_NAME='',MAX_MESSENGER_ACCOUNTS=0x64;var Account=class Account{constructor(){this['balance']=async(b,c,d)=>{const e=await this['get'](c);b=b??'0x2::wow::WOW';if(e){const f=await Config['Instance']()['network_get'](d);return new a75b({'url':a75d(f),'network':f})['getBalance']({'owner':e['address'],'coinType':b});}},this['coin']=async(b,c,d,e,f)=>{const g=await this['get'](e);b=b??'0x2::wow::WOW';if(g){const h=await Config['Instance']()['network_get'](f);return new a75b({'url':a75d(h),'network':h})['getCoins']({'owner':g['address'],'coinType':b,'cursor':c,'limit':d});}},this['get_coin_object']=async(c,d,e,f,g)=>{const h=await this['get'](f);if(h){const j=BigInt(d),k=await Config['Instance']()['network_get'](g),l=new a75b({'url':a75d(k),'network':k});if(j>=BigInt(0x0)){if(!e||a75i(e))return c['splitCoins'](c['gas'],[j]);else{const m=await l['getCoins']({'owner':h['address'],'coinType':e}),n=[],o=new Set();let p=BigInt(0x0);for(let q=0x0;q<m['data']['length'];++q){const s=m['data'][q]['coinObjectId'];if(o['has'](s))continue;o['add'](s),p+=BigInt(m['data'][q]['balance']),n['push'](s);if(p>=j)break;}if(n['length']===0x0)return;if(n['length']===0x1)return c['splitCoins'](n[0x0],[j]);else{const t=n['pop']();return c['mergeCoins'](t,n),c['splitCoins'](t,[j]);}}}}},this['get_many_coin_object']=async(a,b,c,d,e)=>{const f=[];for(const g of b){const h=await this['get_coin_object'](a,g,d,c,e);if(!h)a75k('invalid\x20parameter','Invalid\x20coin\x20object:\x20'+g);else f['push'](h);}return a['makeMoveVec']({'elements':f});},this['coinObject_with_balance']=async(b,c,d,e)=>{const f=await this['get_imp'](d);if(!f)return void 0x0;const g=a75h['fromSecretKey'](f['secret']);if(!g)return void 0x0;const h=new a75c(),i=await this['get_coin_object'](h,b,c,d,e);if(i){h['transferObjects']([i],f['address']);const j=await Config['Instance']()['network_get'](e),k=await new a75b({'url':a75d(j),'network':j})['signAndExecuteTransaction']({'transaction':h,'signer':g,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}}),l=c??'0x2::wow::WOW';return(k?.['objectChanges']?.['find'](m=>m?.['type']==='created'&&(m?.['objectType'])['includes'](l)))?.['objectId'];}};}static{this['_dataLock']=new a75m();}static{this['_storageLock']=new a75m();}['setStorage'](a){Account['storage']=a;}['setEncryptedStorage'](a){Account['storage']=new SecureAccountStorage(a);}async['getStorage'](){if(Account['storage'])return Account['storage'];return Account['_storageLock']['run'](async()=>{if(!Account['storage'])Account['storage']=new SecureAccountStorage(new a75l());return Account['storage'];});}async['unlock'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}async['getMcpAccess'](){const a=await this['getStorage']();if(a instanceof SecureAccountStorage)return a['getMcpAccess']();return'allowed';}async['setMcpAccess'](a,b){const c=await this['getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['setMcpAccess'](a,b);}async['exportSecret'](a){const b=await(await this['getStorage']())['get']();if(!b)return void 0x0;const c=JSON['parse'](b),d=a['toLowerCase']();return c['find'](e=>e['address']['toLowerCase']()===d||e['name']&&e['name']['toLowerCase']()===d)?.['secret'];}static['Instance'](){if(Account['_instance'])return Account['_instance'];if(!Account['_instance'])Account['_instance']=new Account();return Account['_instance'];}['accountData'](a,b=![]){if(!a||!a['secret'])return void 0x0;if(b)a['pubkey']=a75h['fromSecretKey'](a['secret'])['getPublicKey']()['toWowPublicKey']();a['secret']=void 0x0;if(a['name']===void 0x0)a['name']='';return a;}static['nameMatch'](a,b){return(a??'')['toLowerCase']()===b['toLowerCase']();}async['gen'](a,b,c,d=![]){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a);if(a&&!a75j(a))a75k('invalid\x20name','Name\x20'+a+'\x20is\x20exceeds\x20max\x2064');if(c&&!a75j(c))a75k('invalid\x20name','Messenger\x20name\x20'+c+'\x20is\x20exceeds\x20max\x2064');const e=a75h['generate']()['getSecretKey'](),f=a75h['fromSecretKey'](e)['getPublicKey']()['toWowAddress'](),g=Date['now'](),h={'name':a,'address':f,'secret':e,'m':c||void 0x0,'createdAt':g,'updatedAt':g},i=await this['getStorage'](),j=await i['get'](),k=j?JSON['parse'](j):[],l=k['findIndex'](n=>Account['nameMatch'](n['name'],a));if(l!==-0x1){if(b)k[l]['name']=void 0x0;else a75k('account\x20name\x20exist','Name\x20'+(a||'')+'\x20already\x20exist');}if(c){const n=k['filter'](o=>o['m']!=null&&!o['suspended'])['length'];if(n>=0x64)a75k('invalid\x20parameter','Maximum\x20100\x20messenger\x20accounts\x20allowed,\x20current\x20count:\x20'+n);}return k['push'](h),await i['put'](JSON['stringify'](k)),this['accountData'](h,d);});}async['default'](a=![]){return this['accountData'](await this['get_imp'](''),a);}async['get'](a,b,c=![]){if(!b)return this['accountData'](await this['get_imp'](a),c);return this['gen'](a);}async['get_address'](a){if(a&&a75a(a))return a['toLowerCase']();return(await this['get_imp'](a))?.['address'];}async['get_many_address'](a){const b=await(await this['getStorage']())['get']();if(b){const c=JSON['parse'](b);return a['map'](d=>{if(d&&a75a(d))return d['toLowerCase']();const e=this['name_resolve'](d);return c['find'](f=>f['address']['toLowerCase']()===e['toLowerCase']()||Account['nameMatch'](f['name'],e))?.['address'];});}return a['map'](d=>d&&a75a(d)?d['toLowerCase']():void 0x0);}async['get_imp'](a){a=this['name_resolve'](a);const b=await(await this['getStorage']())['get']();if(b){const c=a['toLowerCase']();return JSON['parse'](b)['find'](e=>Account['nameMatch'](e['name'],a)||e['address']['toLowerCase']()===c);}}['name_resolve'](a){return a||'';}async['get_many'](a,b=![]){return this['get_many_imp'](a,b);}async['get_many_imp'](a,b=![]){const c=await(await this['getStorage']())['get']();if(c){const d=JSON['parse'](c);return a['map'](e=>{const f=this['name_resolve'](e),g=d['find'](h=>h['address']['toLowerCase']()===f['toLowerCase']()||Account['nameMatch'](h['name'],f));if(!g)return void 0x0;if(b){const h=a75h['fromSecretKey'](g['secret']),j={...g,'pubkey':h['getPublicKey']()['toWowPublicKey']()};return delete j['secret'],j;}return g;});}return a['map'](e=>void 0x0);}async['swap_name'](a,b){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a),b=this['name_resolve'](b);if(this['name_resolve'](a)===this['name_resolve'](b))return!![];if(a&&!a75j(a))a75k('invalid\x20name','Name\x20'+(a||'')+'\x20is\x20exceeds\x20max\x2064');if(b&&!a75j(b))a75k('invalid\x20name','Name\x20'+(b||'')+'\x20is\x20exceeds\x20max\x2064');const c=await this['getStorage'](),d=await c['get']();if(!d)return![];const e=JSON['parse'](d),f=e['find'](i=>Account['nameMatch'](i['name'],a)),g=e['find'](i=>Account['nameMatch'](i['name'],b));if(!f||!g)return![];const h=Date['now']();return f['name']=b,f['updatedAt']=h,g['name']=a,g['updatedAt']=h,await c['put'](JSON['stringify'](e)),!![];});}async['rename'](a,b){return Account['_dataLock']['run'](async()=>{if(b&&!a75j(b))a75k('invalid\x20name','Invalid\x20new\x20name:\x20\x22'+(b||'')+'\x22.\x20Must\x20be\x20a\x20valid\x20name\x20(not\x20an\x20address)');const c=this['name_resolve'](a);if(c===b)return!![];const d=await this['getStorage'](),e=await d['get']();if(e){const g=JSON['parse'](e);if(g['find'](j=>Account['nameMatch'](j['name'],b)))a75k('invalid\x20name','New\x20name\x20\x22'+(b||'')+'\x22\x20already\x20exists');const h=g['find'](j=>Account['nameMatch'](j['name'],c)||j['address']['toLowerCase']()===c['toLowerCase']());if(!h)a75k('account\x20not\x20found','Source\x20account\x20\x22'+(a||'')+'\x22\x20not\x20found');const i=Date['now']();return h['name']=b,h['updatedAt']=i,await d['put'](JSON['stringify'](g)),!![];}return![];});}async['list'](a){const b=await(await this['getStorage']())['get']();if(b){let c=JSON['parse'](b);if(a?.['suspended']!==void 0x0)c=c['filter'](d=>a['suspended']?d['suspended']===!![]:!d['suspended']);else c=c['filter'](d=>!d['suspended']);if(a?.['hasMessenger']!==void 0x0)c=c['filter'](d=>a['hasMessenger']?d['m']!=null:d['m']==null);if(a?.['m']!=null)c=c['filter'](d=>d['m']!=null);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)c=c['filter'](d=>d['createdAt']&&d['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)c=c['filter'](d=>d['createdAt']&&d['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)c=c['filter'](d=>d['updatedAt']&&d['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)c=c['filter'](d=>d['updatedAt']&&d['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address']||a?.['m']!=null)c=c['map'](d=>{let e=0x0;if(a?.['name']!=null){const f=d['name']?.['toLowerCase']()||'',g=a['name']['toLowerCase']();if(f===g)e+=0x64;else{if(f['startsWith'](g))e+=0x32;else{if(f['includes'](g))e+=0x19;}}}if(a?.['address']){const h=d['address']['toLowerCase'](),i=a['address']['toLowerCase']();if(h===i)e+=0x64;else{if(h['startsWith'](i))e+=0x32;else{if(h['includes'](i))e+=0x19;}}}if(a?.['m']!=null&&d['m']!=null){const j=d['m']['toLowerCase'](),k=a['m']['toLowerCase']();if(j===k)e+=0x64;else{if(j['startsWith'](k))e+=0x32;else{if(j['includes'](k))e+=0x19;}}}if((a?.['name']||a?.['address']||a?.['m']!=null)&&e===0x0)e=-0x1;return{'account':d,'score':e};})['filter'](({score:d})=>d>=0x0)['sort']((d,e)=>e['score']-d['score'])['map'](({account:d})=>d);return c['map'](d=>this['accountData'](d,a?.['includePubkey']))['filter'](d=>d!==void 0x0);}return[];}async['suspend'](a){return Account['_dataLock']['run'](async()=>{a=this['name_resolve'](a);const b=await this['getStorage'](),c=await b['get']();if(c){const d=JSON['parse'](c),e=d['find'](g=>g['address']['toLowerCase']()===a['toLowerCase']()||Account['nameMatch'](g['name'],a));if(e){const g=Date['now']();return e['suspended']=!![],e['name']=void 0x0,e['m']=void 0x0,e['updatedAt']=g,await b['put'](JSON['stringify'](d)),!![];}}return![];});}async['suspend_many'](a){return Account['_dataLock']['run'](async()=>{const b=await this['getStorage'](),c=await b['get'](),d={'success':[],'failed':[]};if(c){const e=JSON['parse'](c),g=Date['now']();let h=![];for(const i of a){const j=this['name_resolve'](i),k=e['find'](l=>l['address']['toLowerCase']()===j['toLowerCase']()||Account['nameMatch'](l['name'],j));if(k)k['suspended']=!![],k['name']=void 0x0,k['m']=void 0x0,k['updatedAt']=g,d['success']['push'](i),h=!![];else d['failed']['push'](i);}if(h)await b['put'](JSON['stringify'](e));}else d['failed']=[...a];return d;});}async['resume'](a,b){return Account['_dataLock']['run'](async()=>{b=this['name_resolve'](b),a=a['toLowerCase']();if(b&&!a75j(b))a75k('invalid\x20name','Name\x20'+b+'\x20is\x20exceeds\x20max\x2064');const c=await this['getStorage'](),d=await c['get']();if(d){const e=JSON['parse'](d);if(e['find'](h=>Account['nameMatch'](h['name'],b)))a75k('invalid\x20name','Name\x20\x22'+(b||'')+'\x22\x20already\x20exists');const g=e['find'](h=>h['address']['toLowerCase']()===a['toLowerCase']());if(g){const h=Date['now']();return g['suspended']=![],g['name']=b,g['updatedAt']=h,await c['put'](JSON['stringify'](e)),!![];}}return![];});}async['faucet'](b,c){const d=await this['get_imp'](b);if(!d)throw new Error('Faucet\x20request\x20failed:\x20account\x20\x22'+(b??'<default>')+'\x22\x20not\x20found');return(await a75g({'host':a75f(c),'recipient':d['address']}))['coins_sent']||[];}async['sign_and_commit'](b,c,d){const e=await this['get_imp'](c);if(e){const f=a75h['fromSecretKey'](e['secret']);if(f){const g=await Config['Instance']()['network_get'](d);return new a75b({'url':a75d(g),'network':g})['signAndExecuteTransaction']({'transaction':b,'signer':f,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}});}}}async['refund_coin'](a,b,c){const d=await this['get_address'](c);if(!d)a75k('invalid\x20parameter','Invalid\x20to\x20address\x20or\x20name\x20'+c);a['transferObjects']([b],a['pure']['address'](d));}async['transfer'](a,b,c,d,e){const [f,g]=await this['get_many_imp']([d,c]);if(!f)a75k('invalid\x20parameter','Invalid\x20from\x20address\x20or\x20name\x20'+d);const h=g?.['address']??c;if(!h)a75k('invalid\x20parameter','Invalid\x20to\x20address\x20or\x20name\x20'+c);const i=a75h['fromSecretKey'](f['secret']);if(i){const j=new a75c(),k=await this['get_coin_object'](j,a,b,d,e);if(k){j['transferObjects']([k],h);const l=await Config['Instance']()['network_get'](e);return new a75b({'url':a75d(l),'network':l})['signAndExecuteTransaction']({'transaction':j,'signer':i,'options':{'showObjectChanges':!![],'showEffects':!![],'showEvents':!![]}});}}}async['sign'](a,b){const c=await this['get_imp'](a);if(!c?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const d=a75h['fromSecretKey'](c['secret']),e=typeof b==='string'?new TextEncoder()['encode'](b):b,f=await d['sign'](e);return'0x'+Buffer['from'](f)['toString']('hex');}async['signData'](a,b){const c=await this['get_imp'](a);if(!c?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const d=a75h['fromSecretKey'](c['secret']),e=typeof b==='string'?new TextEncoder()['encode'](b):b,f=await d['sign'](e);return{'signature':'0x'+Buffer['from'](f)['toString']('hex'),'publicKey':d['getPublicKey']()['toWowPublicKey'](),'address':c['address']};}async['deriveX25519Identity'](a){const b=await this['get_imp'](a);if(!b?.['secret'])a75k('invalid\x20parameter','Account\x20not\x20found\x20or\x20no\x20secret\x20key:\x20'+a);const c=a75e(b['secret'])['secretKey'],d=a75h['fromSecretKey'](b['secret'])['getPublicKey']()['toRawBytes'](),e=new TextEncoder()['encode']('WowokX25519IdentityDerivation'),f=hkdf(sha256,sha256(c),new Uint8Array(0x0),e,0x20);f[0x0]&=0xf8,f[0x1f]&=0x7f,f[0x1f]|=0x40;const g=x25519['getPublicKey'](f),h=g[0x0]<<0x8|g[0x1];return{'x25519KeyPair':{'publicKey':g,'privateKey':f},'falcon512KeyPair':{'publicKey':d,'privateKey':c},'registrationId':h===0x0?0x1:h};}async['set_messenger'](a,b){return Account['_dataLock']['run'](async()=>{const c=this['name_resolve'](a),d=await this['getStorage'](),e=await d['get']();if(!e)return![];const g=JSON['parse'](e),h=g['find'](k=>k['address']['toLowerCase']()===c['toLowerCase']()||Account['nameMatch'](k['name'],c));if(!h)return![];if(!b){const k=Date['now']();return h['m']=void 0x0,h['updatedAt']=k,await d['put'](JSON['stringify'](g)),!![];}if(!a75j(b))a75k('invalid\x20name','Messenger\x20name\x20'+b+'\x20is\x20exceeds\x20max\x2064');const i=g['filter'](l=>l['m']!=null&&!l['suspended']&&l['address']!==h['address'])['length'];if(i>=0x64)a75k('invalid\x20parameter','Maximum\x20100\x20messenger\x20accounts\x20allowed,\x20current\x20count:\x20'+i);const j=Date['now']();return h['m']=b,h['updatedAt']=j,await d['put'](JSON['stringify'](g)),!![];});}async['list_messenger_accounts'](){return this['list']({'hasMessenger':!![]});}async['count_messenger_accounts'](){const a=await(await this['getStorage']())['get']();if(!a)return 0x0;return JSON['parse'](a)['filter'](b=>b['m']!=null&&!b['suspended'])['length'];}};export{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS};
@@ -1,3 +1,3 @@
1
1
  import { _ as toChecksumAddress, c as bytesToHex, d as hexToBytes, g as signLegacy, h as signEIP1559, m as privateKeyToAddress, p as isValidEvmAddress, s as bytesToBigInt } from "../../rlp-Do3rPWRV.mjs";
2
- import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-B1-nzcbY.mjs";
2
+ import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-31ggIkIl.mjs";
3
3
  export { EvmAccount, EvmAccountData, EvmAccountFilter, EvmLog, EvmTransactionReceipt, EvmTransactionRequest, bytesToBigInt, bytesToHex, hexToBytes, isValidEvmAddress, privateKeyToAddress, signEIP1559, signLegacy, toChecksumAddress };
@@ -1 +1 @@
1
- import{o as a80a}from'../../exception-CkI_xPvd.mjs';import{n as a80b,u as a80c}from'../../storage-UnD4qWaK.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import{keccak_256}from'@noble/hashes/sha3.js';let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}var EvmAccount=class EvmAccount{static{this['_dataLock']=new a80c();}static{this['_storageLock']=new a80c();}['setStorage'](a){EvmAccount['storage']=a;}['setEncryptedStorage'](a){EvmAccount['storage']=new SecureAccountStorage(a);}async['_getStorage'](){if(EvmAccount['storage'])return EvmAccount['storage'];return EvmAccount['_storageLock']['run'](async()=>{if(!EvmAccount['storage'])EvmAccount['storage']=new SecureAccountStorage(new a80b(void 0x0,'evm_accounts'));return EvmAccount['storage'];});}async['unlock'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}static['Instance'](){if(EvmAccount['_instance'])return EvmAccount['_instance'];if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}async['_readAll'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)return[];const c=JSON['parse'](b);let d=[],e=![];if(Array['isArray'](c))d=c['map'](f=>({'address':f['address'],'name':f['name'],'pubkey':f['pubkey'],'secret':f['secret'],'isActive':f['isActive'],'createdAt':f['createdAt'],'updatedAt':f['updatedAt']})),d['length']>0x0&&!d['some'](f=>f['isActive']===!![])&&(d[0x0]['isActive']=!![],e=!![]);else c&&typeof c==='object'&&(d=[{'address':c['address'],'name':c['name'],'pubkey':c['pubkey'],'secret':c['secret'],'isActive':!![],'createdAt':c['createdAt'],'updatedAt':c['updatedAt']}],e=!![]);if(e)await a['put'](JSON['stringify'](d));return d;}async['_writeAll'](a){await(await this['_getStorage']())['put'](JSON['stringify'](a));}['_findActive'](a){return a['find'](b=>b['isActive']===!![]);}['_sanitize'](a,b=![],c=![]){const {secret:d,...e}=a,f=c?a:e;if(!b){const {pubkey:g,...h}=f;return h;}return f;}async['_get'](a=![]){const b=await this['_readAll'](),c=this['_findActive'](b);if(!c)return void 0x0;return this['_sanitize'](c,a);}async['_getWithSecret'](){const a=await this['_readAll'](),b=this['_findActive'](a);if(!b||!b['secret'])a80a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret.\x20Call\x20active()\x20first\x20to\x20auto-generate\x20one.');return b;}async['_upsertAsActive'](a){const b=await this['_readAll']();b['forEach'](d=>{if(d['address']!==a['address'])d['isActive']=![];});const c=b['findIndex'](d=>d['address']['toLowerCase']()===a['address']['toLowerCase']());if(c!==-0x1)b[c]={...a,'isActive':!![]};else b['push']({...a,'isActive':!![]});await this['_writeAll'](b);}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x2710;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{const k=await ethRpcWithAbort(h,b,c,i['signal']);return d['markHealthy'](h),k;}finally{clearTimeout(j);}}catch(l){f=l,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](a=![]){return EvmAccount['_dataLock']['run'](async()=>{const b=secp256k1['utils']['randomSecretKey'](),c='0x'+bytesToHex(b),d=privateKeyToAddress(b),e=Date['now'](),f={'address':d,'secret':c,'isActive':!![],'createdAt':e,'updatedAt':e};if(a)f['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](b,!![]));return await this['_upsertAsActive'](f),this['_sanitize'](f,a);});}async['importPrivateKey'](a,b=![]){return EvmAccount['_dataLock']['run'](async()=>{const c=a['startsWith']('0x')?a['slice'](0x2):a;if(c['length']!==0x40)a80a('invalid\x20parameter','Private\x20key\x20must\x20be\x2032\x20bytes\x20(64\x20hex\x20chars),\x20got\x20'+c['length']+'\x20chars');const d='0x'+c,e=hexToBytes(d),f=privateKeyToAddress(e),g=Date['now'](),h={'address':f,'secret':d,'isActive':!![],'createdAt':g,'updatedAt':g};if(b)h['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](e,!![]));return await this['_upsertAsActive'](h),this['_sanitize'](h,b);});}async['active'](a=![]){const b=await this['_get'](a);if(b)return b;return this['gen'](a);}async['list'](a){let b=(await this['_readAll']())['slice']();if(a?.['isActive']!==void 0x0)b=b['filter'](c=>a['isActive']?c['isActive']===!![]:c['isActive']!==!![]);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address'])b=b['map'](c=>{let d=0x0;if(a?.['name']!=null){const e=(c['name']||'')['toLowerCase'](),f=a['name']['toLowerCase']();if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['address']){const g=c['address']['toLowerCase'](),h=a['address']['toLowerCase']();if(g===h)d+=0x64;else{if(g['startsWith'](h))d+=0x32;else{if(g['includes'](h))d+=0x19;}}}if((a?.['name']||a?.['address'])&&d===0x0)d=-0x1;return{'a':c,'score':d};})['filter'](c=>c['score']>=0x0)['sort']((c,d)=>d['score']-c['score'])['map'](c=>c['a']);else b['sort']((c,d)=>{if(c['isActive']===!![]&&d['isActive']!==!![])return-0x1;if(c['isActive']!==!![]&&d['isActive']===!![])return 0x1;return 0x0;});return b['map'](c=>this['_sanitize'](c,a?.['includePubkey']));}async['setActive'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['find'](d=>d['address']['toLowerCase']()===a['toLowerCase']());if(!c)return![];return b['forEach'](d=>{d['isActive']=d['address']===c['address'];}),c['updatedAt']=Date['now'](),await this['_writeAll'](b),!![];});}async['rename'](a,b){return EvmAccount['_dataLock']['run'](async()=>{const c=await this['_readAll'](),d=c['find'](f=>f['address']['toLowerCase']()===a['toLowerCase']());if(!d)return![];const e=Date['now']();return d['name']=b,d['updatedAt']=e,await this['_writeAll'](c),!![];});}async['del'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['findIndex'](e=>e['address']['toLowerCase']()===a['toLowerCase']());if(c===-0x1)return![];const d=b[c]['isActive']===!![];return b['splice'](c,0x1),d&&b['length']>0x0&&!b['some'](e=>e['isActive']===!![])&&(b[0x0]['isActive']=!![],b[0x0]['updatedAt']=Date['now']()),await this['_writeAll'](b),!![];});}async['getByNameOrAddress'](a,b=![],c=![]){const d=await this['_readAll'](),e=a['toLowerCase'](),f=d['find'](g=>g['address']['toLowerCase']()===e||g['name']&&g['name']['toLowerCase']()===e);if(!f)return void 0x0;return this['_sanitize'](f,b,c);}async['exportSecret'](a){return(await this['getByNameOrAddress'](a,![],!![]))?.['secret'];}async['balance'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getBalance',[d['address'],'latest']);return BigInt(f);}async['balanceOf'](b,c,d){const e=await this['_get']();if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g='0x70a08231'+e['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),h=await this['rpcWithFailover'](f,'eth_call',[{'to':b,'data':g},'latest']);return BigInt(h);}async['getNonce'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getTransactionCount',[d['address'],'pending']);return parseInt(f,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['ethCall'](b,c,d){const e=await this['_get']();if(!e)a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']);return await this['rpcWithFailover'](g,'eth_call',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)},'latest']);}['guessGasLimit'](a){const b=a['data']??'';if(b['startsWith']('0x9c3ecefb'))return 0x927c0n;if(b['startsWith']('0x095ea7b3'))return 0x186a0n;if(b['startsWith']('0xb4b7068c'))return 0x3d090n;if(b['startsWith']('0x0bdba58b'))return 0x493e0n;return 0x61a80n;}async['estimateGas'](b,c,d){const e=await this['_get']();if(!e)a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']),h=await this['rpcWithFailover'](g,'eth_estimateGas',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(h);}async['safeEstimateGas'](a){if(!await this['_get']())a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const {cfg:b}=await this['resolveNetwork'](a['network'],a['rpcUrl']);let c;try{await this['ethCall'](a);}catch(d){return c=extractRevertReason(d),{'gasLimit':this['guessGasLimit'](a),'revertReason':c||'eth_call\x20failed'};}try{const f=await this['estimateGas'](a),g=b['gasLimitMultiplier']??1.2;return{'gasLimit':BigInt(Math['ceil'](Number(f)*g))};}catch(h){return c=extractRevertReason(h),console['warn']('[safeEstimateGas]\x20estimateGas\x20failed,\x20using\x20fallback\x20gasLimit='+this['guessGasLimit'](a),c?'revert:\x20'+c:''),{'gasLimit':this['guessGasLimit'](a),'revertReason':c};}}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c){const d=await this['_getWithSecret']();if(!d||!d['secret'])a80a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret');const {cfg:e,url:f}=await this['resolveNetwork'](b['network'],c??b['rpcUrl']),g=b['chainId']??e['chainId'],h=hexToBytes(d['secret']['slice'](0x2)),i=b['nonce']??await this['getNonce'](e['chainId'],f);let {maxFeePerGas:j,maxPriorityFeePerGas:k,gasPrice:l}=b;e['useLegacy']&&!l&&(l=(await this['getFeeData'](e['chainId'],f))['maxFeePerGas'],j=void 0x0,k=void 0x0);if(!j&&!k&&!l){const r=await this['getFeeData'](e['chainId'],f);j=r['maxFeePerGas'],k=r['maxPriorityFeePerGas'];}let m=b['gasLimit'];if(!m){const s=await this['safeEstimateGas'](b);m=s['gasLimit'],s['revertReason'];}const n=hexToBytes(b['to']['slice'](0x2)),o=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let p;if(l)p=signLegacy({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'gasPrice':l,'gasLimit':m},h);else p=signEIP1559({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'maxFeePerGas':j,'maxPriorityFeePerGas':k,'gasLimit':m},h);const q=await this['rpcWithFailover'](e,'eth_sendRawTransaction',[p]);return await this['waitForReceipt'](q,e['chainId'],f);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a80a('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a){const b=await this['_getWithSecret'](),c=hexToBytes(b['secret']['slice'](0x2)),d=typeof a==='string'?new TextEncoder()['encode'](a):a,e='\x19Ethereum\x20Signed\x20Message:\x0a'+d['length'],f=new Uint8Array(e['length']+d['length']);f['set'](new TextEncoder()['encode'](e),0x0),f['set'](d,e['length']);const g=keccak_256(f),h=secp256k1['sign'](g,c,{'format':'recovered','prehash':![]}),i=0x1b+h[0x0],j=new Uint8Array(0x41);j['set'](h['subarray'](0x1,0x21),0x0),j['set'](h['subarray'](0x21,0x41),0x20),j[0x40]=i;const k=secp256k1['getPublicKey'](c,!![]);return{'signature':'0x'+bytesToHex(j),'publicKey':'0x'+bytesToHex(k),'address':b['address']};}async['transfer'](a){await this['_getWithSecret']();if(!isValidEvmAddress(a['to']))a80a('invalid\x20parameter','Invalid\x20EVM\x20recipient\x20address:\x20'+a['to']);if(a['amount']<=0x0n)a80a('invalid\x20parameter','amount\x20must\x20be\x20positive');const b=!!a['tokenAddress'];if(b){const e=await this['balanceOf'](a['tokenAddress'],a['network'],a['rpcUrl']);if(e===void 0x0||e<a['amount'])a80a('fail','Insufficient\x20ERC20\x20balance:\x20have\x20'+(e??0x0n)+',\x20need\x20'+a['amount']);}else{const f=await this['balance'](a['network'],a['rpcUrl']);if(f===void 0x0||f<a['amount'])a80a('fail','Insufficient\x20ETH\x20balance:\x20have\x20'+(f??0x0n)+',\x20need\x20'+a['amount']);}let c;if(b){const g='0xa9059cbb'+a['to']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0')+a['amount']['toString'](0x10)['padStart'](0x40,'0');c={'to':a['tokenAddress'],'value':0x0n,'data':g,'network':a['network'],'rpcUrl':a['rpcUrl']};}else c={'to':a['to'],'value':a['amount'],'data':'0x','network':a['network'],'rpcUrl':a['rpcUrl']};const d=await this['sign_and_send'](c,a['rpcUrl']);if(d['status']!=='0x1')a80a('fail','EVM\x20transfer\x20reverted:\x20txHash='+d['transactionHash']);return d;}async['withdrawFromActive'](a){return this['transfer']({...a});}};function extractRevertReason(a){if(!a)return void 0x0;const b=typeof a==='string'?a:a?.['message']??a?.['toString']?.()??'',c=b['match'](/execution reverted:\s*(.+?)(?:\.|$)/i);if(c)return c[0x1]['trim']();const d=b['match'](/reverted with reason string\s*'([^']+)'/i);if(d)return d[0x1];const e=b['match'](/reverted with panic code\s*(0x[0-9a-f]+)/i);if(e)return'panic:\x20'+e[0x1];if(/stack underflow/i['test'](b))return'stack\x20underflow\x20(calldata\x20encoding\x20error)';if(/stack overflow/i['test'](b))return'stack\x20overflow';if(/out of gas/i['test'](b))return'out\x20of\x20gas';return b['length']>0xc8?b['slice'](0x0,0xc8)+'...':b;}export{EvmAccount,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
1
+ import{o as a80a}from'../../exception-CkI_xPvd.mjs';import{n as a80b,u as a80c}from'../../storage-UnD4qWaK.mjs';import{SecureAccountStorage}from'./secure-storage.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{EvmNetworkRegistry}from'./evm/networks.mjs';import{secp256k1}from'@noble/curves/secp256k1.js';import{keccak_256}from'@noble/hashes/sha3.js';let rpcRequestId=0x0;async function ethRpcWithAbort(a,b,c,d){const e={'jsonrpc':'2.0','id':++rpcRequestId,'method':b,'params':c},f=await fetch(a,{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](e),'signal':d});if(!f['ok'])throw new Error('EVM\x20RPC\x20HTTP\x20'+f['status']+':\x20'+await f['text']());const g=await f['json']();if(g['error'])throw new Error('EVM\x20RPC\x20error:\x20'+g['error']['message']+'\x20(code\x20'+g['error']['code']+')');return g['result'];}var EvmAccount=class EvmAccount{static{this['_dataLock']=new a80c();}static{this['_storageLock']=new a80c();}['setStorage'](a){EvmAccount['storage']=a;}['setEncryptedStorage'](a){EvmAccount['storage']=new SecureAccountStorage(a);}async['_getStorage'](){if(EvmAccount['storage'])return EvmAccount['storage'];return EvmAccount['_storageLock']['run'](async()=>{if(!EvmAccount['storage'])EvmAccount['storage']=new SecureAccountStorage(new a80b(void 0x0,'evm_accounts'));return EvmAccount['storage'];});}async['unlock'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');b['setSessionPassword'](a),await b['get']();}async['lock'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)a['setSessionPassword'](void 0x0);}async['setEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['setPassword'](a);}async['changeEncryptionPassword'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['changePassword'](a,b);}async['removeEncryptionPassword'](a){const b=await this['_getStorage']();if(!(b instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await b['removePassword'](a);}async['getEncryptionMode'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMode']();}async['isPasswordSet'](){return await this['getEncryptionMode']()==='password';}async['getMcpAccess'](){const a=await this['_getStorage']();if(a instanceof SecureAccountStorage)return a['getMcpAccess']();return'allowed';}async['setMcpAccess'](a,b){const c=await this['_getStorage']();if(!(c instanceof SecureAccountStorage))throw new Error('Current\x20storage\x20does\x20not\x20support\x20encryption.');await c['setMcpAccess'](a,b);}static['Instance'](){if(EvmAccount['_instance'])return EvmAccount['_instance'];if(!EvmAccount['_instance'])EvmAccount['_instance']=new EvmAccount();return EvmAccount['_instance'];}async['_readAll'](){const a=await this['_getStorage'](),b=await a['get']();if(!b)return[];const c=JSON['parse'](b);let d=[],e=![];if(Array['isArray'](c))d=c['map'](f=>({'address':f['address'],'name':f['name'],'pubkey':f['pubkey'],'secret':f['secret'],'isActive':f['isActive'],'createdAt':f['createdAt'],'updatedAt':f['updatedAt']})),d['length']>0x0&&!d['some'](f=>f['isActive']===!![])&&(d[0x0]['isActive']=!![],e=!![]);else c&&typeof c==='object'&&(d=[{'address':c['address'],'name':c['name'],'pubkey':c['pubkey'],'secret':c['secret'],'isActive':!![],'createdAt':c['createdAt'],'updatedAt':c['updatedAt']}],e=!![]);if(e)await a['put'](JSON['stringify'](d));return d;}async['_writeAll'](a){await(await this['_getStorage']())['put'](JSON['stringify'](a));}['_findActive'](a){return a['find'](b=>b['isActive']===!![]);}['_sanitize'](a,b=![],c=![]){const {secret:d,...e}=a,f=c?a:e;if(!b){const {pubkey:g,...h}=f;return h;}return f;}async['_get'](a=![]){const b=await this['_readAll'](),c=this['_findActive'](b);if(!c)return void 0x0;return this['_sanitize'](c,a);}async['_getWithSecret'](){const a=await this['_readAll'](),b=this['_findActive'](a);if(!b||!b['secret'])a80a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret.\x20Call\x20active()\x20first\x20to\x20auto-generate\x20one.');return b;}async['_upsertAsActive'](a){const b=await this['_readAll']();b['forEach'](d=>{if(d['address']!==a['address'])d['isActive']=![];});const c=b['findIndex'](d=>d['address']['toLowerCase']()===a['address']['toLowerCase']());if(c!==-0x1)b[c]={...a,'isActive':!![]};else b['push']({...a,'isActive':!![]});await this['_writeAll'](b);}async['resolveNetwork'](a,b){const c=EvmNetworkRegistry['Instance']();if(b){const e=await c['resolve'](b);return{'cfg':e,'url':c['pickHealthyRpc'](e)||b};}const d=await c['resolve'](a);return{'cfg':d,'url':c['pickHealthyRpc'](d)};}async['rpcWithFailover'](a,b,c){const d=EvmNetworkRegistry['Instance']();let f;const g=a['rpcTimeoutMs']??0x2710;for(const h of a['rpcUrls'])try{const i=new AbortController(),j=setTimeout(()=>i['abort'](),g);try{const k=await ethRpcWithAbort(h,b,c,i['signal']);return d['markHealthy'](h),k;}finally{clearTimeout(j);}}catch(l){f=l,d['markUnhealthy'](h);}throw f instanceof Error?f:new Error('All\x20RPCs\x20failed\x20for\x20'+b);}async['gen'](a=![]){return EvmAccount['_dataLock']['run'](async()=>{const b=secp256k1['utils']['randomSecretKey'](),c='0x'+bytesToHex(b),d=privateKeyToAddress(b),e=Date['now'](),f={'address':d,'secret':c,'isActive':!![],'createdAt':e,'updatedAt':e};if(a)f['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](b,!![]));return await this['_upsertAsActive'](f),this['_sanitize'](f,a);});}async['importPrivateKey'](a,b=![]){return EvmAccount['_dataLock']['run'](async()=>{const c=a['startsWith']('0x')?a['slice'](0x2):a;if(c['length']!==0x40)a80a('invalid\x20parameter','Private\x20key\x20must\x20be\x2032\x20bytes\x20(64\x20hex\x20chars),\x20got\x20'+c['length']+'\x20chars');const d='0x'+c,e=hexToBytes(d),f=privateKeyToAddress(e),g=Date['now'](),h={'address':f,'secret':d,'isActive':!![],'createdAt':g,'updatedAt':g};if(b)h['pubkey']='0x'+bytesToHex(secp256k1['getPublicKey'](e,!![]));return await this['_upsertAsActive'](h),this['_sanitize'](h,b);});}async['active'](a=![]){const b=await this['_get'](a);if(b)return b;return this['gen'](a);}async['list'](a){let b=(await this['_readAll']())['slice']();if(a?.['isActive']!==void 0x0)b=b['filter'](c=>a['isActive']?c['isActive']===!![]:c['isActive']!==!![]);if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']>=a['createdAt']['gte']);if(a['createdAt']['lte']!==void 0x0)b=b['filter'](c=>c['createdAt']&&c['createdAt']<=a['createdAt']['lte']);}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']>=a['updatedAt']['gte']);if(a['updatedAt']['lte']!==void 0x0)b=b['filter'](c=>c['updatedAt']&&c['updatedAt']<=a['updatedAt']['lte']);}if(a?.['name']!=null||a?.['address'])b=b['map'](c=>{let d=0x0;if(a?.['name']!=null){const e=(c['name']||'')['toLowerCase'](),f=a['name']['toLowerCase']();if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['address']){const g=c['address']['toLowerCase'](),h=a['address']['toLowerCase']();if(g===h)d+=0x64;else{if(g['startsWith'](h))d+=0x32;else{if(g['includes'](h))d+=0x19;}}}if((a?.['name']||a?.['address'])&&d===0x0)d=-0x1;return{'a':c,'score':d};})['filter'](c=>c['score']>=0x0)['sort']((c,d)=>d['score']-c['score'])['map'](c=>c['a']);else b['sort']((c,d)=>{if(c['isActive']===!![]&&d['isActive']!==!![])return-0x1;if(c['isActive']!==!![]&&d['isActive']===!![])return 0x1;return 0x0;});return b['map'](c=>this['_sanitize'](c,a?.['includePubkey']));}async['setActive'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['find'](d=>d['address']['toLowerCase']()===a['toLowerCase']());if(!c)return![];return b['forEach'](d=>{d['isActive']=d['address']===c['address'];}),c['updatedAt']=Date['now'](),await this['_writeAll'](b),!![];});}async['rename'](a,b){return EvmAccount['_dataLock']['run'](async()=>{const c=await this['_readAll'](),d=c['find'](f=>f['address']['toLowerCase']()===a['toLowerCase']());if(!d)return![];const e=Date['now']();return d['name']=b,d['updatedAt']=e,await this['_writeAll'](c),!![];});}async['del'](a){return EvmAccount['_dataLock']['run'](async()=>{const b=await this['_readAll'](),c=b['findIndex'](e=>e['address']['toLowerCase']()===a['toLowerCase']());if(c===-0x1)return![];const d=b[c]['isActive']===!![];return b['splice'](c,0x1),d&&b['length']>0x0&&!b['some'](e=>e['isActive']===!![])&&(b[0x0]['isActive']=!![],b[0x0]['updatedAt']=Date['now']()),await this['_writeAll'](b),!![];});}async['getByNameOrAddress'](a,b=![],c=![]){const d=await this['_readAll'](),e=a['toLowerCase'](),f=d['find'](g=>g['address']['toLowerCase']()===e||g['name']&&g['name']['toLowerCase']()===e);if(!f)return void 0x0;return this['_sanitize'](f,b,c);}async['exportSecret'](a){return(await this['getByNameOrAddress'](a,![],!![]))?.['secret'];}async['balance'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getBalance',[d['address'],'latest']);return BigInt(f);}async['balanceOf'](b,c,d){const e=await this['_get']();if(!e)return void 0x0;const {cfg:f}=await this['resolveNetwork'](c,d),g='0x70a08231'+e['address']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0'),h=await this['rpcWithFailover'](f,'eth_call',[{'to':b,'data':g},'latest']);return BigInt(h);}async['getNonce'](b,c){const d=await this['_get']();if(!d)return void 0x0;const {cfg:e}=await this['resolveNetwork'](b,c),f=await this['rpcWithFailover'](e,'eth_getTransactionCount',[d['address'],'pending']);return parseInt(f,0x10);}async['getChainId'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_chainId',[]);return parseInt(d,0x10);}async['getBlockNumber'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_blockNumber',[]);return BigInt(d);}async['ethCall'](b,c,d){const e=await this['_get']();if(!e)a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']);return await this['rpcWithFailover'](g,'eth_call',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)},'latest']);}['guessGasLimit'](a){const b=a['data']??'';if(b['startsWith']('0x9c3ecefb'))return 0x927c0n;if(b['startsWith']('0x095ea7b3'))return 0x186a0n;if(b['startsWith']('0xb4b7068c'))return 0x3d090n;if(b['startsWith']('0x0bdba58b'))return 0x493e0n;return 0x61a80n;}async['estimateGas'](b,c,d){const e=await this['_get']();if(!e)a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const f=b['network']??c,{cfg:g}=await this['resolveNetwork'](f,d??b['rpcUrl']),h=await this['rpcWithFailover'](g,'eth_estimateGas',[{'from':e['address'],'to':b['to'],'data':b['data']??'0x','value':'0x'+(b['value']??0x0n)['toString'](0x10)}]);return BigInt(h);}async['safeEstimateGas'](a){if(!await this['_get']())a80a('account\x20not\x20found','No\x20active\x20EVM\x20account');const {cfg:b}=await this['resolveNetwork'](a['network'],a['rpcUrl']);let c;try{await this['ethCall'](a);}catch(d){return c=extractRevertReason(d),{'gasLimit':this['guessGasLimit'](a),'revertReason':c||'eth_call\x20failed'};}try{const f=await this['estimateGas'](a),g=b['gasLimitMultiplier']??1.2;return{'gasLimit':BigInt(Math['ceil'](Number(f)*g))};}catch(h){return c=extractRevertReason(h),console['warn']('[safeEstimateGas]\x20estimateGas\x20failed,\x20using\x20fallback\x20gasLimit='+this['guessGasLimit'](a),c?'revert:\x20'+c:''),{'gasLimit':this['guessGasLimit'](a),'revertReason':c};}}async['getFeeData'](a,b){const {cfg:c}=await this['resolveNetwork'](a,b),d=await this['rpcWithFailover'](c,'eth_feeHistory',['0x5','latest',[0x32]]),e=BigInt(d['baseFeePerGas'][0x0]),f=BigInt(d['reward'][0x0][0x0]),g=c['minPriorityFee']??0x0n,h=f<g?g:f;return{'maxFeePerGas':e*0x2n+h,'maxPriorityFeePerGas':h};}async['sign_and_send'](b,c){const d=await this['_getWithSecret']();if(!d||!d['secret'])a80a('account\x20not\x20found','No\x20active\x20EVM\x20account\x20with\x20secret');const {cfg:e,url:f}=await this['resolveNetwork'](b['network'],c??b['rpcUrl']),g=b['chainId']??e['chainId'],h=hexToBytes(d['secret']['slice'](0x2)),i=b['nonce']??await this['getNonce'](e['chainId'],f);let {maxFeePerGas:j,maxPriorityFeePerGas:k,gasPrice:l}=b;e['useLegacy']&&!l&&(l=(await this['getFeeData'](e['chainId'],f))['maxFeePerGas'],j=void 0x0,k=void 0x0);if(!j&&!k&&!l){const r=await this['getFeeData'](e['chainId'],f);j=r['maxFeePerGas'],k=r['maxPriorityFeePerGas'];}let m=b['gasLimit'];if(!m){const s=await this['safeEstimateGas'](b);m=s['gasLimit'],s['revertReason'];}const n=hexToBytes(b['to']['slice'](0x2)),o=b['data']?hexToBytes(b['data']['slice'](0x2)):new Uint8Array(0x0);let p;if(l)p=signLegacy({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'gasPrice':l,'gasLimit':m},h);else p=signEIP1559({'to':n,'data':o,'value':b['value']??0x0n,'nonce':i,'chainId':g,'maxFeePerGas':j,'maxPriorityFeePerGas':k,'gasLimit':m},h);const q=await this['rpcWithFailover'](e,'eth_sendRawTransaction',[p]);return await this['waitForReceipt'](q,e['chainId'],f);}async['waitForReceipt'](a,b,c,d){const {cfg:e,url:f}=await this['resolveNetwork'](b,c),g=d??e['txConfirmTimeoutMs']??0x1d4c0,h=e['pollIntervalMs']??0xbb8,i=Date['now']()+g;while(Date['now']()<i){const j=await this['rpcWithFailover'](e,'eth_getTransactionReceipt',[a]);if(j)return this['parseReceipt'](j);await new Promise(k=>setTimeout(k,h));}a80a('fail','Transaction\x20'+a+'\x20not\x20confirmed\x20within\x20'+g+'ms');}['parseReceipt'](a){return{'transactionHash':a['transactionHash'],'blockNumber':BigInt(a['blockNumber']),'blockHash':a['blockHash'],'status':a['status']??'0x0','gasUsed':BigInt(a['gasUsed']),'effectiveGasPrice':BigInt(a['effectiveGasPrice']),'from':a['from'],'to':a['to'],'contractAddress':a['contractAddress']??void 0x0,'logs':(a['logs']??[])['map'](b=>({'address':b['address'],'topics':b['topics']??[],'data':b['data']??'0x','blockNumber':BigInt(b['blockNumber']),'transactionHash':b['transactionHash'],'transactionIndex':b['transactionIndex'],'logIndex':b['logIndex'],'removed':b['removed']??![]}))};}async['signData'](a){const b=await this['_getWithSecret'](),c=hexToBytes(b['secret']['slice'](0x2)),d=typeof a==='string'?new TextEncoder()['encode'](a):a,e='\x19Ethereum\x20Signed\x20Message:\x0a'+d['length'],f=new Uint8Array(e['length']+d['length']);f['set'](new TextEncoder()['encode'](e),0x0),f['set'](d,e['length']);const g=keccak_256(f),h=secp256k1['sign'](g,c,{'format':'recovered','prehash':![]}),i=0x1b+h[0x0],j=new Uint8Array(0x41);j['set'](h['subarray'](0x1,0x21),0x0),j['set'](h['subarray'](0x21,0x41),0x20),j[0x40]=i;const k=secp256k1['getPublicKey'](c,!![]);return{'signature':'0x'+bytesToHex(j),'publicKey':'0x'+bytesToHex(k),'address':b['address']};}async['transfer'](a){await this['_getWithSecret']();if(!isValidEvmAddress(a['to']))a80a('invalid\x20parameter','Invalid\x20EVM\x20recipient\x20address:\x20'+a['to']);if(a['amount']<=0x0n)a80a('invalid\x20parameter','amount\x20must\x20be\x20positive');const b=!!a['tokenAddress'];if(b){const e=await this['balanceOf'](a['tokenAddress'],a['network'],a['rpcUrl']);if(e===void 0x0||e<a['amount'])a80a('fail','Insufficient\x20ERC20\x20balance:\x20have\x20'+(e??0x0n)+',\x20need\x20'+a['amount']);}else{const f=await this['balance'](a['network'],a['rpcUrl']);if(f===void 0x0||f<a['amount'])a80a('fail','Insufficient\x20ETH\x20balance:\x20have\x20'+(f??0x0n)+',\x20need\x20'+a['amount']);}let c;if(b){const g='0xa9059cbb'+a['to']['slice'](0x2)['toLowerCase']()['padStart'](0x40,'0')+a['amount']['toString'](0x10)['padStart'](0x40,'0');c={'to':a['tokenAddress'],'value':0x0n,'data':g,'network':a['network'],'rpcUrl':a['rpcUrl']};}else c={'to':a['to'],'value':a['amount'],'data':'0x','network':a['network'],'rpcUrl':a['rpcUrl']};const d=await this['sign_and_send'](c,a['rpcUrl']);if(d['status']!=='0x1')a80a('fail','EVM\x20transfer\x20reverted:\x20txHash='+d['transactionHash']);return d;}async['withdrawFromActive'](a){return this['transfer']({...a});}};function extractRevertReason(a){if(!a)return void 0x0;const b=typeof a==='string'?a:a?.['message']??a?.['toString']?.()??'',c=b['match'](/execution reverted:\s*(.+?)(?:\.|$)/i);if(c)return c[0x1]['trim']();const d=b['match'](/reverted with reason string\s*'([^']+)'/i);if(d)return d[0x1];const e=b['match'](/reverted with panic code\s*(0x[0-9a-f]+)/i);if(e)return'panic:\x20'+e[0x1];if(/stack underflow/i['test'](b))return'stack\x20underflow\x20(calldata\x20encoding\x20error)';if(/stack overflow/i['test'](b))return'stack\x20overflow';if(/out of gas/i['test'](b))return'out\x20of\x20gas';return b['length']>0xc8?b['slice'](0x0,0xc8)+'...':b;}export{EvmAccount,bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress};
@@ -1,10 +1,10 @@
1
- import { $_ as GetAccountOrMark_Address, Av as MAX_MESSENGER_ACCOUNTS, Cv as TokenInfo, Dv as AccountFilter, Ev as AccountData, J_ as AccountOperation, Ov as DEFAULT_ACCOUNT_NAME, Q_ as FetchTokenInfoOperation, Sv as TokenDataFilter, Tv as Account, X_ as AccountOrMark_Address, Y_ as AccountOperationResult, Z_ as FaucetNetwork, _v as query_local_info_default, av as LocalMarkOperationResult, bv as query_local_mark_list, cv as QueryAccount, dv as fetch_token_info_operation, ev as GetLocalNamesByAddresses, fv as local_info_operation, gv as query_local_info, hv as query_account_list, iv as LocalMarkOperation, kv as FaucetCoinInfo, lv as QueryAccountResult, mv as query_account, nv as LocalInfoOperation, ov as LocalNameByAddress, pv as local_mark_operation, rv as LocalInfoOperationResult, sv as ManyAccountOrMark_Address, tv as GetManyAccountOrMark_Address, uv as account_operation, vv as query_local_info_list, wv as TokenTypeInfo, xv as query_local_token_list, yv as query_local_mark } from "../../index-C-WBdTM5.mjs";
1
+ import { $_ as AccountOperation, Av as Account, Cv as query_local_info_list, Dv as TokenDataFilter, Ev as query_local_token_list, Fv as MAX_MESSENGER_ACCOUNTS, Mv as AccountFilter, Nv as DEFAULT_ACCOUNT_NAME, Ov as TokenInfo, Pv as FaucetCoinInfo, Sv as query_local_info_default, Tv as query_local_mark_list, _v as local_info_operation, av as GetLocalNamesByAddresses, bv as query_account_list, cv as LocalInfoOperationResult, dv as LocalNameByAddress, ev as AccountOperationResult, fv as ManyAccountOrMark_Address, gv as fetch_token_info_operation, hv as account_operation, iv as GetAccountOrMark_Address, jv as AccountData, kv as TokenTypeInfo, lv as LocalMarkOperation, mv as QueryAccountResult, nv as FaucetNetwork, ov as GetManyAccountOrMark_Address, pv as QueryAccount, rv as FetchTokenInfoOperation, sv as LocalInfoOperation, tv as AccountOrMark_Address, uv as LocalMarkOperationResult, vv as local_mark_operation, wv as query_local_mark, xv as query_local_info, yv as query_account } from "../../index-KMDfU9AV.mjs";
2
2
  import { n as ConfigData, t as Config } from "../../config-CPqpYYLT.mjs";
3
3
  import { t as IAccountStorage } from "../../storage-D6ZEdlgz.mjs";
4
- import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-D4X3f-9t.mjs";
5
- import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-CnxBimye.mjs";
4
+ import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-DFF-RQn-.mjs";
5
+ import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-gzBIsXyJ.mjs";
6
6
  import { _ as toChecksumAddress, c as bytesToHex, d as hexToBytes, g as signLegacy, h as signEIP1559, m as privateKeyToAddress, p as isValidEvmAddress, s as bytesToBigInt } from "../../rlp-Do3rPWRV.mjs";
7
- import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-B1-nzcbY.mjs";
7
+ import { a as EvmTransactionReceipt, i as EvmLog, n as EvmAccountData, o as EvmTransactionRequest, r as EvmAccountFilter, t as EvmAccount } from "../../evm-account-31ggIkIl.mjs";
8
8
  import { i as registerBridgeEvmNetworks, n as EvmNetworkConfig, r as EvmNetworkRegistry, t as ETH_MAINNET } from "../../networks-Cab2UR8C.mjs";
9
9
  import { A as wipToHtml, C as createWip, D as verifyWip, E as sign_wip, O as verify_wip, S as WipVerificationResult, T as loadWip, _ as WipSignature, a as SignatureAlgorithm, b as WipToHtmlOptions, c as WipContent, d as WipFile, f as WipGenerationOptions, g as WipPayload, h as WipMeta, i as ImageSource, k as wip2html, l as WipCreateOptions, m as WipMedia, n as HashAlgorithm, o as TextFormat, p as WipLimits, r as ImageMimeType, s as WIP, t as DEFAULT_LIMITS, u as WipError, v as WipSignatureVerification, w as generate_wip, x as WipValidationError, y as WipSizeError } from "../../wip-NbB1ChbI.mjs";
10
10
  export { Account, AccountData, AccountFilter, AccountOperation, AccountOperationResult, AccountOrMark_Address, BUITIN_IDS, Config, ConfigData, CryptoVault, DEFAULT_ACCOUNT_NAME, DEFAULT_LIMITS, ETH_MAINNET, EncryptionMode, EvmAccount, EvmAccountData, EvmAccountFilter, EvmLog, EvmNetworkConfig, EvmNetworkRegistry, EvmTransactionReceipt, EvmTransactionRequest, FaucetCoinInfo, FaucetNetwork, FetchTokenInfoOperation, GetAccountOrMark_Address, GetLocalNamesByAddresses, GetManyAccountOrMark_Address, HashAlgorithm, type IAccountStorage, ImageMimeType, ImageSource, InfoData, InfoDataInner, KeyMetadata, LocalInfo, LocalInfoContentMaxCount, LocalInfoContentMaxLength, LocalInfoFilter, LocalInfoNameDefault, LocalInfoNameMaxLength, LocalInfoOperation, LocalInfoOperationResult, LocalMark, LocalMarkFilter, LocalMarkNameMaxLength, LocalMarkOperation, LocalMarkOperationResult, LocalMarkTagMaxCount, LocalMarkTagMaxLength, LocalNameByAddress, MAX_MESSENGER_ACCOUNTS, ManyAccountOrMark_Address, MarkData, MarkParam, QueryAccount, QueryAccountResult, SecureAccountStorage, SecureEnvelope, SignatureAlgorithm, TextFormat, TokenDataFilter, TokenInfo, TokenTypeInfo, WIP, WipContent, WipCreateOptions, WipError, WipFile, WipGenerationOptions, WipLimits, WipMedia, WipMeta, WipPayload, WipSignature, WipSignatureVerification, WipSizeError, WipToHtmlOptions, WipValidationError, WipVerificationResult, account_operation, bytesToBigInt, bytesToHex, createWip, fetch_token_info_operation, generate_wip, hexToBytes, isValidAddress, isValidEvmAddress, loadWip, local_info_operation, local_mark_operation, privateKeyToAddress, query_account, query_account_list, query_local_info, query_local_info_default, query_local_info_list, query_local_mark, query_local_mark_list, query_local_token_list, registerBridgeEvmNetworks, signEIP1559, signLegacy, sign_wip, toChecksumAddress, verifyWip, verify_wip, wip2html, wipToHtml };
@@ -1 +1 @@
1
- import{a as a81a}from'../../wow-types-DcqbnAaK.mjs';import{i as a81b,r as a81c}from'../../common-D8TcHVCJ.mjs';import{o as a81d}from'../../exception-CkI_xPvd.mjs';import{Config}from'./config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./local.mjs';import{CryptoVault,SecureAccountStorage}from'./secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./account.mjs';import{TokenInfo}from'./token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./evm/networks.mjs';import{EvmAccount}from'./evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./wip.mjs';const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](void 0x0);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](void 0x0);if(b['toLowerCase']()==='0xaaa')return a81c;if(b['toLowerCase']()==='0xaab')return a81b;if(a81a(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}},GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));},GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);if(!d&&a['check_all_founded'])a81d('invalid\x20parameter','entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark');if(d)b['push'](d);}return b;},query_local_mark_list=async a=>{return await LocalMark['Instance']()['list'](a);},query_account_list=async a=>{return await Account['Instance']()['list'](a);},query_local_info_list=async a=>{return await LocalInfo['Instance']()['list'](a);},query_local_token_list=async a=>{return await TokenInfo['Instance']()['list'](a);},query_local_mark=async a=>{if(typeof a==='string')return await LocalMark['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalMark['Instance']()['get_many'](a);}},query_local_info=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalInfo['Instance']()['get_many'](a);}},query_local_info_default=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get_default'](a);else{if(Array['isArray'](a))return(await LocalInfo['Instance']()['get_many'](a))['map'](b=>b?.['default']);}},query_account=async a=>{const b=await Account['Instance']()['get'](a['name_or_address']);if(!b)return{'name_or_address':a['name_or_address']};const c={'address':b['address'],'name_or_address':b['name']},d=a['token_type']??'0x2::wow::WOW';if(a?.['balance'])c['balance']=await Account['Instance']()['balance'](d,b['address'],a['network']);else{if(a?.['coin'])c['coin']=await Account['Instance']()['coin'](d,a['coin']['cursor'],a['coin']['limit'],b['address'],a['network']);}return c;},account_operation=async a=>{var b={};if(a['gen']!=null){const c=await Account['Instance']()['gen'](a['gen']?.['name'],a['gen']?.['replaceExistName'],a['gen']?.['m']);b['gen']={'address':c?.['address'],'name':c?.['name'],'m':c?.['m']};}if(a['faucet']!=null)b['faucet']={'name_or_address':a['faucet']['name_or_address'],'result':await Account['Instance']()['faucet'](a['faucet']['name_or_address'],a['faucet']['network']),'network':a['faucet']['network']};if(a['suspend']!=null)b['suspend']={'name_or_address':a['suspend']['name_or_address'],'success':await Account['Instance']()['suspend'](a['suspend']['name_or_address'])};if(a['resume']!=null)b['resume']={'address':a['resume']['address'],'name':a['resume']['name'],'success':await Account['Instance']()['resume'](a['resume']['address'],a['resume']['name'])};if(a['rename']!=null)b['rename']={'name_or_address':a['rename']['name_or_address'],'new_name':a['rename']['new_name'],'success':await Account['Instance']()['rename'](a['rename']['name_or_address'],a['rename']['new_name'])};if(a['swap_name']!=null)b['swap_name']={'name_or_address1':a['swap_name']['name_or_address1'],'name_or_address2':a['swap_name']['name_or_address2'],'success':await Account['Instance']()['swap_name'](a['swap_name']['name_or_address1'],a['swap_name']['name_or_address2'])};if(a['transfer']!=null){const {name_or_address_from:d,name_or_address_to:e,amount:f,token_type:g,network:h}=a['transfer'];b['transfer']=await Account['Instance']()['transfer'](f,g,e,d,h);}if(a['get']!=null){const {balance_required:i,token_type:j,name_or_address:k,network:l}=a['get'];b['get']={'name_or_address':k,'balance_required':i,'token_type':j,'network':l,'coin_address':await Account['Instance']()['coinObject_with_balance'](i,j,k,l)};}if(a['signData']!=null){const {name_or_address:n,data:o,data_encoding:p}=a['signData'];let q=o;if(typeof o==='string'&&p)switch(p){case'base64':q=Uint8Array['from'](Buffer['from'](o,'base64'));break;case'hex':q=Uint8Array['from'](Buffer['from'](o['replace'](/^0x/,''),'hex'));break;default:q=o;break;}const r=await Account['Instance']()['signData'](n,q);b['signData']={'name_or_address':n,'signature':r['signature'],'publicKey':r['publicKey'],'address':r['address']};}if(a['messenger']!=null){const {name_or_account:s,m:t}=a['messenger'];await Account['Instance']()['set_messenger'](s,t),b['messenger']={'name_or_account':s,'m':t};}return b;},local_mark_operation=async a=>{const b={};if(a['clear'])b['clear']=await LocalMark['Instance']()['clear']();else{if(a['add'])b['add']=await LocalMark['Instance']()['put'](a['add']['data']);else{if(a['remove'])b['remove']=await LocalMark['Instance']()['del'](a['remove']['names']);}}return b;},local_info_operation=async a=>{if(a['clear'])await LocalInfo['Instance']()['clear']();else{if(a['add'])await LocalInfo['Instance']()['add'](a['add']['data']);else{if(a['remove'])await Promise['all'](a['remove']['data']['map'](b=>LocalInfo['Instance']()['del'](b)));else{if(a['reset'])await LocalInfo['Instance']()['reset_contents'](a['reset']['name'],a['reset']['contents']);}}}return{'success':!![]};},fetch_token_info_operation=async a=>{return await TokenInfo['Instance']()['fetch'](a['tokenType'],a?.['alias'],a?.['network']);};export{Account,BUITIN_IDS,Config,CryptoVault,DEFAULT_ACCOUNT_NAME,DEFAULT_LIMITS,ETH_MAINNET,EvmAccount,EvmNetworkRegistry,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,MAX_MESSENGER_ACCOUNTS,SecureAccountStorage,TokenInfo,WIP,WipError,WipSizeError,WipValidationError,account_operation,bytesToBigInt,bytesToHex,createWip,fetch_token_info_operation,generate_wip,hexToBytes,isValidAddress,isValidEvmAddress,loadWip,local_info_operation,local_mark_operation,privateKeyToAddress,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,registerBridgeEvmNetworks,signEIP1559,signLegacy,sign_wip,toChecksumAddress,verifyWip,verify_wip,wip2html,wipToHtml};
1
+ import{a as a81a}from'../../wow-types-DcqbnAaK.mjs';import{i as a81b,r as a81c}from'../../common-Dez7yfwb.mjs';import{o as a81d}from'../../exception-CkI_xPvd.mjs';import{Config}from'./config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./local.mjs';import{CryptoVault,SecureAccountStorage}from'./secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./account.mjs';import{TokenInfo}from'./token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./evm/networks.mjs';import{EvmAccount}from'./evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./wip.mjs';const GetAccountOrMark_Address=async a=>{if(!a)return await Account['Instance']()['get_address'](void 0x0);const b=typeof a==='string'?a:a['name_or_address'];if(!b)return await Account['Instance']()['get_address'](void 0x0);if(b['toLowerCase']()==='0xaaa')return a81c;if(b['toLowerCase']()==='0xaab')return a81b;if(a81a(b))return b;if(typeof a==='object'&&a?.['local_mark_first']){const c=await LocalMark['Instance']()['get_address'](b);if(!c)return await Account['Instance']()['get_address'](b);return c;}else{const d=await Account['Instance']()['get_address'](b);if(!d)return await LocalMark['Instance']()['get_address'](b);return d;}},GetLocalNamesByAddresses=async a=>{const [b,c]=await Promise['all']([Account['Instance']()['get_many'](a),LocalMark['Instance']()['get_many'](a)]);return a['map']((d,e)=>({'account':b[e]?.['name'],'local_mark':c[e]?.['name'],'address':d}));},GetManyAccountOrMark_Address=async a=>{const b=[];for(let c=0x0;c<a['entities']['length'];++c){const d=await GetAccountOrMark_Address(a['entities'][c]);if(!d&&a['check_all_founded'])a81d('invalid\x20parameter','entity\x20'+a['entities'][c]?.['name_or_address']+'\x20is\x20not\x20a\x20valid\x20address,\x20account\x20or\x20mark');if(d)b['push'](d);}return b;},query_local_mark_list=async a=>{return await LocalMark['Instance']()['list'](a);},query_account_list=async a=>{return await Account['Instance']()['list'](a);},query_local_info_list=async a=>{return await LocalInfo['Instance']()['list'](a);},query_local_token_list=async a=>{return await TokenInfo['Instance']()['list'](a);},query_local_mark=async a=>{if(typeof a==='string')return await LocalMark['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalMark['Instance']()['get_many'](a);}},query_local_info=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get'](a);else{if(Array['isArray'](a))return await LocalInfo['Instance']()['get_many'](a);}},query_local_info_default=async(a=LocalInfoNameDefault)=>{if(typeof a==='string')return await LocalInfo['Instance']()['get_default'](a);else{if(Array['isArray'](a))return(await LocalInfo['Instance']()['get_many'](a))['map'](b=>b?.['default']);}},query_account=async a=>{const b=await Account['Instance']()['get'](a['name_or_address']);if(!b)return{'name_or_address':a['name_or_address']};const c={'address':b['address'],'name_or_address':b['name']},d=a['token_type']??'0x2::wow::WOW';if(a?.['balance'])c['balance']=await Account['Instance']()['balance'](d,b['address'],a['network']);else{if(a?.['coin'])c['coin']=await Account['Instance']()['coin'](d,a['coin']['cursor'],a['coin']['limit'],b['address'],a['network']);}return c;},account_operation=async a=>{var b={};if(a['gen']!=null){const c=await Account['Instance']()['gen'](a['gen']?.['name'],a['gen']?.['replaceExistName'],a['gen']?.['m']);b['gen']={'address':c?.['address'],'name':c?.['name'],'m':c?.['m']};}if(a['faucet']!=null)b['faucet']={'name_or_address':a['faucet']['name_or_address'],'result':await Account['Instance']()['faucet'](a['faucet']['name_or_address'],a['faucet']['network']),'network':a['faucet']['network']};if(a['suspend']!=null)b['suspend']={'name_or_address':a['suspend']['name_or_address'],'success':await Account['Instance']()['suspend'](a['suspend']['name_or_address'])};if(a['resume']!=null)b['resume']={'address':a['resume']['address'],'name':a['resume']['name'],'success':await Account['Instance']()['resume'](a['resume']['address'],a['resume']['name'])};if(a['rename']!=null)b['rename']={'name_or_address':a['rename']['name_or_address'],'new_name':a['rename']['new_name'],'success':await Account['Instance']()['rename'](a['rename']['name_or_address'],a['rename']['new_name'])};if(a['swap_name']!=null)b['swap_name']={'name_or_address1':a['swap_name']['name_or_address1'],'name_or_address2':a['swap_name']['name_or_address2'],'success':await Account['Instance']()['swap_name'](a['swap_name']['name_or_address1'],a['swap_name']['name_or_address2'])};if(a['transfer']!=null){const {name_or_address_from:d,name_or_address_to:e,amount:f,token_type:g,network:h}=a['transfer'];b['transfer']=await Account['Instance']()['transfer'](f,g,e,d,h);}if(a['get']!=null){const {balance_required:i,token_type:j,name_or_address:k,network:l}=a['get'];b['get']={'name_or_address':k,'balance_required':i,'token_type':j,'network':l,'coin_address':await Account['Instance']()['coinObject_with_balance'](i,j,k,l)};}if(a['signData']!=null){const {name_or_address:n,data:o,data_encoding:p}=a['signData'];let q=o;if(typeof o==='string'&&p)switch(p){case'base64':q=Uint8Array['from'](Buffer['from'](o,'base64'));break;case'hex':q=Uint8Array['from'](Buffer['from'](o['replace'](/^0x/,''),'hex'));break;default:q=o;break;}const r=await Account['Instance']()['signData'](n,q);b['signData']={'name_or_address':n,'signature':r['signature'],'publicKey':r['publicKey'],'address':r['address']};}if(a['messenger']!=null){const {name_or_account:s,m:t}=a['messenger'];await Account['Instance']()['set_messenger'](s,t),b['messenger']={'name_or_account':s,'m':t};}return b;},local_mark_operation=async a=>{const b={};if(a['clear'])b['clear']=await LocalMark['Instance']()['clear']();else{if(a['add'])b['add']=await LocalMark['Instance']()['put'](a['add']['data']);else{if(a['remove'])b['remove']=await LocalMark['Instance']()['del'](a['remove']['names']);}}return b;},local_info_operation=async a=>{if(a['clear'])await LocalInfo['Instance']()['clear']();else{if(a['add'])await LocalInfo['Instance']()['add'](a['add']['data']);else{if(a['remove'])await Promise['all'](a['remove']['data']['map'](b=>LocalInfo['Instance']()['del'](b)));else{if(a['reset'])await LocalInfo['Instance']()['reset_contents'](a['reset']['name'],a['reset']['contents']);}}}return{'success':!![]};},fetch_token_info_operation=async a=>{return await TokenInfo['Instance']()['fetch'](a['tokenType'],a?.['alias'],a?.['network']);};export{Account,BUITIN_IDS,Config,CryptoVault,DEFAULT_ACCOUNT_NAME,DEFAULT_LIMITS,ETH_MAINNET,EvmAccount,EvmNetworkRegistry,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,MAX_MESSENGER_ACCOUNTS,SecureAccountStorage,TokenInfo,WIP,WipError,WipSizeError,WipValidationError,account_operation,bytesToBigInt,bytesToHex,createWip,fetch_token_info_operation,generate_wip,hexToBytes,isValidAddress,isValidEvmAddress,loadWip,local_info_operation,local_mark_operation,privateKeyToAddress,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,registerBridgeEvmNetworks,signEIP1559,signLegacy,sign_wip,toChecksumAddress,verifyWip,verify_wip,wip2html,wipToHtml};
@@ -1,2 +1,2 @@
1
- import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-CnxBimye.mjs";
1
+ import { _ as isValidAddress, a as LocalInfoContentMaxCount, c as LocalInfoNameDefault, d as LocalMarkFilter, f as LocalMarkNameMaxLength, g as MarkParam, h as MarkData, i as LocalInfo, l as LocalInfoNameMaxLength, m as LocalMarkTagMaxLength, n as InfoData, o as LocalInfoContentMaxLength, p as LocalMarkTagMaxCount, r as InfoDataInner, s as LocalInfoFilter, t as BUITIN_IDS, u as LocalMark } from "../../local-gzBIsXyJ.mjs";
2
2
  export { BUITIN_IDS, InfoData, InfoDataInner, LocalInfo, LocalInfoContentMaxCount, LocalInfoContentMaxLength, LocalInfoFilter, LocalInfoNameDefault, LocalInfoNameMaxLength, LocalMark, LocalMarkFilter, LocalMarkNameMaxLength, LocalMarkTagMaxCount, LocalMarkTagMaxLength, MarkData, MarkParam, isValidAddress };
@@ -1 +1 @@
1
- import{a as a82a,l as a82b}from'../../wow-types-DcqbnAaK.mjs';import{o as a82c}from'../../exception-CkI_xPvd.mjs';import{u as a82d}from'../../storage-UnD4qWaK.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','0xa','0xc','0xd','0x403','0xaaa','0xaab','0xacc'],isValidAddress=a=>{return a&&(a82a(a)||BUITIN_IDS['includes'](a));},LocalMarkNameMaxLength=0x40,LocalMarkTagMaxLength=0x40,LocalMarkTagMaxCount=0x32,LocalInfoNameMaxLength=0x40,LocalInfoContentMaxLength=0x12c,LocalInfoContentMaxCount=0x32,LocalInfoNameDefault='Address\x20of\x20delivery';var LocalMark=class LocalMark{static{this['_instanceLock']=new a82d();}constructor(){this['config']=Config['Instance']();}async['getCacheKey'](){return['mark',await this['config']['network_get']()];}static['Instance'](){if(LocalMark['_instance'])return LocalMark['_instance'];if(!LocalMark['_instance'])LocalMark['_instance']=new LocalMark();return LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,0x32),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,0x40);}),a;}['resolve_name'](a){return a['slice'](0x0,0x40);}async['put'](a){const b=await this['getCacheKey'](),c=(await Cache['read'](b,async()=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[],d=[...c],e=[];for(const f of a){f['address']=f['address']['toLowerCase']();if(!isValidAddress(f['address']))a82c('invalid\x20address','LocalMark.put.mark.address:\x20'+f['address']);if(f?.['name']?.['value'])f['name']['value']=this['resolve_name'](f?.['name']?.['value']);f['tags']=this['resolve_tags'](f?.['tags']);if(f?.['name']?.['value']!=null)d['forEach'](i=>{if(LocalMark['nameMatch'](i['name'],f['name']['value'])){if(f?.['name']?.['replaceExistName'])i['name']=void 0x0;else a82c('local\x20mark\x20name\x20exist','LocalMark.put.mark.name:\x20'+f['name']['value']);}});const g=Date['now'](),h={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':g,'updatedAt':g};c['push'](h),e['push'](h);}return await Cache['read'](b,async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===void 0x0||a===null)return;const b=await this['getCacheKey']();return(await Cache['read'](b,async c=>{return{'expire':'INFINITE','data':[]};}))?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a82b(a);return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await this['getCacheKey'](),c=(await Cache['read'](b,async d=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](void 0x0),c=new Map();a['forEach']((g,h)=>{if(g===null||g===void 0x0)b[h]=void 0x0;else{if(isValidAddress(g))b[h]=g['toLowerCase']();else c['set'](h,g);}});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['filter'](g=>{const h=a['map'](m=>m['toLowerCase']()),i=g['name']!==void 0x0&&g['name']!==null&&a['some'](m=>LocalMark['nameMatch'](g['name'],m)),j=h['includes'](g['address']['toLowerCase']()),k=i||j,l=g['name']===void 0x0||g['name']===null;if(b)return!k&&!l;else return!k;}),f=d['filter'](g=>!e['includes'](g));if(e['length']!==d['length'])await Cache['read'](c,async()=>({'expire':'INFINITE','data':e}),!![]);return f;}async['clear'](){const a=await this['getCacheKey']();return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](c=>c!==''&&c);const b=await this['getCacheKey']();return((await Cache['read'](b,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[])['filter'](c=>{if(a?.['address']&&c['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!c['createdAt']||c['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!c['createdAt']||c['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](c=>{let d=0x0;const e=c['name']?.['toLowerCase']()||'',f=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['tags']&&a['tags']['length']>0x0)a['tags']['forEach'](g=>{const h=g['toLowerCase']();if(c['tags'])c['tags']['forEach'](i=>{const j=i['toLowerCase']();if(j===h)d+=0x14;else{if(j['startsWith'](h))d+=0xf;else{if(j['includes'](h))d+=0xa;}}});});if((a?.['name']||a?.['tags'])&&d===0x0)d=-0x1;return{'mark':c,'score':d};})['filter'](({score:c})=>c>=0x0)['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=(c['mark']['name']||'')['length'],f=(d['mark']['name']||'')['length'];if(e!==f)return e-f;return(c['mark']['name']||'')['localeCompare'](d['mark']['name']||'');})['map'](({mark:c})=>c);}},LocalInfo=class LocalInfo{constructor(){this['cacheKey']=['info'];}static{this['_dataLock']=new a82d();}static['Instance'](){if(LocalInfo['_instance'])return LocalInfo['_instance'];if(!LocalInfo['_instance'])LocalInfo['_instance']=new LocalInfo();return LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,0x32),a['map'](b=>b['slice'](0x0,0x12c));}['resolve_name'](a){return a['slice'](0x0,0x40);}async['add'](a){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};for(const c of a){const d=this['resolve_name'](c['name']),e=c['default']['slice'](0x0,0x12c);if(b[d]){const f=Date['now'](),g=b[d];g['default']=e;if(c['contents']!==void 0x0)g['contents']=this['resolve_contents'](c['contents']);g['updatedAt']=f;}else{const h=Date['now']();b[d]={'default':e,'contents':c['contents']?this['resolve_contents'](c['contents']):[],'createdAt':h,'updatedAt':h};}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=((await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{})[a];return b?{'name':a,...b}:void 0x0;}async['get_default'](a=LocalInfoNameDefault){return(await this['get'](a))?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return a['map'](c=>{const d=b[c];return d?{'name':c,...d}:void 0x0;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};delete b[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_dataLock']['run'](async()=>{const c=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{},d=c[a];if(d){const e=Date['now']();return d['contents']=this['resolve_contents'](b),d['updatedAt']=e,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_dataLock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return Object['entries'](b)['map'](([c,d])=>{let e=0x0;const f={'name':c,...d};if(a?.['name']){const g=c['toLowerCase'](),h=a['name']['toLowerCase']();if(g===h)e+=0x64;else{if(g['startsWith'](h))e+=0x32;else{if(g['includes'](h))e+=0x19;}}}if(a?.['default']){const i=d['default']['toLowerCase'](),j=a['default']['toLowerCase']();if(i===j)e+=0x5a;else{if(i['startsWith'](j))e+=0x2d;else{if(i['includes'](j))e+=0x16;}}}if(a?.['contents']&&a['contents']['length']>0x0)a['contents']['forEach'](k=>{const l=k['toLowerCase']();if(d['contents'])d['contents']['forEach'](m=>{const n=m['toLowerCase']();if(n===l)e+=0x14;else{if(n['startsWith'](l))e+=0xf;else{if(n['includes'](l))e+=0xa;}}});});if((a?.['name']||a?.['default']||a?.['contents'])&&e===0x0)e=-0x1;return{'info':f,'score':e};})['filter'](({score:c,info:d})=>{if(c<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=c['info']['name']['length'],f=d['info']['name']['length'];if(e!==f)return e-f;return c['info']['name']['localeCompare'](d['info']['name']);})['map'](({info:c})=>c);}};export{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress};
1
+ import{a as a82a,l as a82b}from'../../wow-types-DcqbnAaK.mjs';import{o as a82c}from'../../exception-CkI_xPvd.mjs';import{u as a82d}from'../../storage-UnD4qWaK.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';const BUITIN_IDS=['0x5','0x6','0x7','0x8','0x9','0xa','0xc','0xd','0x403','0xaaa','0xaab','0xacc'],isValidAddress=a=>{return a&&(a82a(a)||BUITIN_IDS['includes'](a));},LocalMarkNameMaxLength=0x40,LocalMarkTagMaxLength=0x40,LocalMarkTagMaxCount=0x32,LocalInfoNameMaxLength=0x40,LocalInfoContentMaxLength=0x12c,LocalInfoContentMaxCount=0x32,LocalInfoNameDefault='Address\x20of\x20delivery';var LocalMark=class LocalMark{static{this['_instanceLock']=new a82d();}constructor(){this['config']=Config['Instance']();}async['getCacheKey'](){return['mark',await this['config']['network_get']()];}static['Instance'](){if(LocalMark['_instance'])return LocalMark['_instance'];if(!LocalMark['_instance'])LocalMark['_instance']=new LocalMark();return LocalMark['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_tags'](a){return a=a?.['slice'](0x0,0x32),a=a?.['filter'](b=>b!==''&&b)?.['map'](b=>{return b['slice'](0x0,0x40);}),a;}['resolve_name'](a){return a['slice'](0x0,0x40);}async['put'](a){const b=await this['getCacheKey'](),c=(await Cache['read'](b,async()=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[],d=[...c],e=[];for(const f of a){f['address']=f['address']['toLowerCase']();if(!isValidAddress(f['address']))a82c('invalid\x20address','LocalMark.put.mark.address:\x20'+f['address']);if(f?.['name']?.['value'])f['name']['value']=this['resolve_name'](f?.['name']?.['value']);f['tags']=this['resolve_tags'](f?.['tags']);if(f?.['name']?.['value']!=null)d['forEach'](i=>{if(LocalMark['nameMatch'](i['name'],f['name']['value'])){if(f?.['name']?.['replaceExistName'])i['name']=void 0x0;else a82c('local\x20mark\x20name\x20exist','LocalMark.put.mark.name:\x20'+f['name']['value']);}});const g=Date['now'](),h={'name':f?.['name']?.['value'],'address':f['address'],'tags':f['tags'],'createdAt':g,'updatedAt':g};c['push'](h),e['push'](h);}return await Cache['read'](b,async()=>({'expire':'INFINITE','data':c}),!![]),e;}async['get'](a){if(a===void 0x0||a===null)return;const b=await this['getCacheKey']();return(await Cache['read'](b,async c=>{return{'expire':'INFINITE','data':[]};}))?.['data']?.['find'](c=>LocalMark['nameMatch'](c['name'],a)||c['address']['toLowerCase']()===a['toLowerCase']());}async['get_address'](a){if(a&&isValidAddress(a))return a82b(a);return(await this['get'](a))?.['address'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=await this['getCacheKey'](),c=(await Cache['read'](b,async d=>{return{'expire':'INFINITE','data':[]};}))?.['data']||[];return a['map'](d=>{return c['find'](e=>LocalMark['nameMatch'](e['name'],d)||e['address']['toLowerCase']()===d?.['toLowerCase']());});}async['get_many_address'](a){const b=new Array(a['length'])['fill'](void 0x0),c=new Map();a['forEach']((g,h)=>{if(g===null||g===void 0x0)b[h]=void 0x0;else{if(isValidAddress(g))b[h]=g['toLowerCase']();else c['set'](h,g);}});const d=Array['from'](c['values']());if(d['length']===0x0)return b;const e=await this['get_many'](d);let f=0x0;return c['forEach']((g,h)=>{const i=e[f];b[h]=i?.['address'],f++;}),b;}async['get_many_address_availables'](a){return(await this['get_many_address'](a))['filter'](b=>b!=null);}async['del'](a,b=![]){const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['filter'](g=>{const h=a['map'](m=>m['toLowerCase']()),i=g['name']!==void 0x0&&g['name']!==null&&a['some'](m=>LocalMark['nameMatch'](g['name'],m)),j=h['includes'](g['address']['toLowerCase']()),k=i||j,l=g['name']===void 0x0||g['name']===null;if(b)return!k&&!l;else return!k;}),f=d['filter'](g=>!e['includes'](g));if(e['length']!==d['length'])await Cache['read'](c,async()=>({'expire':'INFINITE','data':e}),!![]);return f;}async['clear'](){const a=await this['getCacheKey']();return await Cache['read'](a,async()=>({'expire':'INFINITE','data':[]}),!![]),!![];}async['rename'](a,b){b=this['resolve_name'](b);if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e&&d['findIndex'](f=>LocalMark['nameMatch'](f['name'],b))===-0x1){const f=Date['now']();return e['name']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['swap_name'](a,b){if(a===b)return!![];const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](g=>LocalMark['nameMatch'](g['name'],a)),f=d['find'](g=>LocalMark['nameMatch'](g['name'],b));if(e&&f){const g=Date['now']();return e['name']=b,e['updatedAt']=g,f['name']=a,f['updatedAt']=g,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['set_tags'](a,b){b=this['resolve_tags'](b);const c=await this['getCacheKey'](),d=(await Cache['read'](c,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],e=d['find'](f=>LocalMark['nameMatch'](f['name'],a));if(e){const f=Date['now']();return e['tags']=b,e['updatedAt']=f,await Cache['read'](c,async()=>({'expire':'INFINITE','data':d}),!![]),!![];}return![];}async['add_tags'](a,b){const c=this['resolve_tags'](b);if(!c||c['length']===0x0)return![];const d=await this['getCacheKey'](),e=(await Cache['read'](d,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[],f=e['find'](i=>LocalMark['nameMatch'](i['name'],a)||i['address']['toLowerCase']()===a['toLowerCase']());if(!f)return![];const g=new Set(f['tags']??[]),h=[...g];for(const i of c){!g['has'](i)&&(h['push'](i),g['add'](i));if(h['length']>=0x32)break;}return f['tags']=h,f['updatedAt']=Date['now'](),await Cache['read'](d,async()=>({'expire':'INFINITE','data':e}),!![]),!![];}async['list'](a){if(a&&a['tags'])a['tags']=a['tags']['filter'](c=>c!==''&&c);const b=await this['getCacheKey']();return((await Cache['read'](b,async()=>({'expire':'INFINITE','data':[]})))?.['data']||[])['filter'](c=>{if(a?.['address']&&c['address']['toLowerCase']()!==a['address']['toLowerCase']())return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!c['createdAt']||c['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!c['createdAt']||c['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!c['updatedAt']||c['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['map'](c=>{let d=0x0;const e=c['name']?.['toLowerCase']()||'',f=a?.['name']?.['toLowerCase']()||'';if(a?.['name']){if(e===f)d+=0x64;else{if(e['startsWith'](f))d+=0x32;else{if(e['includes'](f))d+=0x19;}}}if(a?.['tags']&&a['tags']['length']>0x0)a['tags']['forEach'](g=>{const h=g['toLowerCase']();if(c['tags'])c['tags']['forEach'](i=>{const j=i['toLowerCase']();if(j===h)d+=0x14;else{if(j['startsWith'](h))d+=0xf;else{if(j['includes'](h))d+=0xa;}}});});if((a?.['name']||a?.['tags'])&&d===0x0)d=-0x1;return{'mark':c,'score':d};})['filter'](({score:c})=>c>=0x0)['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=(c['mark']['name']||'')['length'],f=(d['mark']['name']||'')['length'];if(e!==f)return e-f;return(c['mark']['name']||'')['localeCompare'](d['mark']['name']||'');})['map'](({mark:c})=>c);}},LocalInfo=class LocalInfo{constructor(){this['cacheKey']=['info'];}static{this['_dataLock']=new a82d();}static['Instance'](){if(LocalInfo['_instance'])return LocalInfo['_instance'];if(!LocalInfo['_instance'])LocalInfo['_instance']=new LocalInfo();return LocalInfo['_instance'];}static['nameMatch'](a,b){if(a==null||b==null)return![];return a['toLowerCase']()===b['toLowerCase']();}['resolve_contents'](a){return a=a['slice'](0x0,0x32),a['map'](b=>b['slice'](0x0,0x12c));}['resolve_name'](a){return a['slice'](0x0,0x40);}async['add'](a){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};for(const c of a){const d=this['resolve_name'](c['name']),e=c['default']['slice'](0x0,0x12c);if(b[d]){const f=Date['now'](),g=b[d];g['default']=e;if(c['contents']!==void 0x0)g['contents']=this['resolve_contents'](c['contents']);g['updatedAt']=f;}else{const h=Date['now']();b[d]={'default':e,'contents':c['contents']?this['resolve_contents'](c['contents']):[],'createdAt':h,'updatedAt':h};}}return await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]),!![];});}async['get'](a=LocalInfoNameDefault){const b=((await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{})[a];return b?{'name':a,...b}:void 0x0;}async['get_default'](a=LocalInfoNameDefault){return(await this['get'](a))?.['default'];}async['get_many'](a){if(!Array['isArray'](a)||a['length']===0x0)return[];const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return a['map'](c=>{const d=b[c];return d?{'name':c,...d}:void 0x0;});}async['del'](a=LocalInfoNameDefault){return LocalInfo['_dataLock']['run'](async()=>{const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};delete b[a],await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':b}),!![]);});}async['reset_contents'](a=LocalInfoNameDefault,b){return LocalInfo['_dataLock']['run'](async()=>{const c=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{},d=c[a];if(d){const e=Date['now']();return d['contents']=this['resolve_contents'](b),d['updatedAt']=e,await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':c}),!![]),!![];}return![];});}async['clear'](){return LocalInfo['_dataLock']['run'](async()=>{await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}}),!![]);});}async['list'](a){const b=(await Cache['read'](this['cacheKey'],async()=>({'expire':'INFINITE','data':{}})))?.['data']||{};return Object['entries'](b)['map'](([c,d])=>{let e=0x0;const f={'name':c,...d};if(a?.['name']){const g=c['toLowerCase'](),h=a['name']['toLowerCase']();if(g===h)e+=0x64;else{if(g['startsWith'](h))e+=0x32;else{if(g['includes'](h))e+=0x19;}}}if(a?.['default']){const i=d['default']['toLowerCase'](),j=a['default']['toLowerCase']();if(i===j)e+=0x5a;else{if(i['startsWith'](j))e+=0x2d;else{if(i['includes'](j))e+=0x16;}}}if(a?.['contents']&&a['contents']['length']>0x0)a['contents']['forEach'](k=>{const l=k['toLowerCase']();if(d['contents'])d['contents']['forEach'](m=>{const n=m['toLowerCase']();if(n===l)e+=0x14;else{if(n['startsWith'](l))e+=0xf;else{if(n['includes'](l))e+=0xa;}}});});if((a?.['name']||a?.['default']||a?.['contents'])&&e===0x0)e=-0x1;return{'info':f,'score':e};})['filter'](({score:c,info:d})=>{if(c<0x0)return![];if(a?.['createdAt']){if(a['createdAt']['gte']!==void 0x0&&(!d['createdAt']||d['createdAt']<a['createdAt']['gte']))return![];if(a['createdAt']['lte']!==void 0x0&&(!d['createdAt']||d['createdAt']>a['createdAt']['lte']))return![];}if(a?.['updatedAt']){if(a['updatedAt']['gte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']<a['updatedAt']['gte']))return![];if(a['updatedAt']['lte']!==void 0x0&&(!d['updatedAt']||d['updatedAt']>a['updatedAt']['lte']))return![];}return!![];})['sort']((c,d)=>{if(d['score']!==c['score'])return d['score']-c['score'];const e=c['info']['name']['length'],f=d['info']['name']['length'];if(e!==f)return e-f;return c['info']['name']['localeCompare'](d['info']['name']);})['map'](({info:c})=>c);}};export{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress};
@@ -1,2 +1,2 @@
1
- import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-D4X3f-9t.mjs";
1
+ import { a as SecureEnvelope, i as SecureAccountStorage, n as EncryptionMode, r as KeyMetadata, t as CryptoVault } from "../../secure-storage-DFF-RQn-.mjs";
2
2
  export { CryptoVault, EncryptionMode, KeyMetadata, SecureAccountStorage, SecureEnvelope };
@@ -1 +1 @@
1
- import{s as a83a,u as a83b}from'../../storage-UnD4qWaK.mjs';import{sha256}from'@noble/hashes/sha2.js';import{randomBytes}from'@noble/hashes/utils.js';import{hkdf}from'@noble/hashes/hkdf.js';const ENVELOPE_VERSION=0x1,KEY_METADATA_TABLE='key_metadata',DEFAULT_MASTER_SECRET=new TextEncoder()['encode']('WowokAccountDefaultEncryptionKey_v1_a7f3e9d2c8b10564'),PBKDF2_ITERATIONS=0x927c0,IV_LENGTH=0xc,KEK_INFO=new TextEncoder()['encode']('wowok-account-kek');function bytesToBase64(a){if(typeof Buffer!=='undefined')return Buffer['from'](a)['toString']('base64');const b=Array['from'](a,c=>String['fromCharCode'](c))['join']('');return btoa(b);}function base64ToBytes(a){if(typeof Buffer!=='undefined')return new Uint8Array(Buffer['from'](a,'base64'));return Uint8Array['from'](atob(a),b=>b['charCodeAt'](0x0));}let subtleCache;async function getSubtle(){if(subtleCache)return subtleCache;if(typeof globalThis!=='undefined'&&globalThis['crypto']&&globalThis['crypto']['subtle'])return subtleCache=globalThis['crypto']['subtle'],subtleCache;return subtleCache=(await import('crypto'))['webcrypto']['subtle'],subtleCache;}function concatBytes(c,d){const e=new Uint8Array(c['length']+d['length']);return e['set'](c,0x0),e['set'](d,c['length']),e;}function toArrayBuffer(a){return a['buffer']['slice'](a['byteOffset'],a['byteOffset']+a['byteLength']);}function splitIvTagCt(a){if(a['length']<0x1c)throw new Error('Invalid\x20encrypted\x20blob:\x20too\x20short');return{'iv':a['slice'](0x0,IV_LENGTH),'ct':a['slice'](IV_LENGTH)};}var CryptoVault=class{constructor(a){this['_dbSource']=a,this['_initLock']=new a83b(),this['_writeLock']=new a83b();}get['db'](){return this['_dbSource']??a83a();}['ensureTable'](){this['db']['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+KEY_METADATA_TABLE+'\x20(\x0a\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09);\x0a\x09\x09');}['loadMetadata'](){this['ensureTable']();const a=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(!a)return void 0x0;return JSON['parse'](a['data']);}['saveMetadata'](a){this['ensureTable'](),this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09\x09')['run'](JSON['stringify'](a));}get['initialized'](){if(this['_metadata'])return!![];return this['loadMetadata']()!==void 0x0;}async['ensureInitialized'](){if(this['_metadata'])return this['_metadata'];return this['_initLock']['run'](async()=>{if(this['_metadata'])return this['_metadata'];const a=this['loadMetadata']();if(a)return this['_metadata']=a,a;return await this['_initializeDefaultLocked'](),this['_metadata'];});}async['initializeDefault'](){if(this['_metadata'])return;await this['_initLock']['run'](async()=>{if(this['_metadata'])return;await this['_initializeDefaultLocked']();});}async['_initializeDefaultLocked'](){const a=this['loadMetadata']();if(a){this['_metadata']=a;return;}const b=randomBytes(0x10),c=randomBytes(0x20),d=this['deriveDefaultKek'](b),e=await this['wrapDek'](d,c),f={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(b),'wrappedKey':bytesToBase64(e)};try{this['db']['transaction'](()=>{const g=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(g){this['_metadata']=JSON['parse'](g['data']);return;}this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09')['run'](JSON['stringify'](f)),this['_metadata']=f;})();}catch{const g=this['loadMetadata']();if(g)this['_metadata']=g;}if(!this['_metadata']){const h=this['loadMetadata']();if(h)this['_metadata']=h;}}['deriveDefaultKek'](a){return hkdf(sha256,DEFAULT_MASTER_SECRET,a,KEK_INFO,0x20);}async['derivePasswordKek'](a,b){const c=await getSubtle(),d=await c['importKey']('raw',new TextEncoder()['encode'](a),{'name':'PBKDF2'},![],['deriveBits']),e=await c['deriveBits']({'name':'PBKDF2','salt':toArrayBuffer(b),'iterations':PBKDF2_ITERATIONS,'hash':'SHA-256'},d,0x100);return new Uint8Array(e);}async['wrapDek'](a,b){const c=await getSubtle(),d=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),e=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['encrypt']);return concatBytes(d,new Uint8Array(await c['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},e,toArrayBuffer(b))));}async['unwrapDek'](a,b){const c=await getSubtle(),{iv:d,ct:e}=splitIvTagCt(b),f=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['decrypt']),g=await c['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},f,toArrayBuffer(e));return new Uint8Array(g);}async['getDek'](a){if(this['_dek'])return this['_dek'];const b=await this['ensureInitialized'](),c=base64ToBytes(b['salt']);let d;if(b['mode']==='password'){if(!a)throw new Error('Account\x20data\x20is\x20protected\x20by\x20a\x20password.\x20Please\x20set\x20the\x20encryption\x20password\x20first.');d=await this['derivePasswordKek'](a,c);}else{if(a)d=await this['derivePasswordKek'](a,c);else d=this['deriveDefaultKek'](c);}const e=base64ToBytes(b['wrappedKey']),f=await this['unwrapDek'](d,e),g=await getSubtle();return this['_dek']=await g['importKey']('raw',toArrayBuffer(f),{'name':'AES-GCM'},![],['encrypt','decrypt']),this['_dek'];}['clearDekCache'](){this['_dek']=void 0x0;}async['encrypt'](a,b){const c=await this['ensureInitialized'](),d=await this['getDek'](b),e=await getSubtle(),f=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),g=new Uint8Array(await e['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(f)},d,toArrayBuffer(new TextEncoder()['encode'](a))));return{'v':ENVELOPE_VERSION,'mode':c['mode'],'kdf':c['kdf'],'salt':c['salt'],'iterations':c['iterations'],'wrappedKey':c['wrappedKey'],'iv':bytesToBase64(f),'ct':bytesToBase64(g)};}async['decrypt'](a,b){const c=await this['getDek'](b),d=await getSubtle(),e=base64ToBytes(a['iv']),f=base64ToBytes(a['ct']),g=await d['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(e)},c,toArrayBuffer(f));return new TextDecoder()['decode'](g);}['getMode'](){if(this['_metadata'])return this['_metadata']['mode'];return this['loadMetadata']()?.['mode'];}async['setPassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized'](),c=await this['unwrapDek'](this['deriveDefaultKek'](base64ToBytes(b['salt'])),base64ToBytes(b['wrappedKey'])),d=randomBytes(0x10),e=await this['derivePasswordKek'](a,d),f=await this['wrapDek'](e,c),g={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(d),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(f)};this['saveMetadata'](g),this['_metadata']=g,this['clearDekCache']();});}async['changePassword'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('Account\x20data\x20is\x20not\x20protected\x20by\x20a\x20password.\x20Call\x20setPassword\x20first.');const d=await this['derivePasswordKek'](a,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f=randomBytes(0x10),g=await this['derivePasswordKek'](b,f),h=await this['wrapDek'](g,e),i={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(f),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(h)};this['saveMetadata'](i),this['_metadata']=i,this['clearDekCache']();});}async['removePassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized']();if(b['mode']!=='password')throw new Error('Account\x20data\x20is\x20already\x20in\x20default\x20encryption\x20mode.');const c=await this['derivePasswordKek'](a,base64ToBytes(b['salt'])),d=await this['unwrapDek'](c,base64ToBytes(b['wrappedKey'])),e=randomBytes(0x10),f=this['deriveDefaultKek'](e),g=await this['wrapDek'](f,d),h={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(e),'wrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}},SecureAccountStorage=class{constructor(a,b){this['_backend']=a,this['_vault']=b??new CryptoVault();}['setSessionPassword'](a){this['_sessionPassword']=a,this['_vault']['clearDekCache']();}['getSessionPassword'](){return this['_sessionPassword'];}['isSecureEnvelope'](a){return a&&typeof a==='object'&&a['v']===ENVELOPE_VERSION&&typeof a['ct']==='string'&&typeof a['wrappedKey']==='string'&&(a['kdf']==='hkdf-sha256'||a['kdf']==='pbkdf2-sha256');}async['get'](){const a=await this['_backend']['get']();if(!a)return void 0x0;let b;try{b=JSON['parse'](a);}catch{return a;}if(this['isSecureEnvelope'](b))return this['_vault']['decrypt'](b,this['_sessionPassword']);return a;}async['put'](a){const b=await this['_vault']['encrypt'](a,this['_sessionPassword']);await this['_backend']['put'](JSON['stringify'](b));}async['clear'](){await this['_backend']['clear']();}['getMode'](){return this['_vault']['getMode']();}async['setPassword'](a){await this['_vault']['setPassword'](a),this['_sessionPassword']=a;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}async['changePassword'](a,b){await this['_vault']['changePassword'](a,b),this['_sessionPassword']=b;if(await this['_backend']['get']()){const c=await this['get']();if(c!==void 0x0)await this['put'](c);}}async['removePassword'](a){await this['_vault']['removePassword'](a),this['_sessionPassword']=void 0x0;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}};export{CryptoVault,SecureAccountStorage};
1
+ import{s as a83a,u as a83b}from'../../storage-UnD4qWaK.mjs';import{sha256}from'@noble/hashes/sha2.js';import{randomBytes}from'@noble/hashes/utils.js';import{hkdf}from'@noble/hashes/hkdf.js';const ENVELOPE_VERSION=0x1,KEY_METADATA_TABLE='key_metadata',DEFAULT_MASTER_SECRET=new TextEncoder()['encode']('WowokAccountDefaultEncryptionKey_v1_a7f3e9d2c8b10564'),PBKDF2_ITERATIONS=0x927c0,IV_LENGTH=0xc,KEK_INFO=new TextEncoder()['encode']('wowok-account-kek');function bytesToBase64(a){if(typeof Buffer!=='undefined')return Buffer['from'](a)['toString']('base64');const b=Array['from'](a,c=>String['fromCharCode'](c))['join']('');return btoa(b);}function base64ToBytes(a){if(typeof Buffer!=='undefined')return new Uint8Array(Buffer['from'](a,'base64'));return Uint8Array['from'](atob(a),b=>b['charCodeAt'](0x0));}let subtleCache;async function getSubtle(){if(subtleCache)return subtleCache;if(typeof globalThis!=='undefined'&&globalThis['crypto']&&globalThis['crypto']['subtle'])return subtleCache=globalThis['crypto']['subtle'],subtleCache;return subtleCache=(await import('crypto'))['webcrypto']['subtle'],subtleCache;}function concatBytes(c,d){const e=new Uint8Array(c['length']+d['length']);return e['set'](c,0x0),e['set'](d,c['length']),e;}function toArrayBuffer(a){return a['buffer']['slice'](a['byteOffset'],a['byteOffset']+a['byteLength']);}function splitIvTagCt(a){if(a['length']<0x1c)throw new Error('Invalid\x20encrypted\x20blob:\x20too\x20short');return{'iv':a['slice'](0x0,IV_LENGTH),'ct':a['slice'](IV_LENGTH)};}var CryptoVault=class{constructor(a){this['_dbSource']=a,this['_initLock']=new a83b(),this['_writeLock']=new a83b();}get['db'](){return this['_dbSource']??a83a();}['ensureTable'](){this['db']['exec']('\x0a\x09\x09\x09CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20'+KEY_METADATA_TABLE+'\x20(\x0a\x09\x09\x09\x09id\x20INTEGER\x20PRIMARY\x20KEY\x20CHECK\x20(id\x20=\x201),\x0a\x09\x09\x09\x09data\x20TEXT\x20NOT\x20NULL,\x0a\x09\x09\x09\x09updated_at\x20INTEGER\x20DEFAULT\x20(strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09);\x0a\x09\x09');}['loadMetadata'](){this['ensureTable']();const a=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(!a)return void 0x0;return JSON['parse'](a['data']);}['saveMetadata'](a){this['ensureTable'](),this['db']['prepare']('\x0a\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09ON\x20CONFLICT(id)\x20DO\x20UPDATE\x20SET\x20data\x20=\x20excluded.data,\x20updated_at\x20=\x20excluded.updated_at\x0a\x09\x09\x09')['run'](JSON['stringify'](a));}get['initialized'](){if(this['_metadata'])return!![];return this['loadMetadata']()!==void 0x0;}async['ensureInitialized'](){if(this['_metadata'])return this['_metadata'];return this['_initLock']['run'](async()=>{if(this['_metadata'])return this['_metadata'];const a=this['loadMetadata']();if(a)return this['_metadata']=a,a;return await this['_initializeDefaultLocked'](),this['_metadata'];});}async['initializeDefault'](){if(this['_metadata'])return;await this['_initLock']['run'](async()=>{if(this['_metadata'])return;await this['_initializeDefaultLocked']();});}async['_initializeDefaultLocked'](){const a=this['loadMetadata']();if(a){this['_metadata']=a;return;}const b=randomBytes(0x10),c=randomBytes(0x20),d=this['deriveDefaultKek'](b),e=await this['wrapDek'](d,c),f={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(b),'wrappedKey':bytesToBase64(e)};try{this['db']['transaction'](()=>{const g=this['db']['prepare']('SELECT\x20data\x20FROM\x20'+KEY_METADATA_TABLE+'\x20WHERE\x20id\x20=\x201')['get']();if(g){this['_metadata']=JSON['parse'](g['data']);return;}this['db']['prepare']('\x0a\x09\x09\x09\x09\x09INSERT\x20INTO\x20'+KEY_METADATA_TABLE+'\x20(id,\x20data,\x20updated_at)\x0a\x09\x09\x09\x09\x09VALUES\x20(1,\x20?,\x20strftime(\x27%s\x27,\x20\x27now\x27))\x0a\x09\x09\x09\x09')['run'](JSON['stringify'](f)),this['_metadata']=f;})();}catch{const g=this['loadMetadata']();if(g)this['_metadata']=g;}if(!this['_metadata']){const h=this['loadMetadata']();if(h)this['_metadata']=h;}}['deriveDefaultKek'](a){return hkdf(sha256,DEFAULT_MASTER_SECRET,a,KEK_INFO,0x20);}async['derivePasswordKek'](a,b){const c=await getSubtle(),d=await c['importKey']('raw',new TextEncoder()['encode'](a),{'name':'PBKDF2'},![],['deriveBits']),e=await c['deriveBits']({'name':'PBKDF2','salt':toArrayBuffer(b),'iterations':PBKDF2_ITERATIONS,'hash':'SHA-256'},d,0x100);return new Uint8Array(e);}async['wrapDek'](a,b){const c=await getSubtle(),d=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),e=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['encrypt']);return concatBytes(d,new Uint8Array(await c['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},e,toArrayBuffer(b))));}async['unwrapDek'](a,b){const c=await getSubtle(),{iv:d,ct:e}=splitIvTagCt(b),f=await c['importKey']('raw',toArrayBuffer(a),{'name':'AES-GCM'},![],['decrypt']),g=await c['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(d)},f,toArrayBuffer(e));return new Uint8Array(g);}async['getDek'](a){if(this['_dek'])return this['_dek'];const b=await this['ensureInitialized'](),c=base64ToBytes(b['salt']);let d,e;if(b['mode']==='password'){if(a)d=await this['derivePasswordKek'](a,c),e=base64ToBytes(b['wrappedKey']);else{if(b['mcpWrappedKey'])d=this['deriveDefaultKek'](c),e=base64ToBytes(b['mcpWrappedKey']);else throw new Error('Account\x20access\x20is\x20disabled\x20for\x20MCP.\x20Please\x20open\x20the\x20WoWok\x20Client\x20and\x20enable\x20MCP\x20account\x20access\x20in\x20Settings\x20to\x20proceed.');}}else{if(a)d=await this['derivePasswordKek'](a,c);else d=this['deriveDefaultKek'](c);e=base64ToBytes(b['wrappedKey']);}const f=await this['unwrapDek'](d,e),g=await getSubtle();return this['_dek']=await g['importKey']('raw',toArrayBuffer(f),{'name':'AES-GCM'},![],['encrypt','decrypt']),this['_dek'];}['clearDekCache'](){this['_dek']=void 0x0;}async['encrypt'](a,b){const c=await this['ensureInitialized'](),d=await this['getDek'](b),e=await getSubtle(),f=crypto['getRandomValues'](new Uint8Array(IV_LENGTH)),g=new Uint8Array(await e['encrypt']({'name':'AES-GCM','iv':toArrayBuffer(f)},d,toArrayBuffer(new TextEncoder()['encode'](a))));return{'v':ENVELOPE_VERSION,'mode':c['mode'],'kdf':c['kdf'],'salt':c['salt'],'iterations':c['iterations'],'wrappedKey':c['wrappedKey'],'iv':bytesToBase64(f),'ct':bytesToBase64(g)};}async['decrypt'](a,b){const c=await this['getDek'](b),d=await getSubtle(),e=base64ToBytes(a['iv']),f=base64ToBytes(a['ct']),g=await d['decrypt']({'name':'AES-GCM','iv':toArrayBuffer(e)},c,toArrayBuffer(f));return new TextDecoder()['decode'](g);}['getMode'](){if(this['_metadata'])return this['_metadata']['mode'];return this['loadMetadata']()?.['mode'];}async['setPassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized'](),c=await this['unwrapDek'](this['deriveDefaultKek'](base64ToBytes(b['salt'])),base64ToBytes(b['wrappedKey'])),d=randomBytes(0x10),e=await this['derivePasswordKek'](a,d),f=await this['wrapDek'](e,c),g=await this['wrapDek'](this['deriveDefaultKek'](d),c),h={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(d),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(f),'mcpWrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}async['changePassword'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('Account\x20data\x20is\x20not\x20protected\x20by\x20a\x20password.\x20Call\x20setPassword\x20first.');const d=await this['derivePasswordKek'](a,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f=randomBytes(0x10),g=await this['derivePasswordKek'](b,f),h=await this['wrapDek'](g,e),i={'v':ENVELOPE_VERSION,'mode':'password','kdf':'pbkdf2-sha256','salt':bytesToBase64(f),'iterations':PBKDF2_ITERATIONS,'wrappedKey':bytesToBase64(h)};if(c['mcpWrappedKey'])i['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](f),e));this['saveMetadata'](i),this['_metadata']=i,this['clearDekCache']();});}async['removePassword'](a){return this['_writeLock']['run'](async()=>{const b=await this['ensureInitialized']();if(b['mode']!=='password')throw new Error('Account\x20data\x20is\x20already\x20in\x20default\x20encryption\x20mode.');const c=await this['derivePasswordKek'](a,base64ToBytes(b['salt'])),d=await this['unwrapDek'](c,base64ToBytes(b['wrappedKey'])),e=randomBytes(0x10),f=this['deriveDefaultKek'](e),g=await this['wrapDek'](f,d),h={'v':ENVELOPE_VERSION,'mode':'default','kdf':'hkdf-sha256','salt':bytesToBase64(e),'wrappedKey':bytesToBase64(g)};this['saveMetadata'](h),this['_metadata']=h,this['clearDekCache']();});}['getMcpAccess'](){const a=this['_metadata']??this['loadMetadata']();if(!a)return'allowed';if(a['mode']==='default')return'allowed';return a['mcpWrappedKey']?'allowed':'blocked';}async['setMcpAccess'](a,b){return this['_writeLock']['run'](async()=>{const c=await this['ensureInitialized']();if(c['mode']!=='password')throw new Error('MCP\x20access\x20control\x20is\x20only\x20available\x20when\x20a\x20password\x20is\x20set.');const d=await this['derivePasswordKek'](b,base64ToBytes(c['salt'])),e=await this['unwrapDek'](d,base64ToBytes(c['wrappedKey'])),f={...c};if(a)f['mcpWrappedKey']=bytesToBase64(await this['wrapDek'](this['deriveDefaultKek'](base64ToBytes(c['salt'])),e));else delete f['mcpWrappedKey'];this['saveMetadata'](f),this['_metadata']=f,this['clearDekCache']();});}},SecureAccountStorage=class{constructor(a,b){this['_backend']=a,this['_vault']=b??new CryptoVault();}['setSessionPassword'](a){this['_sessionPassword']=a,this['_vault']['clearDekCache']();}['getSessionPassword'](){return this['_sessionPassword'];}['isSecureEnvelope'](a){return a&&typeof a==='object'&&a['v']===ENVELOPE_VERSION&&typeof a['ct']==='string'&&typeof a['wrappedKey']==='string'&&(a['kdf']==='hkdf-sha256'||a['kdf']==='pbkdf2-sha256');}async['get'](){const a=await this['_backend']['get']();if(!a)return void 0x0;let b;try{b=JSON['parse'](a);}catch{return a;}if(this['isSecureEnvelope'](b))return this['_vault']['decrypt'](b,this['_sessionPassword']);return a;}async['put'](a){const b=await this['_vault']['encrypt'](a,this['_sessionPassword']);await this['_backend']['put'](JSON['stringify'](b));}async['clear'](){await this['_backend']['clear']();}['getMode'](){return this['_vault']['getMode']();}async['setPassword'](a){await this['_vault']['setPassword'](a),this['_sessionPassword']=a;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}async['changePassword'](a,b){await this['_vault']['changePassword'](a,b),this['_sessionPassword']=b;if(await this['_backend']['get']()){const c=await this['get']();if(c!==void 0x0)await this['put'](c);}}async['removePassword'](a){await this['_vault']['removePassword'](a),this['_sessionPassword']=void 0x0;if(await this['_backend']['get']()){const b=await this['get']();if(b!==void 0x0)await this['put'](b);}}['getMcpAccess'](){return this['_vault']['getMcpAccess']();}async['setMcpAccess'](a,b){await this['_vault']['setMcpAccess'](a,b);}};export{CryptoVault,SecureAccountStorage};
@@ -1,2 +1,2 @@
1
- import { Cv as TokenInfo, Sv as TokenDataFilter, wv as TokenTypeInfo } from "../../index-C-WBdTM5.mjs";
1
+ import { Dv as TokenDataFilter, Ov as TokenInfo, kv as TokenTypeInfo } from "../../index-KMDfU9AV.mjs";
2
2
  export { TokenDataFilter, TokenInfo, TokenTypeInfo };
@@ -1 +1 @@
1
- import{t as a85a}from'../../client-CcSxA1Tm.mjs';import{n as a85b}from'../../network-CeDd07Hg.mjs';import'../../common-D8TcHVCJ.mjs';import{o as a85c}from'../../exception-CkI_xPvd.mjs';import{u as a85d}from'../../storage-UnD4qWaK.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';var TokenInfo=class TokenInfo{constructor(){this['cacheKey']=['token'];}static{this['_instanceLock']=new a85d();}static['Instance'](){if(TokenInfo['_instance'])return TokenInfo['_instance'];if(!TokenInfo['_instance'])TokenInfo['_instance']=new TokenInfo();return TokenInfo['_instance'];}async['fetch_imp'](a,b,c){const d=await new a85a({'url':a85b(a),'network':a})['getCoinMetadata']({'coinType':b});if(d)return{'alias':c,'type':b,...d};}async['fetch'](a,b,c){a=a??'0x2::wow::WOW';const d=await Config['Instance']()['network_get'](c),e=await Cache['read']([...this['cacheKey'],d],async g=>{return{'expire':'INFINITE','data':[]};});let f=e?.['data']?.['find'](g=>g['type']===a);if(!f){f=await this['fetch_imp'](d,a,b);if(!f){a85c('token\x20not\x20found','token\x20type:\x20'+a);return;}const g=[...e?.['data']||[],f];await Cache['read']([...this['cacheKey'],d],async h=>({'expire':'INFINITE','data':g}),!![]);}else{if(b&&f['alias']!==b){f['alias']=b;const h=e?.['data']?.['map'](i=>i['type']===a?f:i)||[];await Cache['read']([...this['cacheKey'],d],async i=>({'expire':'INFINITE','data':h}),!![]);}}return f;}async['list'](a,b){const c=await Config['Instance']()['network_get'](b);let d=await Cache['read']([...this['cacheKey'],c],async h=>{return{'expire':'INFINITE','data':[]};}),e=d?.['data']||[];const f=a?.['type']??'0x2::wow::WOW',g=a?.['type']?a?.['alias_or_name']:void 0x0;if(!e['find'](h=>h['type']===f)){const h=await this['fetch_imp'](c,f,g);if(h){const i=[...e,h];await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i}),!![]),d=await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i})),e=d?.['data']||[];}}if(a){e=e['filter'](j=>{let k=!![];if(a['symbol']&&k)k=j['symbol']===a['symbol'];if(a['type']&&k)k=j['type']===f;return k;});if(a['alias_or_name']){const j=a['alias_or_name']['toLowerCase']();e=e['map'](k=>{let l=0x0;const m=k['alias']?.['toLowerCase']()||'',n=k['name']?.['toLowerCase']()||'';if(m===j||n===j)l=0x3;else{if(m['startsWith'](j)||n['startsWith'](j))l=0x2;else{if(m['includes'](j)||n['includes'](j))l=0x1;}}return{...k,'_score':l};}),e=e['filter'](k=>k['_score']>0x0)['sort']((k,l)=>{const m=l['_score']-k['_score'];if(m!==0x0)return m;return(k['alias']?.['length']||0x0)+(k['name']?.['length']||0x0)-((l['alias']?.['length']||0x0)+(l['name']?.['length']||0x0));}),e=e['map'](k=>{const {_score:l,...m}=k;return m;});}}return e;}};export{TokenInfo};
1
+ import{t as a85a}from'../../client-BQ4n-Q-u.mjs';import{n as a85b}from'../../network-CeDd07Hg.mjs';import'../../common-Dez7yfwb.mjs';import{o as a85c}from'../../exception-CkI_xPvd.mjs';import{u as a85d}from'../../storage-UnD4qWaK.mjs';import{Cache}from'./cache.mjs';import{Config}from'./config.mjs';var TokenInfo=class TokenInfo{constructor(){this['cacheKey']=['token'];}static{this['_instanceLock']=new a85d();}static['Instance'](){if(TokenInfo['_instance'])return TokenInfo['_instance'];if(!TokenInfo['_instance'])TokenInfo['_instance']=new TokenInfo();return TokenInfo['_instance'];}async['fetch_imp'](a,b,c){const d=await new a85a({'url':a85b(a),'network':a})['getCoinMetadata']({'coinType':b});if(d)return{'alias':c,'type':b,...d};}async['fetch'](a,b,c){a=a??'0x2::wow::WOW';const d=await Config['Instance']()['network_get'](c),e=await Cache['read']([...this['cacheKey'],d],async g=>{return{'expire':'INFINITE','data':[]};});let f=e?.['data']?.['find'](g=>g['type']===a);if(!f){f=await this['fetch_imp'](d,a,b);if(!f){a85c('token\x20not\x20found','token\x20type:\x20'+a);return;}const g=[...e?.['data']||[],f];await Cache['read']([...this['cacheKey'],d],async h=>({'expire':'INFINITE','data':g}),!![]);}else{if(b&&f['alias']!==b){f['alias']=b;const h=e?.['data']?.['map'](i=>i['type']===a?f:i)||[];await Cache['read']([...this['cacheKey'],d],async i=>({'expire':'INFINITE','data':h}),!![]);}}return f;}async['list'](a,b){const c=await Config['Instance']()['network_get'](b);let d=await Cache['read']([...this['cacheKey'],c],async h=>{return{'expire':'INFINITE','data':[]};}),e=d?.['data']||[];const f=a?.['type']??'0x2::wow::WOW',g=a?.['type']?a?.['alias_or_name']:void 0x0;if(!e['find'](h=>h['type']===f)){const h=await this['fetch_imp'](c,f,g);if(h){const i=[...e,h];await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i}),!![]),d=await Cache['read']([...this['cacheKey'],c],async j=>({'expire':'INFINITE','data':i})),e=d?.['data']||[];}}if(a){e=e['filter'](j=>{let k=!![];if(a['symbol']&&k)k=j['symbol']===a['symbol'];if(a['type']&&k)k=j['type']===f;return k;});if(a['alias_or_name']){const j=a['alias_or_name']['toLowerCase']();e=e['map'](k=>{let l=0x0;const m=k['alias']?.['toLowerCase']()||'',n=k['name']?.['toLowerCase']()||'';if(m===j||n===j)l=0x3;else{if(m['startsWith'](j)||n['startsWith'](j))l=0x2;else{if(m['includes'](j)||n['includes'](j))l=0x1;}}return{...k,'_score':l};}),e=e['filter'](k=>k['_score']>0x0)['sort']((k,l)=>{const m=l['_score']-k['_score'];if(m!==0x0)return m;return(k['alias']?.['length']||0x0)+(k['name']?.['length']||0x0)-((l['alias']?.['length']||0x0)+(l['name']?.['length']||0x0));}),e=e['map'](k=>{const {_score:l,...m}=k;return m;});}}return e;}};export{TokenInfo};
@@ -1,2 +1,2 @@
1
- import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Br as MessageType, Ci as WTS_MAX_MESSAGE_COUNT, Di as WtsGenerationParams, Dn as BlacklistResponse, Ei as WtsFileResult, En as BlacklistRequest, Fn as blacklist, Fr as MessageFilter, Gn as pull_messages, Hn as mark_conversation_as_viewed, Hr as MessengerError, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Lr as MessageListResult, Mn as GuardlistResponse, Mr as Message, Nn as SettingsRequest, Nr as MessageContentType, On as FriendslistRequest, Pn as SettingsResponse, Pr as MessageDirection, Qn as watch_messages, Rn as friendslist, Rr as MessageStatus, Si as WTS_FILE_BYTES_LIMIT, Un as mark_messages_as_viewed, Ur as MessengerErrorCode, Vn as guardlist, Vr as MessengerConfig, Wn as proof_message, Wr as NORMAL_MESSAGE_BYTES_LIMIT, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, _r as DEFAULT_QUERY_LIMIT, er as MessengerManager, gr as DEFAULT_MESSENGER_CONFIG, jn as GuardlistRequest, kn as FriendslistResponse, kr as MAX_QUERY_LIMIT, mr as ConversationsFilter, ni as SendMessageResult, pr as ConversationInfo, qn as send_message, tr as Messenger, vr as DecryptedMessage, zn as generate_wts } from "../../index-C-WBdTM5.mjs";
1
+ import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Br as MessageType, Ci as WTS_MAX_MESSAGE_COUNT, Di as WtsGenerationParams, Dn as BlacklistResponse, Ei as WtsFileResult, En as BlacklistRequest, Fn as blacklist, Fr as MessageFilter, Gn as pull_messages, Hn as mark_conversation_as_viewed, Hr as MessengerError, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Lr as MessageListResult, Mn as GuardlistResponse, Mr as Message, Nn as SettingsRequest, Nr as MessageContentType, On as FriendslistRequest, Pn as SettingsResponse, Pr as MessageDirection, Qn as watch_messages, Rn as friendslist, Rr as MessageStatus, Si as WTS_FILE_BYTES_LIMIT, Un as mark_messages_as_viewed, Ur as MessengerErrorCode, Vn as guardlist, Vr as MessengerConfig, Wn as proof_message, Wr as NORMAL_MESSAGE_BYTES_LIMIT, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, _r as DEFAULT_QUERY_LIMIT, er as MessengerManager, gr as DEFAULT_MESSENGER_CONFIG, jn as GuardlistRequest, kn as FriendslistResponse, kr as MAX_QUERY_LIMIT, mr as ConversationsFilter, ni as SendMessageResult, pr as ConversationInfo, qn as send_message, tr as Messenger, vr as DecryptedMessage, zn as generate_wts } from "../../index-KMDfU9AV.mjs";
2
2
  export { BlacklistRequest, BlacklistResponse, type ConversationInfo, type ConversationsFilter, DEFAULT_MESSENGER_CONFIG, DEFAULT_QUERY_LIMIT, type DecryptedMessage, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, MAX_QUERY_LIMIT, type Message, type MessageContentType, MessageDirection, type MessageFilter, type MessageListResult, MessageStatus, MessageType, Messenger, type MessengerConfig, MessengerError, MessengerErrorCode, MessengerManager, NORMAL_MESSAGE_BYTES_LIMIT, type SendMessageResult, SettingsRequest, SettingsResponse, WTS_FILE_BYTES_LIMIT, WTS_MAX_MESSAGE_COUNT, type WtsFileResult, type WtsGenerationParams, blacklist, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, proof_message, pull_messages, send_file, send_message, settings, sign_wts, verify_wts, watch_conversations, watch_messages, wts2html };
@@ -1 +1 @@
1
- import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./types.mjs';import{t as a89a}from'../../messenger-CkRQcNzs.mjs';import{_ as a89b,a as a89c,b as a89d,c as a89e,d as a89f,f as a89g,g as a89h,h as a89i,i as a89j,l as a89k,m as a89l,n as a89m,o as a89n,p as a89o,r as a89p,s as a89q,t as a89r,u as a89s,v as a89t,y as a89u}from'../../messenger-api-B9NB9Byo.mjs';export{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,a89a as Messenger,MessengerError,MessengerErrorCode,a89d as MessengerManager,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,a89r as blacklist,a89m as extractZipFromPlaintext,a89p as extract_zip_messages,a89j as friendslist,a89c as generate_wts,a89n as getMessengerManager,a89q as guardlist,a89e as mark_conversation_as_viewed,a89k as mark_messages_as_viewed,a89s as proof_message,a89f as pull_messages,a89g as send_file,a89o as send_message,a89l as settings,a89i as sign_wts,a89h as verify_wts,a89b as watch_conversations,a89t as watch_messages,a89u as wts2html};
1
+ import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./types.mjs';import{t as a89a}from'../../messenger-Cihp09QB.mjs';import{_ as a89b,a as a89c,b as a89d,c as a89e,d as a89f,f as a89g,g as a89h,h as a89i,i as a89j,l as a89k,m as a89l,n as a89m,o as a89n,p as a89o,r as a89p,s as a89q,t as a89r,u as a89s,v as a89t,y as a89u}from'../../messenger-api-qb3twtEB.mjs';export{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,a89a as Messenger,MessengerError,MessengerErrorCode,a89d as MessengerManager,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,a89r as blacklist,a89m as extractZipFromPlaintext,a89p as extract_zip_messages,a89j as friendslist,a89c as generate_wts,a89n as getMessengerManager,a89q as guardlist,a89e as mark_conversation_as_viewed,a89k as mark_messages_as_viewed,a89s as proof_message,a89f as pull_messages,a89g as send_file,a89o as send_message,a89l as settings,a89i as sign_wts,a89h as verify_wts,a89b as watch_conversations,a89t as watch_messages,a89u as wts2html};
@@ -1,2 +1,2 @@
1
- import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Dn as BlacklistResponse, En as BlacklistRequest, Fn as blacklist, Gn as pull_messages, Hn as mark_conversation_as_viewed, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Mn as GuardlistResponse, Nn as SettingsRequest, On as FriendslistRequest, Pn as SettingsResponse, Qn as watch_messages, Rn as friendslist, Un as mark_messages_as_viewed, Vn as guardlist, Wn as proof_message, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, jn as GuardlistRequest, kn as FriendslistResponse, qn as send_message, zn as generate_wts } from "../../index-C-WBdTM5.mjs";
1
+ import { $n as wts2html, An as GuardParam, Bn as getMessengerManager, Dn as BlacklistResponse, En as BlacklistRequest, Fn as blacklist, Gn as pull_messages, Hn as mark_conversation_as_viewed, In as extractZipFromPlaintext, Jn as settings, Kn as send_file, Ln as extract_zip_messages, Mn as GuardlistResponse, Nn as SettingsRequest, On as FriendslistRequest, Pn as SettingsResponse, Qn as watch_messages, Rn as friendslist, Un as mark_messages_as_viewed, Vn as guardlist, Wn as proof_message, Xn as verify_wts, Yn as sign_wts, Zn as watch_conversations, jn as GuardlistRequest, kn as FriendslistResponse, qn as send_message, zn as generate_wts } from "../../index-KMDfU9AV.mjs";
2
2
  export { BlacklistRequest, BlacklistResponse, FriendslistRequest, FriendslistResponse, GuardParam, GuardlistRequest, GuardlistResponse, SettingsRequest, SettingsResponse, blacklist, extractZipFromPlaintext, extract_zip_messages, friendslist, generate_wts, getMessengerManager, guardlist, mark_conversation_as_viewed, mark_messages_as_viewed, proof_message, pull_messages, send_file, send_message, settings, sign_wts, verify_wts, watch_conversations, watch_messages, wts2html };
@@ -1 +1 @@
1
- import{_ as a90a,a as a90b,c as a90c,d as a90d,f as a90e,g as a90f,h as a90g,i as a90h,l as a90i,m as a90j,n as a90k,o as a90l,p as a90m,r as a90n,s as a90o,t as a90p,u as a90q,v as a90r,y as a90s}from'../../messenger-api-B9NB9Byo.mjs';export{a90p as blacklist,a90k as extractZipFromPlaintext,a90n as extract_zip_messages,a90h as friendslist,a90b as generate_wts,a90l as getMessengerManager,a90o as guardlist,a90c as mark_conversation_as_viewed,a90i as mark_messages_as_viewed,a90q as proof_message,a90d as pull_messages,a90e as send_file,a90m as send_message,a90j as settings,a90g as sign_wts,a90f as verify_wts,a90a as watch_conversations,a90r as watch_messages,a90s as wts2html};
1
+ import{_ as a90a,a as a90b,c as a90c,d as a90d,f as a90e,g as a90f,h as a90g,i as a90h,l as a90i,m as a90j,n as a90k,o as a90l,p as a90m,r as a90n,s as a90o,t as a90p,u as a90q,v as a90r,y as a90s}from'../../messenger-api-qb3twtEB.mjs';export{a90p as blacklist,a90k as extractZipFromPlaintext,a90n as extract_zip_messages,a90h as friendslist,a90b as generate_wts,a90l as getMessengerManager,a90o as guardlist,a90c as mark_conversation_as_viewed,a90i as mark_messages_as_viewed,a90q as proof_message,a90d as pull_messages,a90e as send_file,a90m as send_message,a90j as settings,a90g as sign_wts,a90f as verify_wts,a90a as watch_conversations,a90r as watch_messages,a90s as wts2html};
@@ -1,2 +1,2 @@
1
- import { tr as Messenger } from "../../index-C-WBdTM5.mjs";
1
+ import { tr as Messenger } from "../../index-KMDfU9AV.mjs";
2
2
  export { Messenger };
@@ -1 +1 @@
1
- import{t as a91a}from'../../messenger-CkRQcNzs.mjs';export{a91a as Messenger};
1
+ import{t as a91a}from'../../messenger-Cihp09QB.mjs';export{a91a as Messenger};
@@ -1,4 +1,4 @@
1
- import { Mr as Message, Vr as MessengerConfig, si as SessionState } from "../../index-C-WBdTM5.mjs";
1
+ import { Mr as Message, Vr as MessengerConfig, si as SessionState } from "../../index-KMDfU9AV.mjs";
2
2
  import Database from "libsql";
3
3
  //#region src/w/messenger/storage.d.ts
4
4
  type KeyPairType = {