@wowok/wowok 2.3.18 → 2.4.1

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 (96) hide show
  1. package/dist/esm/{arb-CCG4h3Tt.mjs → arb-ChIL3dWd.mjs} +1 -1
  2. package/dist/esm/{base-CDujg0CW.mjs → base-DhkayBiO.mjs} +1 -1
  3. package/dist/esm/bcs/index.d.mts +1 -1
  4. package/dist/esm/{call-CjiutK7n.mjs → call-lO8QH7YC.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-BP4jO5nJ.mjs +1 -0
  8. package/dist/esm/cryptography/index.d.mts +1 -1
  9. package/dist/esm/{evm-account-D-9b2P5o.d.mts → evm-account-31ggIkIl.d.mts} +134 -18
  10. package/dist/esm/graphql/index.d.mts +1 -1
  11. package/dist/esm/graphql/index.mjs +1 -1
  12. package/dist/esm/{graphql-DS8RUdlp.mjs → graphql-0dFLYX1K.mjs} +1 -1
  13. package/dist/esm/grpc/index.d.mts +1 -1
  14. package/dist/esm/grpc/index.mjs +1 -1
  15. package/dist/esm/{grpc-BcOvQ6pC.mjs → grpc-CPgp9L6j.mjs} +1 -1
  16. package/dist/esm/{index-fGNIZdBz.d.mts → index-B7oBIj4u.d.mts} +88 -15
  17. package/dist/esm/{index-Cj4KHtbw.d.mts → index-B8BZSNzI.d.mts} +6 -6
  18. package/dist/esm/index.d.mts +5 -5
  19. package/dist/esm/index.mjs +1 -1
  20. package/dist/esm/jsonRpc/index.d.mts +1 -1
  21. package/dist/esm/jsonRpc/index.mjs +1 -1
  22. package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
  23. package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
  24. package/dist/esm/keypairs/passkey/index.d.mts +1 -1
  25. package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
  26. package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
  27. package/dist/esm/{messenger-Bj7TtF3B.mjs → messenger-D-NLdN4r.mjs} +1 -1
  28. package/dist/esm/messenger-api-VG12yp6j.mjs +1 -0
  29. package/dist/esm/multisig/index.d.mts +1 -1
  30. package/dist/esm/{object-B-eGy8U5.mjs → object-x_n5gCO8.mjs} +1 -1
  31. package/dist/esm/{proof-Ck9Bu-Jx.mjs → proof-c2tvqIhf.mjs} +1 -1
  32. package/dist/esm/{query-DIsbjIQ7.mjs → query-DkLZISd0.mjs} +1 -1
  33. package/dist/esm/{received-CrZF7nTR.mjs → received-DjZZ8qAw.mjs} +1 -1
  34. package/dist/esm/{secure-storage-D4X3f-9t.d.mts → secure-storage-DFF-RQn-.d.mts} +30 -0
  35. package/dist/esm/{service-Fh_GX6lR.mjs → service-CXOx4nET.mjs} +1 -1
  36. package/dist/esm/transactions/index.d.mts +1 -1
  37. package/dist/esm/{util-D-TSMMSN.mjs → util-CqWSdL_H.mjs} +1 -1
  38. package/dist/esm/verify/index.d.mts +1 -1
  39. package/dist/esm/w/call/allocation.d.mts +1 -1
  40. package/dist/esm/w/call/allocation.mjs +1 -1
  41. package/dist/esm/w/call/arbitration.d.mts +1 -1
  42. package/dist/esm/w/call/arbitration.mjs +1 -1
  43. package/dist/esm/w/call/base.d.mts +1 -1
  44. package/dist/esm/w/call/base.mjs +1 -1
  45. package/dist/esm/w/call/demand.d.mts +1 -1
  46. package/dist/esm/w/call/demand.mjs +1 -1
  47. package/dist/esm/w/call/guard.d.mts +2 -2
  48. package/dist/esm/w/call/guard.mjs +1 -1
  49. package/dist/esm/w/call/index.d.mts +2 -2
  50. package/dist/esm/w/call/index.mjs +1 -1
  51. package/dist/esm/w/call/machine.d.mts +1 -1
  52. package/dist/esm/w/call/machine.mjs +1 -1
  53. package/dist/esm/w/call/passport.d.mts +1 -1
  54. package/dist/esm/w/call/passport.mjs +1 -1
  55. package/dist/esm/w/call/payment.d.mts +1 -1
  56. package/dist/esm/w/call/payment.mjs +1 -1
  57. package/dist/esm/w/call/permission.d.mts +1 -1
  58. package/dist/esm/w/call/permission.mjs +1 -1
  59. package/dist/esm/w/call/progress.d.mts +1 -1
  60. package/dist/esm/w/call/progress.mjs +1 -1
  61. package/dist/esm/w/call/repository.d.mts +1 -1
  62. package/dist/esm/w/call/repository.mjs +1 -1
  63. package/dist/esm/w/call/reward.d.mts +1 -1
  64. package/dist/esm/w/call/reward.mjs +1 -1
  65. package/dist/esm/w/call/service.d.mts +1 -1
  66. package/dist/esm/w/call/service.mjs +1 -1
  67. package/dist/esm/w/call/treasury.d.mts +1 -1
  68. package/dist/esm/w/call/treasury.mjs +1 -1
  69. package/dist/esm/w/common.d.mts +1 -1
  70. package/dist/esm/w/index.d.mts +4 -4
  71. package/dist/esm/w/index.mjs +1 -1
  72. package/dist/esm/w/local/account.d.mts +1 -1
  73. package/dist/esm/w/local/account.mjs +1 -1
  74. package/dist/esm/w/local/evm-account.d.mts +2 -2
  75. package/dist/esm/w/local/evm-account.mjs +1 -1
  76. package/dist/esm/w/local/index.d.mts +4 -4
  77. package/dist/esm/w/local/secure-storage.d.mts +1 -1
  78. package/dist/esm/w/local/secure-storage.mjs +1 -1
  79. package/dist/esm/w/local/token.d.mts +1 -1
  80. package/dist/esm/w/local/token.mjs +1 -1
  81. package/dist/esm/w/messenger/index.d.mts +1 -1
  82. package/dist/esm/w/messenger/index.mjs +1 -1
  83. package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
  84. package/dist/esm/w/messenger/messenger-api.mjs +1 -1
  85. package/dist/esm/w/messenger/messenger.d.mts +1 -1
  86. package/dist/esm/w/messenger/messenger.mjs +1 -1
  87. package/dist/esm/w/messenger/storage.d.mts +1 -1
  88. package/dist/esm/w/messenger/types.d.mts +1 -1
  89. package/dist/esm/w/query/index.d.mts +1 -1
  90. package/dist/esm/w/query/index.mjs +1 -1
  91. package/dist/esm/w/query/object.d.mts +1 -1
  92. package/dist/esm/w/query/object.mjs +1 -1
  93. package/dist/esm/{w-D7BssNyx.mjs → w-BB6WEEOB.mjs} +1 -1
  94. package/package.json +1 -1
  95. package/dist/esm/client-rikC538P.mjs +0 -1
  96. package/dist/esm/messenger-api-DhHcvqz2.mjs +0 -1
@@ -1 +0,0 @@
1
- import{a as a7a,c as a7b,i as a7c,l as a7d,o as a7e,s as a7f,u as a7g}from'./wow-types-DcqbnAaK.mjs';import{c as a7h,o as a7i,u as a7j}from'./bcs-BrmSFFhn.mjs';import{E as a7k,S as a7l,y as a7m}from'./utils-npJYSbqk.mjs';import{g as a7n,m as a7o,o as a7p,p as a7q,s as a7r,t as a7s}from'./Transaction-CzqJDezj.mjs';import{fromBase58,fromBase64,toBase64,toHex}from'@mysten/bcs';import{chunk,toBase64 as a7t}from'@mysten/utils';var ClientCache=class ClientCache{#prefix;#cache;constructor({prefix:a,cache:b}={}){this.#prefix=a??[],this.#cache=b??new Map();}['read'](a,b){const c=[this.#prefix,...a]['join'](':');if(this.#cache['has'](c))return this.#cache['get'](c);const d=b();this.#cache['set'](c,d);if(typeof d==='object'&&d!==null&&'then'in d)return Promise['resolve'](d)['then'](e=>{return this.#cache['set'](c,e),e;})['catch'](e=>{this.#cache['delete'](c);throw e;});return d;}['readSync'](a,b){const c=[this.#prefix,...a]['join'](':');if(this.#cache['has'](c))return this.#cache['get'](c);const d=b();return this.#cache['set'](c,d),d;}['clear'](a){const b=[...this.#prefix,...a??[]]['join'](':');if(!b){this.#cache['clear']();return;}for(const c of this.#cache['keys']())if(c['startsWith'](b))this.#cache['delete'](c);}['scope'](a){return new ClientCache({'prefix':[...this.#prefix,...Array['isArray'](a)?a:[a]],'cache':this.#cache});}},BaseClient=class{constructor({network:a,base:b,cache:cache=b?.['cache']??new ClientCache()}){this['network']=a,this['base']=b??this,this['cache']=cache;}['$extend'](...a){const b=Object['fromEntries'](a['map'](d=>{return[d['name'],d['register'](this)];})),c=new Map();return new Proxy(this,{'get'(d,e,f){if(typeof e==='string'&&e in b)return b[e];const g=Reflect['get'](d,e,f);if(typeof g==='function'){if(e==='$extend')return g['bind'](f);if(!c['has'](e))c['set'](e,g['bind'](d));return c['get'](e);}return g;}});}},CoreClient=class extends BaseClient{constructor(a){super(a),this['core']=this;}async['getObject'](a){const {objectId:b}=a,{objects:[c]}=await this['getObjects']({'objectIds':[b],'signal':a['signal'],'include':a['include']});if(c instanceof Error)throw c;return{'object':c};}async['getDynamicField'](a){const b=a7j['parseFromStr'](a['name']['type']),c=a7k(a['parentId'],b,a['name']['bcs']),{objects:[d]}=await this['getObjects']({'objectIds':[c],'signal':a['signal'],'include':{'previousTransaction':!![],'content':!![]}});if(d instanceof Error)throw d;const e=a7g(d['type']),f=await d['content'],g=e['typeParams'][0x0],h=typeof g!=='string'&&g['module']==='dynamic_object_field'&&g['name']==='Wrapper',i=f['slice'](0x20+a['name']['bcs']['length']),j=typeof e['typeParams'][0x1]==='string'?e['typeParams'][0x1]:a7f(e['typeParams'][0x1]);return{'dynamicField':{'$kind':h?'DynamicObject':'DynamicField','fieldId':d['objectId'],'digest':d['digest'],'version':d['version'],'type':d['type'],'previousTransaction':d['previousTransaction'],'name':{'type':typeof g==='string'?g:a7f(g),'bcs':a['name']['bcs']},'value':{'type':j,'bcs':i},'childId':h?a7i['Address']['parse'](i):void 0x0}};}async['getDynamicObjectField'](a){const b='0x2::dynamic_object_field::Wrapper<'+a['name']['type']+'>',{dynamicField:c}=await this['getDynamicField']({'parentId':a['parentId'],'name':{'type':b,'bcs':a['name']['bcs']},'signal':a['signal']}),{object:d}=await this['getObject']({'objectId':c['childId'],'signal':a['signal'],'include':a['include']});return{'object':d};}async['waitForTransaction'](a){const {signal:b,timeout:timeout=0x3c*0x3e8,pollSchedule:c,include:d}=a,e='result'in a&&a['result']?(a['result']['Transaction']??a['result']['FailedTransaction'])['digest']:a['digest'],f=b?AbortSignal['any']([AbortSignal['timeout'](timeout),b]):AbortSignal['timeout'](timeout),g=new Promise((l,m)=>{f['addEventListener']('abort',()=>m(f['reason']));});g['catch'](()=>{});const h=c??[0x0,0x12c,0x258,0x5dc,0xdac],i=Date['now']();let j=0x0;const k=h['length']>0x0?h[h['length']-0x1]-(h[h['length']-0x2]??0x0):0x7d0;while(!![]){if(j<h['length']){const l=i+h[j]-Date['now']();j++;if(l>0x0)await Promise['race']([new Promise(m=>setTimeout(m,l)),g]);}else await Promise['race']([new Promise(m=>setTimeout(m,k)),g]);f['throwIfAborted']();try{return await this['getTransaction']({'digest':e,'include':d,'signal':f});}catch{}}}async['signAndExecuteTransaction']({transaction:a,signer:b,additionalSignatures:additionalSignatures=[],...c}){let d;if(a instanceof Uint8Array)d=a;else a['setSenderIfNotSet'](b['toWowAddress']()),d=await a['build']({'client':this});const {signature:e}=await b['signTransaction'](d);return this['executeTransaction']({'transaction':d,'signatures':[e,...additionalSignatures],...c});}};const ordinalRules=new Intl['PluralRules']('en-US',{'type':'ordinal'}),ordinalSuffixes=new Map([['one','st'],['two','nd'],['few','rd'],['other','th']]);function formatOrdinal(a){return''+a+ordinalSuffixes['get'](ordinalRules['select'](a));}const WOWOK_ADDRESS='0x0000000000000000000000000000000000000000000000000000000000000002',WowokMoveErrors=[{'module':'service','code':0x1,'description':'Maximum\x20sale\x20count\x20exceeded'},{'module':'service','code':0x2,'description':'Maximum\x20repository\x20count\x20exceeded'},{'module':'service','code':0x3,'description':'Maximum\x20arbitration\x20count\x20exceeded'},{'module':'service','code':0x4,'description':'Maximum\x20WIP\x20length\x20exceeded'},{'module':'service','code':0x5,'description':'Maximum\x20WIP\x20hash\x20length\x20exceeded'},{'module':'service','code':0x6,'description':'Service\x20already\x20published'},{'module':'service','code':0x7,'description':'Service\x20not\x20published'},{'module':'service','code':0x8,'description':'Invalid\x20off-on\x20discount\x20rates'},{'module':'service','code':0x9,'description':'Maximum\x20discount\x20count\x20per\x20operation\x20exceeded'},{'module':'service','code':0xa,'description':'Discount\x20not\x20transferable'},{'module':'service','code':0xb,'description':'Discount\x20receiver\x20empty'},{'module':'service','code':0xc,'description':'Discount\x20count\x20empty'},{'module':'service','code':0xd,'description':'Maximum\x20discount\x20receiver\x20per\x20operation\x20exceeded'},{'module':'service','code':0xe,'description':'Maximum\x20total\x20discount\x20count\x20exceeded'},{'module':'service','code':0xf,'description':'Service\x20discount\x20does\x20not\x20match'},{'module':'service','code':0x10,'description':'Stock\x20not\x20enough'},{'module':'service','code':0x11,'description':'Invalid\x20quote'},{'module':'service','code':0x12,'description':'Buyer\x20guard\x20passport\x20required'},{'module':'service','code':0x13,'description':'Service\x20is\x20paused'},{'module':'service','code':0x14,'description':'Coin\x20not\x20enough'},{'module':'service','code':0x15,'description':'Maximum\x20required\x20info\x20size\x20exceeded'},{'module':'service','code':0x16,'description':'Machine\x20does\x20not\x20match'},{'module':'service','code':0x17,'description':'No\x20allocator\x20configured'},{'module':'service','code':0x18,'description':'Critical\x20setting\x20lock\x20duration\x20not\x20exceeded'},{'module':'service','code':0x19,'description':'Arbitration\x20not\x20set\x20with\x20compensation\x20fund'},{'module':'service','code':0x1a,'description':'Order\x20service\x20does\x20not\x20match'},{'module':'service','code':0x1b,'description':'Compensation\x20does\x20not\x20match'},{'module':'service','code':0x1c,'description':'Maximum\x20reward\x20count\x20exceeded'},{'module':'service','code':0x1d,'description':'Invalid\x20discount\x20type'},{'module':'service','code':0x1e,'description':'Invalid\x20timestamp\x20ms\x20end'},{'module':'service','code':0x1f,'description':'WIP\x20hash\x20not\x20match'},{'module':'service','code':0x20,'description':'Sale\x20item\x20not\x20found'},{'module':'permission','code':0x1,'description':'Not\x20the\x20builder'},{'module':'permission','code':0x2,'description':'Not\x20admin'},{'module':'permission','code':0x3,'description':'Address\x20count\x20in\x20permission\x20exceeded\x20limit'},{'module':'permission','code':0x4,'description':'Permission\x20count\x20exceeded\x20limit'},{'module':'permission','code':0x5,'description':'Permission\x20denied'},{'module':'permission','code':0x6,'description':'Admin\x20count\x20exceeded\x20limit'},{'module':'permission','code':0x7,'description':'Permission\x20index\x20not\x20found'},{'module':'permission','code':0x8,'description':'Permission\x20does\x20not\x20match'},{'module':'permission','code':0x9,'description':'Not\x20user\x20address'},{'module':'passport','code':0x1,'description':'Guard\x20count\x20exceeded\x20limit'},{'module':'passport','code':0x2,'description':'Relies\x20guard\x20not\x20added'},{'module':'passport','code':0x3,'description':'Submission\x20size\x20exceeded'},{'module':'passport','code':0x4,'description':'Has\x20verified'},{'module':'passport','code':0x5,'description':'Not\x20verified'},{'module':'passport','code':0x6,'description':'Not\x20impact\x20guard'},{'module':'passport','code':0x7,'description':'Verify\x20failed'},{'module':'passport','code':0x8,'description':'Transaction\x20not\x20match'},{'module':'passport','code':0x9,'description':'Impact\x20guard\x20not\x20found'},{'module':'passport','code':0xa,'description':'Submission\x20not\x20found'},{'module':'passport','code':0xb,'description':'Digest\x20not\x20match'},{'module':'machine','code':0x1,'description':'Maximum\x20consensus\x20repositories\x20exceeded'},{'module':'machine','code':0x2,'description':'Machine\x20not\x20published'},{'module':'machine','code':0x3,'description':'Machine\x20already\x20published'},{'module':'machine','code':0x4,'description':'Maximum\x20forward\x20order\x20count\x20exceeded'},{'module':'machine','code':0x5,'description':'Maximum\x20node\x20count\x20exceeded'},{'module':'machine','code':0x6,'description':'Duplicate\x20forward\x20name'},{'module':'machine','code':0x7,'description':'Duplicate\x20node\x20previous'},{'module':'machine','code':0x8,'description':'Old\x20node\x20name\x20does\x20not\x20exist'},{'module':'machine','code':0x9,'description':'New\x20node\x20name\x20already\x20exists'},{'module':'machine','code':0xa,'description':'Node\x20not\x20found'},{'module':'machine','code':0xb,'description':'Machine\x20paused'},{'module':'machine','code':0xc,'description':'Retained\x20submission\x20error'},{'module':'machine','code':0xd,'description':'Info\x20not\x20found'},{'module':'machine','code':0xe,'description':'Permission\x20not\x20defined'},{'module':'machine','code':0xf,'description':'Maximum\x20node\x20pair\x20count\x20exceeded'},{'module':'machine','code':0x10,'description':'Maximum\x20forward\x20count\x20exceeded'},{'module':'progress','code':0x1,'description':'Maximum\x20context\x20repository\x20count\x20exceeded'},{'module':'progress','code':0x2,'description':'Maximum\x20named\x20operator\x20count\x20exceeded'},{'module':'progress','code':0x3,'description':'Maximum\x20named\x20operator\x20address\x20count\x20exceeded'},{'module':'progress','code':0x4,'description':'Machine\x20does\x20not\x20match'},{'module':'progress','code':0x5,'description':'Task\x20already\x20set'},{'module':'progress','code':0x6,'description':'Not\x20the\x20holder'},{'module':'progress','code':0x7,'description':'Forward\x20already\x20accomplished'},{'module':'progress','code':0x8,'description':'Permission\x20not\x20defined\x20when\x20hold'},{'module':'progress','code':0x9,'description':'Need\x20passport'},{'module':'progress','code':0xa,'description':'Order\x20does\x20not\x20match'},{'module':'order','code':0x1,'description':'Not\x20the\x20owner'},{'module':'order','code':0x2,'description':'Maximum\x20agent\x20count\x20exceeded'},{'module':'order','code':0x3,'description':'Progress\x20not\x20specified'},{'module':'order','code':0x5,'description':'Not\x20operation\x20permission'},{'module':'order','code':0x6,'description':'Maximum\x20dispute\x20count\x20exceeded'},{'module':'order','code':0x7,'description':'Order\x20already\x20claimed'},{'module':'order','code':0x8,'description':'Allocation\x20not\x20specified'},{'module':'order','code':0x9,'description':'Allocation\x20already\x20specified'},{'module':'order','code':0xa,'description':'Progress\x20already\x20specified'},{'module':'arbitration','code':0x1,'description':'Guard\x20identifier\x20not\x20number'},{'module':'arbitration','code':0x2,'description':'Voting\x20guard\x20used'},{'module':'arbitration','code':0x3,'description':'Arbitration\x20arb\x20not\x20match'},{'module':'arbitration','code':0x4,'description':'Arbitration\x20paused'},{'module':'arbitration','code':0x5,'description':'Fee\x20not\x20enough'},{'module':'arbitration','code':0x6,'description':'Need\x20passport'},{'module':'arbitration','code':0x7,'description':'Guard\x20identifier\x20number\x20invalid'},{'module':'arbitration','code':0x8,'description':'Voting\x20guard\x20not\x20found'},{'module':'arbitration','code':0x9,'description':'Maximum\x20voting\x20guard\x20count\x20exceeded'},{'module':'treasury','code':0x1,'description':'Maximum\x20external\x20deposit\x20guard\x20count\x20exceeded'},{'module':'treasury','code':0x2,'description':'Maximum\x20external\x20withdraw\x20guard\x20count\x20exceeded'},{'module':'treasury','code':0x3,'description':'External\x20deposit\x20guard\x20not\x20found'},{'module':'treasury','code':0x4,'description':'External\x20withdraw\x20guard\x20not\x20found'},{'module':'treasury','code':0x5,'description':'Identifier\x20not\x20number\x20type'},{'module':'treasury','code':0x6,'description':'Deposit\x20insufficient\x20amount'},{'module':'treasury','code':0x7,'description':'Withdraw\x20insufficient\x20amount'},{'module':'treasury','code':0x8,'description':'Store\x20from\x20ID\x20not\x20compatible'},{'module':'reward','code':0x1,'description':'Guard\x20locked\x20time\x20not\x20increasing'},{'module':'reward','code':0x2,'description':'Guard\x20expired'},{'module':'reward','code':0x3,'description':'Guard\x20count\x20exceeded'},{'module':'reward','code':0x4,'description':'Recipient\x20identifier\x20not\x20address'},{'module':'reward','code':0x6,'description':'Insufficient\x20balance'},{'module':'reward','code':0x7,'description':'Guard\x20not\x20found'},{'module':'reward','code':0x8,'description':'Record\x20count\x20exceeded'},{'module':'reward','code':0xa,'description':'Guard\x20locked\x20time'},{'module':'reward','code':0xb,'description':'Guard\x20locked\x20time\x20invalid'},{'module':'reward','code':0xc,'description':'Store\x20from\x20ID\x20not\x20compatible'},{'module':'demand','code':0x1,'description':'Maximum\x20reward\x20count\x20exceeded'},{'module':'demand','code':0x2,'description':'Maximum\x20guard\x20count\x20exceeded'},{'module':'demand','code':0x3,'description':'Need\x20passport'},{'module':'demand','code':0x4,'description':'Guard\x20not\x20found'},{'module':'repository','code':0x1,'description':'Policy\x20description\x20exceeded'},{'module':'repository','code':0x2,'description':'Policy\x20guard\x20count\x20exceeded'},{'module':'repository','code':0x3,'description':'Policy\x20count\x20exceeded'},{'module':'repository','code':0x4,'description':'Data\x20exceeded'},{'module':'repository','code':0x5,'description':'ID\x20count\x20exceeded'},{'module':'repository','code':0x6,'description':'Quantities\x20not\x20equal'},{'module':'repository','code':0x7,'description':'Policy\x20not\x20found'},{'module':'repository','code':0x8,'description':'Policy\x20ID\x20from\x20none'},{'module':'repository','code':0x9,'description':'Need\x20passport'},{'module':'repository','code':0xa,'description':'Data\x20type\x20not\x20match'},{'module':'repository','code':0xb,'description':'Guard\x20specified\x20ID\x20from\x20submission'},{'module':'repository','code':0xc,'description':'Not\x20impact\x20guard\x20in\x20passport'},{'module':'repository','code':0xd,'description':'Guard\x20specified\x20not\x20in\x20policy'},{'module':'repository','code':0xe,'description':'ID\x20vector\x20not\x20enough'},{'module':'repository','code':0xf,'description':'Data\x20vector\x20not\x20enough'},{'module':'repository','code':0x10,'description':'Invalid\x20ID\x20in\x20guard\x20table'},{'module':'repository','code':0x11,'description':'Invalid\x20data\x20in\x20guard\x20table'},{'module':'repository','code':0x12,'description':'Invalid\x20ID\x20from'},{'module':'repository','code':0x13,'description':'Maximum\x20reward\x20count\x20exceeded'},{'module':'repository','code':0x14,'description':'Guard\x20not\x20specified\x20ID\x20from\x20submission'},{'module':'repository','code':0x15,'description':'Need\x20dependent\x20guard'},{'module':'guard','code':0x1,'description':'Input\x20empty'},{'module':'guard','code':0x2,'description':'Input\x20size\x20exceeded'},{'module':'guard','code':0x3,'description':'Table\x20size\x20exceeded'},{'module':'guard','code':0x5,'description':'Depended\x20count\x20exceeded'},{'module':'guard','code':0x6,'description':'Not\x20depended\x20guard'},{'module':'guard','code':0x7,'description':'Guard\x20self'},{'module':'guard','code':0x8,'description':'Guard\x20IDs\x20parse\x20error'},{'module':'guard','code':0x9,'description':'Guard\x20IDs\x20type\x20error'},{'module':'guard','code':0xa,'description':'ID\x20value\x20count\x20not\x20equal'},{'module':'guard','code':0xb,'description':'Submission\x20ID\x20not\x20found'},{'module':'guard','code':0xc,'description':'Submission\x20value\x20type\x20error'},{'module':'allocation','code':0x1,'description':'Recipient\x20identifier\x20not\x20address'},{'module':'allocation','code':0x2,'description':'Allocator\x20count\x20exceeded'},{'module':'allocation','code':0x3,'description':'No\x20allocator'},{'module':'allocation','code':0x5,'description':'Multiple\x20surplus'},{'module':'allocation','code':0x7,'description':'Insufficient\x20balance'},{'module':'allocation','code':0x8,'description':'Allocators\x20empty'},{'module':'allocation','code':0x9,'description':'No\x20payment\x20info'},{'module':'allocation','code':0xa,'description':'Sharing\x20count\x20exceeded'},{'module':'allocation','code':0xb,'description':'Sharing\x20mode\x20invalid'},{'module':'allocation','code':0xc,'description':'Amount\x20below\x20threshold'},{'module':'allocation','code':0xd,'description':'Amount\x20exceeds\x20max'},{'module':'payment','code':0x1,'description':'Recipient\x20count\x20exceeded'},{'module':'payment','code':0x2,'description':'Vector\x20count\x20not\x20equal'},{'module':'payment','code':0x3,'description':'Payment\x20not\x20match'},{'module':'payment','code':0x4,'description':'Recipient\x20empty'},{'module':'resource','code':0x1,'description':'Tags\x20count\x20exceeded'},{'module':'contact','code':0x1,'description':'IM\x20count\x20exceeded'},{'module':'registrar','code':0x0,'description':'Not\x20system\x20address'},{'module':'registrar','code':0x1,'description':'Record\x20count\x20exceeded'},{'module':'registrar','code':0x2,'description':'Record\x20length\x20exceeded'},{'module':'registrar','code':0x3,'description':'Record\x20type\x20empty'},{'module':'arb','code':0x1,'description':'Maximum\x20proposition\x20count\x20exceeded'},{'module':'arb','code':0x2,'description':'Arb\x20order\x20not\x20match'},{'module':'arb','code':0x3,'description':'Status\x20not\x20match'},{'module':'arb','code':0x4,'description':'Voting\x20deadline\x20not\x20passed'},{'module':'arb','code':0x5,'description':'Proposition\x20not\x20found'},{'module':'arb','code':0x6,'description':'Maximum\x20voter\x20count\x20exceeded'},{'module':'arb','code':0x7,'description':'Voting\x20deadline\x20passed'},{'module':'arb','code':0x8,'description':'Withdraw\x20duration\x20time\x20not\x20passed'},{'module':'proof','code':0x1,'description':'Maximum\x20proof\x20size\x20exceeded'},{'module':'proof','code':0x2,'description':'Maximum\x20server\x20public\x20key\x20size\x20exceeded'},{'module':'proof','code':0x3,'description':'Maximum\x20server\x20signature\x20size\x20exceeded'},{'module':'common','code':0x1,'description':'Name\x20length\x20exceeded'},{'module':'common','code':0x2,'description':'Name\x20empty'},{'module':'common','code':0x4,'description':'Description\x20length\x20exceeded'},{'module':'common','code':0x6,'description':'Invalid\x20value\x20type'},{'module':'common','code':0x7,'description':'Address\x20type\x20not\x20match'},{'module':'common','code':0x8,'description':'Number\x20type\x20not\x20match'},{'module':'common','code':0x9,'description':'Invalid\x20data\x20value'},{'module':'common','code':0xa,'description':'Invalid\x20string\x20value'},{'module':'common','code':0xb,'description':'Long\x20name\x20length\x20exceeded'},{'module':'common','code':0xd,'description':'Invalid\x20service\x20object\x20type'}];function getWowokErrorDescription(a,b){const c=WowokMoveErrors['find'](d=>d['module']===a&&d['code']===b);return c?c['description']:null;}function formatMoveAbortMessage(a){const {command:b,location:c,abortCode:d,cleverError:e}=a,f=[];if(b!=null)f['push']('MoveAbort\x20in\x20'+formatOrdinal(b+0x1)+'\x20command');else f['push']('MoveAbort');if(e?.['constantName']){const g=e['value']?'\x27'+e['constantName']+'\x27:\x20'+e['value']:'\x27'+e['constantName']+'\x27';f['push'](g);}else{let h='abort\x20code:\x20'+d;if(c?.['package']&&c?.['module']){const i=c['package']['startsWith']('0x')?c['package']:'0x'+c['package'];if(i['toLowerCase']()===WOWOK_ADDRESS||i['toLowerCase']()==='0x2'){const j=parseInt(d,0xa);if(!isNaN(j)){const k=getWowokErrorDescription(c['module'],j);if(k)h='abort\x20code:\x20'+d+'\x20('+k+')';}}}f['push'](h);}if(c?.['package']&&c?.['module']){const l=['in\x20\x27'+[c['package']['startsWith']('0x')?c['package']:'0x'+c['package'],c['module'],c['functionName']]['filter'](Boolean)['join']('::')+'\x27'];if(e?.['lineNumber']!=null)l['push']('(line\x20'+e['lineNumber']+')');else{if(c['instruction']!=null)l['push']('(instruction\x20'+c['instruction']+')');}f['push'](l['join']('\x20'));}return f['join'](',\x20');}const MinimalEffectsWithError=a7i['struct']('MinimalEffectsWithError',{'status':a7h}),MinimalTransactionEffectsWithError=a7i['enum']('MinimalTransactionEffectsWithError',{'V1':MinimalEffectsWithError,'V2':MinimalEffectsWithError}),MinimalExecutionStatusNoError=a7i['enum']('MinimalExecutionStatusNoError',{'Success':null,'Failed':null}),MinimalEffectsNoError=a7i['struct']('MinimalEffectsNoError',{'status':MinimalExecutionStatusNoError}),MinimalTransactionEffectsNoError=a7i['enum']('MinimalTransactionEffectsNoError',{'V1':MinimalEffectsNoError,'V2':MinimalEffectsNoError});function formatErrorMessage(a,b){if(b!==null&&b!==void 0x0&&typeof b!=='boolean')return a+'('+JSON['stringify'](b,(c,d)=>typeof d==='bigint'?d['toString']():d)+')';return a;}function parseBcsExecutionError(a){const b=a['error'],c=a['command']!=null?Number(a['command']):void 0x0;switch(b['$kind']){case'MoveAbort':{const [d,e]=b['MoveAbort'],f={'package':d['module']['address'],'module':d['module']['name'],'function':d['function'],'functionName':d['functionName']??void 0x0,'instruction':d['instruction']};return{'$kind':'MoveAbort','message':formatMoveAbortMessage({'command':c,'location':f,'abortCode':String(e)}),'command':c,'MoveAbort':{'abortCode':String(e),'location':f}};}case'MoveObjectTooBig':return{'$kind':'SizeError','message':formatErrorMessage('MoveObjectTooBig',b['MoveObjectTooBig']),'command':c,'SizeError':{'name':'ObjectTooBig','size':Number(b['MoveObjectTooBig']['objectSize']),'maxSize':Number(b['MoveObjectTooBig']['maxObjectSize'])}};case'MovePackageTooBig':return{'$kind':'SizeError','message':formatErrorMessage('MovePackageTooBig',b['MovePackageTooBig']),'command':c,'SizeError':{'name':'PackageTooBig','size':Number(b['MovePackageTooBig']['objectSize']),'maxSize':Number(b['MovePackageTooBig']['maxObjectSize'])}};case'EffectsTooLarge':return{'$kind':'SizeError','message':formatErrorMessage('EffectsTooLarge',b['EffectsTooLarge']),'command':c,'SizeError':{'name':'EffectsTooLarge','size':Number(b['EffectsTooLarge']['currentSize']),'maxSize':Number(b['EffectsTooLarge']['maxSize'])}};case'WrittenObjectsTooLarge':return{'$kind':'SizeError','message':formatErrorMessage('WrittenObjectsTooLarge',b['WrittenObjectsTooLarge']),'command':c,'SizeError':{'name':'WrittenObjectsTooLarge','size':Number(b['WrittenObjectsTooLarge']['currentSize']),'maxSize':Number(b['WrittenObjectsTooLarge']['maxSize'])}};case'MoveVectorElemTooBig':return{'$kind':'SizeError','message':formatErrorMessage('MoveVectorElemTooBig',b['MoveVectorElemTooBig']),'command':c,'SizeError':{'name':'MoveVectorElemTooBig','size':Number(b['MoveVectorElemTooBig']['valueSize']),'maxSize':Number(b['MoveVectorElemTooBig']['maxScaledSize'])}};case'MoveRawValueTooBig':return{'$kind':'SizeError','message':formatErrorMessage('MoveRawValueTooBig',b['MoveRawValueTooBig']),'command':c,'SizeError':{'name':'MoveRawValueTooBig','size':Number(b['MoveRawValueTooBig']['valueSize']),'maxSize':Number(b['MoveRawValueTooBig']['maxScaledSize'])}};case'CommandArgumentError':return{'$kind':'CommandArgumentError','message':formatErrorMessage('CommandArgumentError',b['CommandArgumentError']),'command':c,'CommandArgumentError':{'argument':b['CommandArgumentError']['argIdx'],'name':b['CommandArgumentError']['kind']['$kind']}};case'TypeArgumentError':return{'$kind':'TypeArgumentError','message':formatErrorMessage('TypeArgumentError',b['TypeArgumentError']),'command':c,'TypeArgumentError':{'typeArgument':b['TypeArgumentError']['argumentIdx'],'name':b['TypeArgumentError']['kind']['$kind']}};case'PackageUpgradeError':{const g=b['PackageUpgradeError']['upgradeError'];return{'$kind':'PackageUpgradeError','message':formatErrorMessage('PackageUpgradeError',b['PackageUpgradeError']),'command':c,'PackageUpgradeError':{'name':g['$kind'],'packageId':g['$kind']==='UnableToFetchPackage'?g['UnableToFetchPackage']['packageId']:void 0x0,'digest':g['$kind']==='DigestDoesNotMatch'?a7t(g['DigestDoesNotMatch']['digest']):void 0x0}};}case'ExecutionCancelledDueToSharedObjectCongestion':return{'$kind':'CongestedObjects','message':formatErrorMessage('ExecutionCancelledDueToSharedObjectCongestion',b['ExecutionCancelledDueToSharedObjectCongestion']),'command':c,'CongestedObjects':{'name':'ExecutionCanceledDueToConsensusObjectCongestion','objects':b['ExecutionCancelledDueToSharedObjectCongestion']['congested_objects']}};case'AddressDeniedForCoin':return{'$kind':'CoinDenyListError','message':formatErrorMessage('AddressDeniedForCoin',b['AddressDeniedForCoin']),'command':c,'CoinDenyListError':{'name':'AddressDeniedForCoin','address':b['AddressDeniedForCoin']['address'],'coinType':b['AddressDeniedForCoin']['coinType']}};case'CoinTypeGlobalPause':return{'$kind':'CoinDenyListError','message':formatErrorMessage('CoinTypeGlobalPause',b['CoinTypeGlobalPause']),'command':c,'CoinDenyListError':{'name':'CoinTypeGlobalPause','coinType':b['CoinTypeGlobalPause']['coinType']}};case'CircularObjectOwnership':return{'$kind':'ObjectIdError','message':formatErrorMessage('CircularObjectOwnership',b['CircularObjectOwnership']),'command':c,'ObjectIdError':{'name':'CircularObjectOwnership','objectId':b['CircularObjectOwnership']['object']}};case'InvalidGasObject':return{'$kind':'ObjectIdError','message':'InvalidGasObject','command':c,'ObjectIdError':{'name':'InvalidGasObject','objectId':''}};case'InputObjectDeleted':return{'$kind':'ObjectIdError','message':'InputObjectDeleted','command':c,'ObjectIdError':{'name':'InputObjectDeleted','objectId':''}};case'InvalidTransferObject':return{'$kind':'ObjectIdError','message':'InvalidTransferObject','command':c,'ObjectIdError':{'name':'InvalidTransferObject','objectId':''}};case'NonExclusiveWriteInputObjectModified':return{'$kind':'Unknown','message':formatErrorMessage('NonExclusiveWriteInputObjectModified',b['NonExclusiveWriteInputObjectModified']),'command':c,'Unknown':null};case'InsufficientGas':case'InvariantViolation':case'FeatureNotYetSupported':case'InsufficientCoinBalance':case'CoinBalanceOverflow':case'PublishErrorNonZeroAddress':case'WowMoveVerificationError':case'MovePrimitiveRuntimeError':case'VMVerificationOrDeserializationError':case'VMInvariantViolation':case'FunctionNotFound':case'ArityMismatch':case'TypeArityMismatch':case'NonEntryFunctionInvoked':case'UnusedValueWithoutDrop':case'InvalidPublicFunctionReturnType':case'PublishUpgradeMissingDependency':case'PublishUpgradeDependencyDowngrade':case'CertificateDenied':case'WowMoveVerificationTimedout':case'SharedObjectOperationNotAllowed':case'ExecutionCancelledDueToRandomnessUnavailable':case'InvalidLinkage':case'InsufficientBalanceForWithdraw':return{'$kind':'Unknown','message':b['$kind'],'command':c,'Unknown':null};default:return{'$kind':'Unknown','message':'Unknown\x20error','command':c,'Unknown':null};}}function parseTransactionBcs(a,b=![]){return(b?a7n['fromKindBytes'](a):a7n['fromBytes'](a))['snapshot']();}function extractStatusFromEffectsBcs(a){let b=null;try{b=MinimalTransactionEffectsWithError['parse'](a);}catch{const d=MinimalTransactionEffectsNoError['parse'](a);if((d['V1']??d['V2'])['status']['$kind']==='Success')return{'success':!![],'error':null};return{'success':![],'error':{'$kind':'Unknown','message':'ExecutionFailed','Unknown':null}};}const c=(b['V1']??b['V2'])['status'];if(c['$kind']==='Success')return{'success':!![],'error':null};return{'success':![],'error':parseBcsExecutionError(c['Failure'])};}function parseTransactionEffectsBcs(a){const b=a7i['TransactionEffects']['parse'](a);switch(b['$kind']){case'V1':return parseTransactionEffectsV1({'bytes':a,'effects':b['V1']});case'V2':return parseTransactionEffectsV2({'bytes':a,'effects':b['V2']});default:throw new Error('Unknown\x20transaction\x20effects\x20version:\x20'+b['$kind']);}}function parseTransactionEffectsV1(a){throw new Error('V1\x20effects\x20are\x20not\x20supported\x20yet');}function parseTransactionEffectsV2({bytes:a,effects:b}){const c=b['changedObjects']['map'](([d,e])=>{return{'objectId':d,'inputState':e['inputState']['$kind']==='Exist'?'Exists':'DoesNotExist','inputVersion':e['inputState']['Exist']?.[0x0][0x0]??null,'inputDigest':e['inputState']['Exist']?.[0x0][0x1]??null,'inputOwner':e['inputState']['Exist']?.[0x1]??null,'outputState':e['outputState']['$kind']==='NotExist'?'DoesNotExist':e['outputState']['$kind'],'outputVersion':e['outputState']['$kind']==='PackageWrite'?e['outputState']['PackageWrite']?.[0x0]:e['outputState']['$kind']==='ObjectWrite'?b['lamportVersion']:null,'outputDigest':e['outputState']['$kind']==='PackageWrite'?e['outputState']['PackageWrite']?.[0x1]:e['outputState']['$kind']==='ObjectWrite'?e['outputState']['ObjectWrite']?.[0x0]??null:null,'outputOwner':e['outputState']['$kind']==='ObjectWrite'?e['outputState']['ObjectWrite'][0x1]:null,'idOperation':e['idOperation']['$kind']};});return{'bcs':a,'version':0x2,'status':b['status']['$kind']==='Success'?{'success':!![],'error':null}:{'success':![],'error':parseBcsExecutionError(b['status']['Failure'])},'gasUsed':b['gasUsed'],'transactionDigest':b['transactionDigest'],'gasObject':b['gasObjectIndex']===null?null:c[b['gasObjectIndex']]??null,'eventsDigest':b['eventsDigest'],'dependencies':b['dependencies'],'lamportVersion':b['lamportVersion'],'changedObjects':c,'unchangedConsensusObjects':b['unchangedConsensusObjects']['map'](([d,e])=>{return{'kind':e['$kind'],'objectId':d,'version':e['$kind']==='ReadOnlyRoot'?e['ReadOnlyRoot'][0x0]:e[e['$kind']],'digest':e['$kind']==='ReadOnlyRoot'?e['ReadOnlyRoot'][0x1]:null};}),'auxiliaryDataDigest':b['auxDataDigest']};}const PACKAGE_VERSION='2.3.18',CODE_TO_ERROR_TYPE={'-32700':'ParseError','-32701':'OversizedRequest','-32702':'OversizedResponse','-32600':'InvalidRequest','-32601':'MethodNotFound','-32602':'InvalidParams','-32603':'InternalError','-32604':'ServerBusy','-32000':'CallExecutionFailed','-32001':'UnknownError','-32003':'SubscriptionClosed','-32004':'SubscriptionClosedWithError','-32005':'BatchesNotSupported','-32006':'TooManySubscriptions','-32050':'TransientError','-32002':'TransactionExecutionClientError'};var WowHTTPTransportError=class extends Error{},JsonRpcError=class extends WowHTTPTransportError{constructor(a,b){super(a),this['code']=b,this['type']=CODE_TO_ERROR_TYPE[b]??'ServerError';}},WowHTTPStatusError=class extends WowHTTPTransportError{constructor(a,b,c){super(a),this['status']=b,this['statusText']=c;}},JsonRpcHTTPTransport=class{#requestId=0x0;#options;constructor(a){this.#options=a;}['fetch'](a,b){const c=this.#options['fetch']??fetch;if(!c)throw new Error('The\x20current\x20environment\x20does\x20not\x20support\x20fetch,\x20you\x20can\x20provide\x20a\x20fetch\x20implementation\x20in\x20the\x20options\x20for\x20WowHTTPTransport.');return c(a,b);}async['request'](a){this.#requestId+=0x1;const b=await this['fetch'](this.#options['rpc']?.['url']??this.#options['url'],{'method':'POST','signal':a['signal'],'headers':{'Content-Type':'application/json','Client-Sdk-Type':'typescript','Client-Sdk-Version':PACKAGE_VERSION,'Client-Request-Method':a['method'],...this.#options['rpc']?.['headers']},'body':JSON['stringify']({'jsonrpc':'2.0','id':this.#requestId,'method':a['method'],'params':a['params']})});if(!b['ok'])throw new WowHTTPStatusError('Unexpected\x20status\x20code:\x20'+b['status'],b['status'],b['statusText']);const c=await b['json']();if('error'in c&&c['error']!=null)throw new JsonRpcError(c['error']['message'],c['error']['code']);return c['result'];}};const MAX_GAS=0xba43b7400;function convertBcsExpirationToInput(a){if(!a)return null;if('None'in a)return{'None':!![]};if('Epoch'in a)return{'Epoch':Number(a['Epoch'])};if('ValidDuring'in a)return{'ValidDuring':a['ValidDuring']};return null;}function parseJsonRpcExecutionStatus(a,b){if(a['status']==='success')return{'success':!![],'error':null};const c=a['error']??'Unknown';if(b){const d=c['match'](/in command (\d+)/),e=d?parseInt(d[0x1],0xa):void 0x0,f=c['match'](/instruction:\s*(\d+)/),g=f?parseInt(f[0x1],0xa):void 0x0,h=b['module_id']?.['split']('::')??[],i=h[0x0]?a7b(h[0x0]):void 0x0,j=h[0x1];return{'success':![],'error':{'$kind':'MoveAbort','message':formatMoveAbortMessage({'command':e,'location':i&&j?{'package':i,'module':j,'functionName':b['function']??void 0x0,'instruction':g}:void 0x0,'abortCode':String(b['error_code']??0x0),'cleverError':b['line']!=null?{'lineNumber':b['line']}:void 0x0}),'command':e,'MoveAbort':{'abortCode':String(b['error_code']??0x0),'location':b['module_id']?{'package':a7b(b['module_id']['split']('::')[0x0]??''),'module':b['module_id']['split']('::')[0x1]??'','functionName':b['function']??void 0x0,'instruction':g}:void 0x0}}};}return{'success':![],'error':{'$kind':'Unknown','message':c,'Unknown':null}};}var JSONRpcCoreClient=class extends CoreClient{#jsonRpcClient;constructor({jsonRpcClient:a}){super({'network':a['network'],'base':a}),this.#jsonRpcClient=a;}async['getObjects'](a){const b=chunk(a['objectIds'],0x32),c=[];for(const d of b){const e=await this.#jsonRpcClient['multiGetObjects']({'objectIds':d,'options':{'showOwner':!![],'showType':!![],'showBcs':a['include']?.['content']||a['include']?.['objectBcs']?!![]:![],'showPreviousTransaction':a['include']?.['previousTransaction']||a['include']?.['objectBcs']?!![]:![],'showStorageRebate':a['include']?.['objectBcs']??![],'showContent':a['include']?.['json']??![],'showDisplay':a['include']?.['display']??![]},'signal':a['signal']});for(const [f,g]of e['entries']())if(g['error'])c['push'](a7o['fromResponse'](g['error'],d[f]));else c['push'](parseObject(g['data'],a['include']));}return{'objects':c};}async['listOwnedObjects'](a){let b=null;if(a['type']){const d=a['type']['split']('::');if(d['length']===0x1)b={'Package':a['type']};else{if(d['length']===0x2)b={'MoveModule':{'package':d[0x0],'module':d[0x1]}};else b={'StructType':a['type']};}}const c=await this.#jsonRpcClient['getOwnedObjects']({'owner':a['owner'],'limit':a['limit'],'cursor':a['cursor'],'options':{'showOwner':!![],'showType':!![],'showBcs':a['include']?.['content']||a['include']?.['objectBcs']?!![]:![],'showPreviousTransaction':a['include']?.['previousTransaction']||a['include']?.['objectBcs']?!![]:![],'showStorageRebate':a['include']?.['objectBcs']??![],'showContent':a['include']?.['json']??![],'showDisplay':a['include']?.['display']??![]},'filter':b,'signal':a['signal']});return{'objects':c['data']['map'](e=>{if(e['error'])throw a7o['fromResponse'](e['error']);return parseObject(e['data'],a['include']);}),'hasNextPage':c['hasNextPage'],'cursor':c['nextCursor']??null};}async['listCoins'](a){const b=await this.#jsonRpcClient['getCoins']({'owner':a['owner'],'coinType':a['coinType'],'limit':a['limit'],'cursor':a['cursor'],'signal':a['signal']});return{'objects':b['data']['map'](c=>({'objectId':c['coinObjectId'],'version':c['version'],'digest':c['digest'],'balance':c['balance'],'type':a7f('0x2::coin::Coin<'+c['coinType']+'>'),'owner':{'$kind':'AddressOwner','AddressOwner':a['owner']}})),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']??null};}async['getBalance'](a){const b=await this.#jsonRpcClient['getBalance']({'owner':a['owner'],'coinType':a['coinType'],'signal':a['signal']}),c=b['fundsInAddressBalance']??'0',d=String(BigInt(b['totalBalance'])-BigInt(c));return{'balance':{'coinType':a7f(b['coinType']),'balance':b['totalBalance'],'coinBalance':d,'addressBalance':c}};}async['getCoinMetadata'](a){const b=a['coinType'],c=await this.#jsonRpcClient['getCoinMetadata']({'coinType':b,'signal':a['signal']});if(!c)return{'coinMetadata':null};return{'coinMetadata':{'id':c['id']??null,'decimals':c['decimals'],'name':c['name'],'symbol':c['symbol'],'description':c['description'],'iconUrl':c['iconUrl']??null}};}async['listBalances'](a){return{'balances':(await this.#jsonRpcClient['getAllBalances']({'owner':a['owner'],'signal':a['signal']}))['map'](b=>{const c=b['fundsInAddressBalance']??'0',d=String(BigInt(b['totalBalance'])-BigInt(c));return{'coinType':a7f(b['coinType']),'balance':b['totalBalance'],'coinBalance':d,'addressBalance':c};}),'hasNextPage':![],'cursor':null};}async['getTransaction'](a){return parseTransaction(await this.#jsonRpcClient['getTransactionBlock']({'digest':a['digest'],'options':{'showRawInput':!![],'showEffects':!![],'showObjectChanges':a['include']?.['objectTypes']??![],'showRawEffects':a['include']?.['effects']??![],'showEvents':a['include']?.['events']??![],'showBalanceChanges':a['include']?.['balanceChanges']??![]},'signal':a['signal']}),a['include']);}async['executeTransaction'](a){return parseTransaction(await this.#jsonRpcClient['executeTransactionBlock']({'txBytes':toBase64(a['transaction']),'signatures':a['signatures'],'options':{'showRawInput':!![],'showEffects':!![],'showRawEffects':a['include']?.['effects']??![],'showEvents':a['include']?.['events']??![],'showObjectChanges':a['include']?.['objectTypes']??![],'showBalanceChanges':a['include']?.['balanceChanges']??![]},'signal':a['signal']}),a['include']);}async['simulateTransaction'](a){if(!(a['transaction']instanceof Uint8Array))await a['transaction']['build']({'client':this,'onlyTransactionKind':!![]});const b=a7s['from'](a['transaction']),c=a['transaction']instanceof Uint8Array?null:a7n['restore'](a['transaction']['getData']()),d=c?c['build']({'overrides':{'gasData':{'budget':c['gasData']['budget']??String(MAX_GAS),'price':c['gasData']['price']??String(await this.#jsonRpcClient['getReferenceGasPrice']()),'payment':c['gasData']['payment']??[]}}}):a['transaction'],f=b['getData']()['sender']??a7b('0x0'),g=a['checksEnabled']===![];let h=null;try{h=await this.#jsonRpcClient['dryRunTransactionBlock']({'txBytes':toBase64(d),'signal':a['signal']});}catch(q){if(!g)throw q;}let i=null;if(a['include']?.['commandResults']||g)try{i=await this.#jsonRpcClient['devInspectTransactionBlock']({'senderAddress':f,'txBytes':toBase64(d),'signal':a['signal']});}catch{}const j=!h||h['effects']['status']['status']!=='success',k=g&&j&&i?i:h??i;if(!k)throw new Error('simulateTransaction\x20failed:\x20no\x20results\x20from\x20dryRun\x20or\x20devInspect');const {effects:l,objectTypes:m}=parseTransactionEffectsJson({'effects':k['effects'],'objectChanges':(!j?h?.['objectChanges']:null)??[]});let n;if(a['include']?.['transaction']){n=parseTransactionBcs(d);if(c&&!j&&l['gasUsed']){if(!c['gasData']['budget'])n['gasData']['budget']=a7p(l['gasUsed']);}}const o={'digest':a7n['getDigestFromBytes'](d),'epoch':null,'status':l['status'],'effects':a['include']?.['effects']?l:void 0x0,'objectTypes':a['include']?.['objectTypes']?m:void 0x0,'signatures':[],'transaction':n??void 0x0,'bcs':a['include']?.['bcs']?d:void 0x0,'balanceChanges':a['include']?.['balanceChanges']&&h&&!j?h['balanceChanges']['map'](r=>({'coinType':a7f(r['coinType']),'address':parseOwnerAddress(r['owner']),'amount':r['amount']})):void 0x0,'events':a['include']?.['events']?k['events']?.['map'](r=>({'packageId':r['packageId'],'module':r['transactionModule'],'sender':r['sender'],'eventType':r['type'],'bcs':'bcs'in r?fromBase64(r['bcs']):new Uint8Array(),'json':r['parsedJson']??null}))??[]:void 0x0};let p;if(a['include']?.['commandResults']&&i?.['results'])p=i['results']['map'](r=>({'returnValues':(r['returnValues']??[])['map'](([s])=>({'bcs':new Uint8Array(s)})),'mutatedReferences':(r['mutableReferenceOutputs']??[])['map'](([,s])=>({'bcs':new Uint8Array(s)}))}));return l['status']['success']?{'$kind':'Transaction','Transaction':o,'commandResults':p}:{'$kind':'FailedTransaction','FailedTransaction':o,'commandResults':p};}async['getReferenceGasPrice'](a){const b=await this.#jsonRpcClient['getReferenceGasPrice']({'signal':a?.['signal']});return{'referenceGasPrice':String(b)};}async['getProtocolConfig'](a){const b=await this.#jsonRpcClient['getProtocolConfig']({'signal':a?.['signal']}),c={};for(const [d,e]of Object['entries'](b['attributes']))if(e===null)c[d]=null;else{if('u16'in e)c[d]=e['u16'];else{if('u32'in e)c[d]=e['u32'];else{if('u64'in e)c[d]=e['u64'];else{if('f64'in e)c[d]=e['f64'];else{if('bool'in e)c[d]=e['bool'];else{const f=Object['entries'](e);c[d]=f['length']===0x1?String(f[0x0][0x1]):JSON['stringify'](e);}}}}}}return{'protocolConfig':{'protocolVersion':b['protocolVersion'],'featureFlags':{...b['featureFlags']},'attributes':c}};}async['getCurrentSystemState'](a){const b=await this.#jsonRpcClient['getLatestWowSystemState']({'signal':a?.['signal']});return{'systemState':{'systemStateVersion':b['systemStateVersion'],'epoch':b['epoch'],'protocolVersion':b['protocolVersion'],'referenceGasPrice':b['referenceGasPrice']?.['toString']()??null,'epochStartTimestampMs':b['epochStartTimestampMs'],'safeMode':b['safeMode'],'safeModeStorageRewards':b['safeModeStorageRewards'],'safeModeComputationRewards':b['safeModeComputationRewards'],'safeModeStorageRebates':b['safeModeStorageRebates'],'safeModeNonRefundableStorageFee':b['safeModeNonRefundableStorageFee'],'parameters':{'epochDurationMs':b['epochDurationMs'],'stakeSubsidyStartEpoch':b['stakeSubsidyStartEpoch'],'maxValidatorCount':b['maxValidatorCount'],'minValidatorJoiningStake':b['minValidatorJoiningStake'],'validatorLowStakeThreshold':b['validatorLowStakeThreshold'],'validatorLowStakeGracePeriod':b['validatorLowStakeGracePeriod']},'storageFund':{'totalObjectStorageRebates':b['storageFundTotalObjectStorageRebates'],'nonRefundableBalance':b['storageFundNonRefundableBalance']},'stakeSubsidy':{'balance':b['stakeSubsidyBalance'],'distributionCounter':b['stakeSubsidyDistributionCounter'],'currentDistributionAmount':b['stakeSubsidyCurrentDistributionAmount'],'stakeSubsidyPeriodLength':b['stakeSubsidyPeriodLength'],'stakeSubsidyDecreaseRate':b['stakeSubsidyDecreaseRate']}}};}async['listDynamicFields'](a){const b=await this.#jsonRpcClient['getDynamicFields']({'parentId':a['parentId'],'limit':a['limit'],'cursor':a['cursor']});return{'dynamicFields':b['data']['map'](c=>{const d=c['type']==='DynamicObject',e=d?'0x2::dynamic_field::Field<0x2::dynamic_object_field::Wrapper<'+c['name']['type']+'>,\x200x2::object::ID>':'0x2::dynamic_field::Field<'+c['name']['type']+',\x20'+c['objectType']+'>',f=fromBase64(c['bcsName']),g=d?'0x2::dynamic_object_field::Wrapper<'+c['name']['type']+'>':c['name']['type'];return{'$kind':d?'DynamicObject':'DynamicField','fieldId':a7k(a['parentId'],g,f),'type':a7f(e),'name':{'type':c['name']['type'],'bcs':f},'valueType':c['objectType'],'childId':d?c['objectId']:void 0x0};}),'hasNextPage':b['hasNextPage'],'cursor':b['nextCursor']};}['resolveTransactionPlugin'](){return a7r;}async['getMoveFunction'](a){const b=await this.#jsonRpcClient['getNormalizedMoveFunction']({'package':a['packageId'],'moduleName':a['moduleName'],'functionName':a['name']});return{'function':{'packageId':a7b(a['packageId']),'moduleName':a['moduleName'],'name':a['name'],'visibility':parseVisibility(b['visibility']),'isEntry':b['isEntry'],'typeParameters':b['typeParameters']['map'](c=>({'isPhantom':![],'constraints':parseAbilities(c)})),'parameters':b['parameters']['map'](c=>parseNormalizedWowMoveType(c)),'returns':b['return']['map'](c=>parseNormalizedWowMoveType(c))}};}async['getChainIdentifier'](a){return this['cache']['read'](['chainIdentifier'],async()=>{return{'chainIdentifier':(await this.#jsonRpcClient['getCheckpoint']({'id':'0'}))['digest']};});}};function serializeObjectToBcs(a){if(a['bcs']?.['dataType']!=='moveObject')return;try{const b=a7f(a['bcs']['type']);let c;const d=a7b(a7m),e=a7f(a7m+'::coin::Coin<'+a7m+'::wow::WOW>'),f=a7f(a7l+'::staking_pool::StakedWow'),g=d+'::coin::Coin<';if(b===e)c={'GasCoin':null};else{if(b===f)c={'StakedWow':null};else{if(b['startsWith'](g)){const j=b['match'](new RegExp(d['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&')+'::coin::Coin<(.+)>$'));if(j)c={'Coin':a7j['parseFromStr'](j[0x1],!![])};else throw new Error('Failed\x20to\x20parse\x20Coin\x20type');}else{const k=a7j['parseFromStr'](b,!![]);if(typeof k!=='object'||!('struct'in k))throw new Error('Expected\x20struct\x20type\x20tag');c={'Other':k['struct']};}}}const h=fromBase64(a['bcs']['bcsBytes']),i=convertOwnerToBcs(a['owner']);return a7i['Object']['serialize']({'data':{'Move':{'type':c,'hasPublicTransfer':a['bcs']['hasPublicTransfer'],'version':a['bcs']['version'],'contents':h}},'owner':i,'previousTransaction':a['previousTransaction'],'storageRebate':a['storageRebate']})['toBytes']();}catch{return;}}function parseObject(a,b){const c=a['bcs']?.['dataType']==='moveObject'?fromBase64(a['bcs']['bcsBytes']):void 0x0,d=b?.['objectBcs']?serializeObjectToBcs(a):void 0x0,e=a['type']&&a['type']['includes']('::')?a7f(a['type']):a['type']??'',f=b?.['json']&&a['content']?.['dataType']==='moveObject'?a['content']['fields']:b?.['json']?null:void 0x0,g=b?.['display']?a['display']?.['data']!=null?{'output':a['display']['data'],'errors':null}:null:void 0x0;return{'objectId':a['objectId'],'version':a['version'],'digest':a['digest'],'type':e,'content':b?.['content']?c:void 0x0,'owner':parseOwner(a['owner']),'previousTransaction':b?.['previousTransaction']?a['previousTransaction']??void 0x0:void 0x0,'objectBcs':d,'json':f,'display':g};}function parseOwner(a){if(a==='Immutable')return{'$kind':'Immutable','Immutable':!![]};if('ConsensusAddressOwner'in a)return{'$kind':'ConsensusAddressOwner','ConsensusAddressOwner':{'owner':a['ConsensusAddressOwner']['owner'],'startVersion':a['ConsensusAddressOwner']['start_version']}};if('AddressOwner'in a)return{'$kind':'AddressOwner','AddressOwner':a['AddressOwner']};if('ObjectOwner'in a)return{'$kind':'ObjectOwner','ObjectOwner':a['ObjectOwner']};if('Shared'in a)return{'$kind':'Shared','Shared':{'initialSharedVersion':a['Shared']['initial_shared_version']}};throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function convertOwnerToBcs(a){if(a==='Immutable')return{'Immutable':null};if('AddressOwner'in a)return{'AddressOwner':a['AddressOwner']};if('ObjectOwner'in a)return{'ObjectOwner':a['ObjectOwner']};if('Shared'in a)return{'Shared':{'initialSharedVersion':a['Shared']['initial_shared_version']}};if(typeof a==='object'&&a!==null&&'ConsensusAddressOwner'in a)return{'ConsensusAddressOwner':{'startVersion':a['ConsensusAddressOwner']['start_version'],'owner':a['ConsensusAddressOwner']['owner']}};throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseOwnerAddress(a){if(a==='Immutable')return null;if('ConsensusAddressOwner'in a)return a['ConsensusAddressOwner']['owner'];if('AddressOwner'in a)return a['AddressOwner'];if('ObjectOwner'in a)return a['ObjectOwner'];if('Shared'in a)return null;throw new Error('Unknown\x20owner\x20type:\x20'+JSON['stringify'](a));}function parseTransaction(a,b){const c={};if(b?.['objectTypes'])a['objectChanges']?.['forEach'](j=>{if(j['type']!=='published')c[j['objectId']]=a7f(j['objectType']);});let d,e=[],f;if(a['rawTransaction']){const j=a7i['SenderSignedData']['parse'](fromBase64(a['rawTransaction']))[0x0];e=j['txSignatures'];if(b?.['transaction']||b?.['bcs']){const k=a7i['TransactionData']['serialize'](j['intentMessage']['value'])['toBytes']();if(b?.['bcs'])f=k;if(b?.['transaction'])d={...a7n['restore']({'version':0x2,'sender':j['intentMessage']['value']['V1']['sender'],'expiration':convertBcsExpirationToInput(j['intentMessage']['value']['V1']['expiration']),'gasData':j['intentMessage']['value']['V1']['gasData'],'inputs':j['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['inputs'],'commands':j['intentMessage']['value']['V1']['kind']['ProgrammableTransaction']['commands']})};}}const g=a['effects']?.['status']?parseJsonRpcExecutionStatus(a['effects']['status'],a['effects']['abortError']):{'success':![],'error':{'$kind':'Unknown','message':'Unknown','Unknown':null}},h=a['rawEffects']?new Uint8Array(a['rawEffects']):null,i={'digest':a['digest'],'epoch':a['effects']?.['executedEpoch']??null,'status':g,'effects':b?.['effects']&&h?parseTransactionEffectsBcs(h):void 0x0,'objectTypes':b?.['objectTypes']?c:void 0x0,'transaction':d,'bcs':f,'signatures':e,'balanceChanges':b?.['balanceChanges']?a['balanceChanges']?.['map'](l=>({'coinType':a7f(l['coinType']),'address':parseOwnerAddress(l['owner']),'amount':l['amount']}))??[]:void 0x0,'events':b?.['events']?a['events']?.['map'](l=>({'packageId':l['packageId'],'module':l['transactionModule'],'sender':l['sender'],'eventType':l['type'],'bcs':'bcs'in l?fromBase64(l['bcs']):new Uint8Array(),'json':l['parsedJson']??null}))??[]:void 0x0};return g['success']?{'$kind':'Transaction','Transaction':i}:{'$kind':'FailedTransaction','FailedTransaction':i};}function parseTransactionEffectsJson({bytes:a,effects:b,objectChanges:c}){const d=[],e=[],f={};return c?.['forEach'](g=>{switch(g['type']){case'published':d['push']({'objectId':g['packageId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'PackageWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':null,'idOperation':'Created'});break;case'transferred':d['push']({'objectId':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':g['digest'],'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['recipient']),'idOperation':'None'}),f[g['objectId']]=a7f(g['objectType']);break;case'mutated':d['push']({'objectId':g['objectId'],'inputState':'Exists','inputVersion':g['previousVersion'],'inputDigest':null,'inputOwner':parseOwner(g['owner']),'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'None'}),f[g['objectId']]=a7f(g['objectType']);break;case'deleted':d['push']({'objectId':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':b['deleted']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'inputOwner':null,'outputState':'DoesNotExist','outputVersion':null,'outputDigest':null,'outputOwner':null,'idOperation':'Deleted'}),f[g['objectId']]=a7f(g['objectType']);break;case'wrapped':d['push']({'objectId':g['objectId'],'inputState':'Exists','inputVersion':g['version'],'inputDigest':null,'inputOwner':{'$kind':'AddressOwner','AddressOwner':g['sender']},'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':b['wrapped']?.['find'](h=>h['objectId']===g['objectId'])?.['digest']??null,'outputOwner':{'$kind':'ObjectOwner','ObjectOwner':g['sender']},'idOperation':'None'}),f[g['objectId']]=a7f(g['objectType']);break;case'created':d['push']({'objectId':g['objectId'],'inputState':'DoesNotExist','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':g['version'],'outputDigest':g['digest'],'outputOwner':parseOwner(g['owner']),'idOperation':'Created'}),f[g['objectId']]=a7f(g['objectType']);break;}}),{'objectTypes':f,'effects':{'bcs':a??null,'version':0x2,'status':parseJsonRpcExecutionStatus(b['status'],b['abortError']),'gasUsed':b['gasUsed'],'transactionDigest':b['transactionDigest'],'gasObject':{'objectId':b['gasObject']?.['reference']['objectId'],'inputState':'Exists','inputVersion':null,'inputDigest':null,'inputOwner':null,'outputState':'ObjectWrite','outputVersion':b['gasObject']['reference']['version'],'outputDigest':b['gasObject']['reference']['digest'],'outputOwner':parseOwner(b['gasObject']['owner']),'idOperation':'None'},'eventsDigest':b['eventsDigest']??null,'dependencies':b['dependencies']??[],'lamportVersion':b['gasObject']['reference']['version'],'changedObjects':d,'unchangedConsensusObjects':e,'auxiliaryDataDigest':null}};}function parseNormalizedWowMoveType(a){if(typeof a!=='string'){if('Reference'in a)return{'reference':'immutable','body':parseNormalizedWowMoveTypeBody(a['Reference'])};if('MutableReference'in a)return{'reference':'mutable','body':parseNormalizedWowMoveTypeBody(a['MutableReference'])};}return{'reference':null,'body':parseNormalizedWowMoveTypeBody(a)};}function parseNormalizedWowMoveTypeBody(a){switch(a){case'Address':return{'$kind':'address'};case'Bool':return{'$kind':'bool'};case'U8':return{'$kind':'u8'};case'U16':return{'$kind':'u16'};case'U32':return{'$kind':'u32'};case'U64':return{'$kind':'u64'};case'U128':return{'$kind':'u128'};case'U256':return{'$kind':'u256'};}if(typeof a==='string')throw new Error('Unknown\x20type:\x20'+a);if('Vector'in a)return{'$kind':'vector','vector':parseNormalizedWowMoveTypeBody(a['Vector'])};if('Struct'in a)return{'$kind':'datatype','datatype':{'typeName':a7b(a['Struct']['address'])+'::'+a['Struct']['module']+'::'+a['Struct']['name'],'typeParameters':a['Struct']['typeArguments']['map'](b=>parseNormalizedWowMoveTypeBody(b))}};if('TypeParameter'in a)return{'$kind':'typeParameter','index':a['TypeParameter']};throw new Error('Unknown\x20type:\x20'+JSON['stringify'](a));}function parseAbilities(a){return a['abilities']['map'](b=>{switch(b){case'Copy':return'copy';case'Drop':return'drop';case'Store':return'store';case'Key':return'key';default:return'unknown';}});}function parseVisibility(a){switch(a){case'Public':return'public';case'Private':return'private';case'Friend':return'friend';default:return'unknown';}}const WOW_CLIENT_BRAND=Symbol['for']('@mysten/WowJsonRpcClient');function isWowJsonRpcClient(a){return typeof a==='object'&&a!==null&&a[WOW_CLIENT_BRAND]===!![];}var WowJsonRpcClient=class extends BaseClient{get[WOW_CLIENT_BRAND](){return!![];}constructor(a){super({'network':a['network']}),this['jsonRpc']=this,this['transport']=a['transport']??new JsonRpcHTTPTransport({'url':a['url']}),this['core']=new JSONRpcCoreClient({'jsonRpcClient':this});}async['getRpcApiVersion']({signal:a}={}){return(await this['transport']['request']({'method':'rpc.discover','params':[],'signal':a}))['info']['version'];}async['getCoins']({coinType:a,owner:b,cursor:c,limit:d,signal:e}){if(!b||!a7a(a7b(b)))throw new Error('Invalid\x20Wow\x20address');const f=await this['transport']['request']({'method':'wx_getCoins','params':[b,a,c,d],'signal':e});return{...f,'data':f['data']['filter'](g=>!a7q(g['digest']))};}async['getAllCoins'](a){if(!a['owner']||!a7a(a7b(a['owner'])))throw new Error('Invalid\x20Wow\x20address');const b=await this['transport']['request']({'method':'wx_getAllCoins','params':[a['owner'],a['cursor'],a['limit']],'signal':a['signal']});return{...b,'data':b['data']['filter'](c=>!a7q(c['digest']))};}async['getBalance']({owner:a,coinType:b,signal:c}){if(!a||!a7a(a7b(a)))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getBalance','params':[a,b],'signal':c});}async['getAllBalances'](a){if(!a['owner']||!a7a(a7b(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getAllBalances','params':[a['owner']],'signal':a['signal']});}async['getCoinMetadata']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getCoinMetadata','params':[a],'signal':b});}async['getTotalSupply']({coinType:a,signal:b}){return await this['transport']['request']({'method':'wx_getTotalSupply','params':[a],'signal':b});}async['call'](a,b,{signal:c}={}){return await this['transport']['request']({'method':a,'params':b,'signal':c});}async['getMoveFunctionArgTypes']({package:a,module:b,function:c,signal:d}){return await this['transport']['request']({'method':'w_getMoveFunctionArgTypes','params':[a,b,c],'signal':d});}async['getNormalizedMoveModulesByPackage']({package:a,signal:b}){return await this['transport']['request']({'method':'w_getNormalizedMoveModulesByPackage','params':[a],'signal':b});}async['getNormalizedMoveModule']({package:a,moduleName:b,signal:c}){return await this['transport']['request']({'method':'w_getNormalizedMoveModule','params':[a,b],'signal':c});}async['getNormalizedMoveFunction']({package:a,moduleName:b,functionName:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveFunction','params':[a,b,c],'signal':d});}async['getNormalizedMoveStruct']({package:a,moduleName:b,structName:c,signal:d}){return await this['transport']['request']({'method':'w_getNormalizedMoveStruct','params':[a,b,c],'signal':d});}async['getOwnedObjects'](a){if(!a['owner']||!a7a(a7b(a['owner'])))throw new Error('Invalid\x20Wow\x20address');const b=a['filter']?{...a['filter']}:void 0x0;return await this['transport']['request']({'method':'wx_getOwnedObjects','params':[a['owner'],{'filter':b,'options':a['options']},a['cursor'],a['limit']],'signal':a['signal']});}async['getObject'](a){if(!a['objectId']||!a7e(a7d(a['objectId'])))throw new Error('Invalid\x20Wow\x20Object\x20id');return await this['transport']['request']({'method':'w_getObject','params':[a['objectId'],a['options']],'signal':a['signal']});}async['tryGetPastObject'](a){return await this['transport']['request']({'method':'w_tryGetPastObject','params':[a['objectId'],a['version'],a['options']],'signal':a['signal']});}async['multiGetObjects'](a){if(!a||!a['objectIds']||!Array['isArray'](a['objectIds']))throw new Error('Invalid\x20input\x20for\x20multiGetObjects:\x20expected\x20{\x20objectIds:\x20string[]\x20},\x20got\x20'+JSON['stringify'](a));a['objectIds']['forEach'](b=>{if(!b||!a7e(a7d(b)))throw new Error('Invalid\x20Wow\x20Object\x20id\x20'+b);});if(a['objectIds']['length']!==new Set(a['objectIds'])['size'])throw new Error('Duplicate\x20object\x20ids\x20in\x20batch\x20call\x20'+a['objectIds']);return await this['transport']['request']({'method':'w_multiGetObjects','params':[a['objectIds'],a['options']],'signal':a['signal']});}async['queryTransactionBlocks']({filter:a,options:b,cursor:c,limit:d,order:e,signal:f}){return await this['transport']['request']({'method':'wx_queryTransactionBlocks','params':[{'filter':a,'options':b},c,d,e==='descending'],'signal':f});}async['getTransactionBlock'](a){if(!a7c(a['digest']))throw new Error('Invalid\x20Transaction\x20digest');return await this['transport']['request']({'method':'w_getTransactionBlock','params':[a['digest'],a['options']],'signal':a['signal']});}async['multiGetTransactionBlocks'](a){a['digests']['forEach'](b=>{if(!a7c(b))throw new Error('Invalid\x20Transaction\x20digest\x20'+b);});if(a['digests']['length']!==new Set(a['digests'])['size'])throw new Error('Duplicate\x20digests\x20in\x20batch\x20call\x20'+a['digests']);return await this['transport']['request']({'method':'w_multiGetTransactionBlocks','params':[a['digests'],a['options']],'signal':a['signal']});}async['executeTransactionBlock']({txBytes:a,signatures:b,options:c,signal:d}){return await this['transport']['request']({'method':'w_executeTransactionBlock','params':[a,b,c],'signal':d});}async['signAndExecuteTransaction']({transaction:a,signer:b,options:c,signal:d}){let e;if(a instanceof Uint8Array)e=a;else a['setSenderIfNotSet'](b['toWowAddress']()),e=await a['build']({'client':this});const {signature:f,bytes:g}=await b['signTransaction'](e);return this['executeTransactionBlock']({'txBytes':g,'signatures':[f],'options':c,'signal':d});}async['getTotalTransactionBlocks']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getTotalTransactionBlocks','params':[],'signal':a});return BigInt(b);}async['getReferenceGasPrice']({signal:a}={}){const b=await this['transport']['request']({'method':'wx_getReferenceGasPrice','params':[],'signal':a});return BigInt(b);}async['getStakes'](a){if(!a['owner']||!a7a(a7b(a['owner'])))throw new Error('Invalid\x20Wow\x20address');return await this['transport']['request']({'method':'wx_getStakes','params':[a['owner']],'signal':a['signal']});}async['getStakesByIds'](a){return a['stakedWowIds']['forEach'](b=>{if(!b||!a7e(a7d(b)))throw new Error('Invalid\x20Wow\x20Stake\x20id\x20'+b);}),await this['transport']['request']({'method':'wx_getStakesByIds','params':[a['stakedWowIds']],'signal':a['signal']});}async['getLatestWowSystemState']({signal:a}={}){return await this['transport']['request']({'method':'wx_getLatestWowSystemState','params':[],'signal':a});}async['queryEvents']({query:a,cursor:b,limit:c,order:d,signal:e}){return await this['transport']['request']({'method':'wx_queryEvents','params':[a,b,c,d==='descending'],'signal':e});}async['devInspectTransactionBlock'](a){return await this['transport']['request']({'method':'w_devInspectTransactionBlock','params':[a['senderAddress'],a['txBytes'],a['gasPrice'],a['epoch'],a['additionalArgs']],'signal':a['signal']});}async['dryRunTransactionBlock'](a){return await this['transport']['request']({'method':'w_dryRunTransactionBlock','params':[a['txBytes']],'signal':a['signal']});}async['getDynamicFields'](a){if(!a['parentId']||!a7e(a7d(a['parentId'])))throw new Error('Invalid\x20Wow\x20Object\x20id');return await this['transport']['request']({'method':'wx_getDynamicFields','params':[a['parentId'],a['cursor'],a['limit']],'signal':a['signal']});}async['getDynamicFieldObject'](a){return await this['transport']['request']({'method':'wx_getDynamicFieldObject','params':[a['parentId'],a['name']],'signal':a['signal']});}async['getLatestCheckpointSequenceNumber']({signal:a}={}){const b=await this['transport']['request']({'method':'w_getLatestCheckpointSequenceNumber','params':[],'signal':a});return String(b);}async['getCheckpoint'](a){return await this['transport']['request']({'method':'w_getCheckpoint','params':[a['id']],'signal':a['signal']});}async['getCheckpoints'](a){return await this['transport']['request']({'method':'w_getCheckpoints','params':[a['cursor'],a?.['limit'],a['descendingOrder']],'signal':a['signal']});}async['getCommitteeInfo'](a){return await this['transport']['request']({'method':'wx_getCommitteeInfo','params':[a?.['epoch']],'signal':a?.['signal']});}async['getEpochs'](a){return await this['transport']['request']({'method':'wx_getEpochs','params':[a?.['cursor'],a?.['limit'],a?.['descendingOrder']],'signal':a?.['signal']});}async['getCurrentEpoch']({signal:a}={}){return await this['transport']['request']({'method':'wx_getCurrentEpoch','params':[],'signal':a});}async['getValidatorsApy']({signal:a}={}){return await this['transport']['request']({'method':'wx_getValidatorsApy','params':[],'signal':a});}async['getChainIdentifier']({signal:a}={}){return toHex(fromBase58((await this['getCheckpoint']({'id':'0','signal':a}))['digest'])['slice'](0x0,0x4));}async['getProtocolConfig'](a){return await this['transport']['request']({'method':'w_getProtocolConfig','params':[a?.['version']],'signal':a?.['signal']});}async['waitForTransaction']({signal:a,timeout:timeout=0x3c*0x3e8,pollInterval:pollInterval=0x2*0x3e8,...b}){const c=AbortSignal['timeout'](timeout),d=new Promise((e,f)=>{c['addEventListener']('abort',()=>f(c['reason']));});d['catch'](()=>{});while(!c['aborted']){a?.['throwIfAborted']();try{return await this['getTransactionBlock'](b);}catch{await Promise['race']([new Promise(e=>setTimeout(e,pollInterval)),d]);}}c['throwIfAborted']();throw new Error('Unexpected\x20error\x20while\x20waiting\x20for\x20transaction\x20block.');}},WowClient=class extends WowJsonRpcClient{constructor(a){super({'url':a['url'],'network':a['network']??'testnet'});}};export{JsonRpcError as a,extractStatusFromEffectsBcs as c,parseTransactionEffectsBcs as d,CoreClient as f,JsonRpcHTTPTransport as i,formatMoveAbortMessage as l,ClientCache as m,WowJsonRpcClient as n,WowHTTPStatusError as o,BaseClient as p,isWowJsonRpcClient as r,WowHTTPTransportError as s,WowClient as t,parseTransactionBcs as u};
@@ -1 +0,0 @@
1
- import{J as a32a}from'./common-D8TcHVCJ.mjs';import{o as a32b}from'./exception-CkI_xPvd.mjs';import{LocalMark}from'./w/local/local.mjs';import{r as a32c}from'./logger-Cs5Mf7Mf.mjs';import{Account}from'./w/local/account.mjs';import{GetAccountOrMark_Address,GetManyAccountOrMark_Address}from'./w/local/index.mjs';import{L as a32d}from'./object-B-eGy8U5.mjs';import{DEFAULT_MESSENGER_CONFIG,MessengerError,WTS_SCHEMA_URL}from'./w/messenger/types.mjs';import{n as a32e,t as a32f}from'./messenger-Bj7TtF3B.mjs';import{MessageStorage,MessengerPersistStorage}from'./w/messenger/storage.mjs';import{generateNonce,hashPlaintext,verifyFalcon512Signature,verifySingleMerkleRoot}from'./w/messenger/crypto.mjs';import*as a32g from'path';import*as a32h from'fs';import{createHash}from'crypto';const logger$1=a32c('messenger:manager'),MAX_ACCOUNTS=0x64,sleep=a=>new Promise(b=>setTimeout(b,a));var MessengerManager=class{constructor(a){this['accounts']=new Map(),this['messageListeners']=new Set(),this['isWatching']=![],this['accountRefreshTimer']=null,this['pollingLockedAccounts']=new Set(),this['config']={...DEFAULT_MESSENGER_CONFIG,...a?.['messengerConfig']},this['instanceId']=a?.['instanceId']||'default',this['persistStorage']=new MessengerPersistStorage();}['findAccount'](a){return this['accounts']['get'](a['toLowerCase']());}['getConfig'](){return this['config'];}['get_accounts'](){return Array['from'](this['accounts']['values']())['map'](a=>a['address']);}async['refresh_accounts'](){const {Account:a}=await import('./w/local/account.mjs'),b=await a['Instance']()['list_messenger_accounts'](),c=new Set(this['accounts']['keys']()),d=new Set(b['map'](e=>e['address']['toLowerCase']()));for(const e of c)if(!d['has'](e))this['remove_account_internal'](e);for(const f of b){const g=f['address']['toLowerCase']();if(!this['accounts']['has'](g))try{await this['add_account_internal'](f['address']);}catch(h){}}if(this['accounts']['size']>0x0&&!this['isWatching'])this['startPolling']();else{if(this['accounts']['size']===0x0&&this['isWatching'])this['stopPolling']();}await this['syncAllContactLists']();}async['start'](){await this['refresh_accounts']();for(const a of this['accounts']['values']()){if(!a['initialized']||!a['messenger'])continue;this['persistStorage']['tryAcquirePollingLock'](a['address'],this['instanceId'])&&(this['pollingLockedAccounts']['add'](a['address']['toLowerCase']()),a['messenger']['setOnMessageCallback'](b=>{for(const c of this['messageListeners'])c(b);}));}if(!this['isWatching'])this['startPolling']();if(this['accountRefreshTimer'])clearInterval(this['accountRefreshTimer']);this['accountRefreshTimer']=setInterval(()=>{this['refresh_accounts']()['catch'](b=>{});},this['config']['watch_interval_ms']);}['stop'](){this['accountRefreshTimer']&&(clearInterval(this['accountRefreshTimer']),this['accountRefreshTimer']=null);for(const a of this['pollingLockedAccounts'])this['persistStorage']['releasePollingLock'](a,this['instanceId']);this['pollingLockedAccounts']['clear'](),this['stopPolling'](),this['clear_accounts']();}async['ensureAccountReady'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(c?.['initialized'])return c;if(c?.['initializing']){await c['initializing'];const d=this['accounts']['get'](b);if(d?.['initialized'])return d;throw new MessengerError('SERVER_ERROR','Account\x20'+a+'\x20initialization\x20failed');}return this['initializeAccount'](b);}async['initializeAccount'](a){const b=a['toLowerCase']();if(this['accounts']['size']>=MAX_ACCOUNTS)throw new MessengerError('INVALID_INPUT','Maximum\x20'+MAX_ACCOUNTS+'\x20accounts\x20allowed');const c=this['doInitialize'](b),d={'address':b,'messenger':null,'initialized':![],'initializing':c,'contactLists':{'friends':[],'guards':[],'lastUpdatedAt':0x0}};this['accounts']['set'](b,d);try{await c;const e=this['accounts']['get'](b);if(!e||!e['initialized'])throw new MessengerError('SERVER_ERROR','Account\x20'+a+'\x20initialization\x20failed');return e;}catch(f){this['accounts']['delete'](b);throw f;}}async['doInitialize'](a){const b=new a32f(a,this['config']);try{await b['initialize']();}catch(c){throw new MessengerError('SERVER_ERROR','Failed\x20to\x20initialize\x20account\x20'+a+':\x20'+(c instanceof Error?c['message']:String(c)));}await sleep(0x3e8),this['accounts']['set'](a,{'address':a,'messenger':b,'initialized':!![],'contactLists':{'friends':[],'guards':[],'lastUpdatedAt':0x0}}),this['isWatching']&&(this['persistStorage']['tryAcquirePollingLock'](a,this['instanceId'])&&(this['pollingLockedAccounts']['add'](a),b['setOnMessageCallback'](d=>{for(const e of this['messageListeners'])e(d);})));}async['add_account_internal'](a){await this['ensureAccountReady'](a);}['remove_account_internal'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(!c)return![];if(c['initialized']&&c['messenger'])c['messenger']['disconnect']();return this['persistStorage']['releasePollingLock'](b,this['instanceId']),this['pollingLockedAccounts']['delete'](b),this['accounts']['delete'](b);}['clear_accounts'](){this['stopPolling']();for(const a of this['accounts']['values']())if(a['messenger'])a['messenger']['disconnect']();this['accounts']['clear']();}async['send'](a,b,c,d){const {Account:e}=await import('./w/local/account.mjs'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError('ACCOUNT_MESSENGER_NOT_ENABLED','Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);if(h&&h['m']!==d['new_messenger_name'])await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}try{return await g['messenger']['sendMessage'](b,c,{'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force'],'network':d?.['network']});}catch(i){if(i instanceof MessengerError&&i['code']==='IDENTITY_NOT_FOUND'){const j=i['message']||'',k=a['toLowerCase'](),l=b['toLowerCase'](),m=j['toLowerCase']()['includes'](k);if((j['toLowerCase']()['includes'](l)||j['toLowerCase']()['includes']('recipient')||j['toLowerCase']()['includes']('no\x20signed\x20prekey'))&&!m)throw new MessengerError('IDENTITY_NOT_FOUND','Recipient\x20'+b+'\x20is\x20not\x20registered\x20on\x20the\x20messenger\x20server.\x20Please\x20ask\x20them\x20to\x20enable\x20messenger\x20first.');logger$1['info']('Sender\x20'+a+'\x20not\x20found\x20on\x20server,\x20re-registering...'),await this['reinitializeAccount'](a);const n=this['accounts']['get'](a['toLowerCase']());if(n?.['initialized'])return await n['messenger']['sendMessage'](b,c,{'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force'],'network':d?.['network']});}throw i;}}async['reinitializeAccount'](a){const b=a['toLowerCase'](),c=this['accounts']['get'](b);if(c){if(c['messenger'])c['messenger']['disconnect']();this['accounts']['delete'](b);}await this['initializeAccount'](b);}async['send_file'](a,b,c,d){const {Account:e}=await import('./w/local/account.mjs'),f=await e['Instance']()['get'](a,![]);if(!f)throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20'+a+'\x20not\x20found');if(f['m']==null){if(d?.['new_messenger_name']==null)throw new MessengerError('ACCOUNT_MESSENGER_NOT_ENABLED','Account\x20messenger\x20name\x20not\x20set.\x20Use\x20new_messenger_name\x20parameter\x20to\x20set\x20it\x20automatically.');await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}const g=await this['ensureAccountReady'](a);if(d?.['new_messenger_name']!=null){const h=await e['Instance']()['get'](a,![]);if(h&&h['m']!==d['new_messenger_name'])await e['Instance']()['set_messenger'](a,d['new_messenger_name']);}try{return await g['messenger']['sendZipFile'](b,c,{'fileName':d?.['fileName'],'contentType':d?.['contentType'],'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force'],'network':d?.['network']});}catch(i){if(i instanceof MessengerError&&i['code']==='IDENTITY_NOT_FOUND'){const j=i['message']||'',k=a['toLowerCase'](),l=b['toLowerCase'](),m=j['toLowerCase']()['includes'](k);if((j['toLowerCase']()['includes'](l)||j['toLowerCase']()['includes']('recipient')||j['toLowerCase']()['includes']('no\x20signed\x20prekey'))&&!m)throw new MessengerError('IDENTITY_NOT_FOUND','Recipient\x20'+b+'\x20is\x20not\x20registered\x20on\x20the\x20messenger\x20server.\x20Please\x20ask\x20them\x20to\x20enable\x20messenger\x20first.');logger$1['info']('Sender\x20'+a+'\x20not\x20found\x20on\x20server,\x20re-registering...'),await this['reinitializeAccount'](a);const n=this['accounts']['get'](a['toLowerCase']());if(n?.['initialized'])return await n['messenger']['sendZipFile'](b,c,{'fileName':d?.['fileName'],'contentType':d?.['contentType'],'guardAddress':d?.['guardAddress'],'passportAddress':d?.['passportAddress'],'force':d?.['force'],'network':d?.['network']});}throw i;}}async['watch'](a){let b=[];if(a?.['account']!==void 0x0){const i=a['account']['toLowerCase'](),j=this['accounts']['get'](i);if(j?.['messenger'])await j['messenger']['pullMessages']();b=new MessageStorage(i)['getAllMessages'](i);}else for(const k of this['accounts']['values']()){if(k['messenger'])await k['messenger']['pullMessages']();const l=new MessageStorage(k['address'])['getAllMessages'](k['address']);b['push'](...l);}if(a){const m=a['peerAddress']?await GetAccountOrMark_Address(a['peerAddress']):void 0x0;b=b['filter'](n=>{if(a?.['account']!==void 0x0){const p=a['account']['toLowerCase'](),q=n['fromAddress']['toLowerCase'](),r=n['toAddress']['toLowerCase']();if(q!==p&&r!==p)return![];}if(a['direction']&&n['direction']!==a['direction'])return![];if(a['status']&&n['status']!==a['status'])return![];if(a['msgType']!==void 0x0&&n['msgType']!==a['msgType'])return![];if(a['contentType'])switch(a['contentType']){case'text':if(n['msgType']!==0x1)return![];break;case'zip':if(!n['zipMetadata'])return![];break;case'wts':if(!n['zipMetadata']||n['zipMetadata']?.['contentType']!=='wts')return![];break;case'wip':if(!n['zipMetadata']||n['zipMetadata']?.['contentType']!=='wip')return![];break;}if(a['peerAddress']&&m){const s=m['toLowerCase'](),t=n['fromAddress']['toLowerCase'](),u=n['toAddress']['toLowerCase']();if(t!==s&&u!==s)return![];}const o=a['timeField']||'createdAt';if(a['startTime']!==void 0x0||a['endTime']!==void 0x0){const v=n[o];if(v!==void 0x0){if(a['startTime']!==void 0x0&&v<a['startTime'])return![];if(a['endTime']!==void 0x0&&v>a['endTime'])return![];}}if(a['createdAtStart']!==void 0x0&&n['createdAt']<a['createdAtStart'])return![];if(a['createdAtEnd']!==void 0x0&&n['createdAt']>a['createdAtEnd'])return![];if(a['receivedAtStart']!==void 0x0){if(n['receivedAt']===void 0x0||n['receivedAt']<a['receivedAtStart'])return![];}if(a['receivedAtEnd']!==void 0x0){if(n['receivedAt']===void 0x0||n['receivedAt']>a['receivedAtEnd'])return![];}if(a['serverTimestampStart']!==void 0x0){if(n['serverTimestamp']===void 0x0||n['serverTimestamp']<a['serverTimestampStart'])return![];}if(a['serverTimestampEnd']!==void 0x0){if(n['serverTimestamp']===void 0x0||n['serverTimestamp']>a['serverTimestampEnd'])return![];}if(a['decryptedOnly']&&!n['plaintext'])return![];if(a['confirmedOnly']&&n['status']!=='confirmed')return![];if(a['arkConfirmedOnly']){if(!n['arkConfirmed'])return![];}if(a['proofedOnly']){if(!n['proof'])return![];}if(a['arkTimestampStart']!==void 0x0){if(n['arkConfirmed']===void 0x0||n['arkConfirmed']['timestamp']<a['arkTimestampStart'])return![];}if(a['arkTimestampEnd']!==void 0x0){if(n['arkConfirmed']===void 0x0||n['arkConfirmed']['timestamp']>a['arkTimestampEnd'])return![];}if(a['hasLastReceivedIndexOnly']){if(n['lastReceivedLeafIndex']===void 0x0||n['lastReceivedLeafIndex']===null)return![];}if(a['lastReceivedIndexMin']!==void 0x0){if(n['lastReceivedLeafIndex']===void 0x0||n['lastReceivedLeafIndex']<a['lastReceivedIndexMin'])return![];}if(a['lastReceivedIndexMax']!==void 0x0){if(n['lastReceivedLeafIndex']===void 0x0||n['lastReceivedLeafIndex']>a['lastReceivedIndexMax'])return![];}if(a['keyword']&&n['plaintext']){if(!n['plaintext']['toLowerCase']()['includes'](a['keyword']['toLowerCase']()))return![];}if(a['listFilterMode']&&a['listFilterMode']!=='any'){const w=this['findAccount'](n['toAddress']);if(!w)return![];const x=n['fromAddress']['toLowerCase'](),y=w['contactLists'],z=new Set(y['friends']['map'](E=>E['toLowerCase']())),A=new Set(y['guards']['map'](E=>E['guardAddress']['toLowerCase']())),B=z['has'](x),C=A['has'](x),D=!B&&!C;switch(a['listFilterMode']){case'friends':if(!B)return![];break;case'guard':if(!C)return![];break;case'stranger':if(!D)return![];break;}if(a['customListFilter']){const {includeAddresses:E,excludeAddresses:F,relation:relation='union'}=a['customListFilter'];if(F){if(new Set(F['map'](G=>G['toLowerCase']()))['has'](x))return![];}if(E&&E['length']>0x0){const G=new Set(E['map'](H=>H['toLowerCase']()))['has'](x);if(relation==='union'){const H=a['listFilterMode']==='friends'&&B||a['listFilterMode']==='guard'&&C||a['listFilterMode']==='stranger'&&D;if(!G&&!H)return![];}else{if(!G)return![];}}}}if(a['viewed']!==void 0x0){const I=n['viewedAt']!==void 0x0;if(a['viewed']!==I)return![];}if(a['viewedAtStart']!==void 0x0){if(n['viewedAt']===void 0x0||n['viewedAt']<a['viewedAtStart'])return![];}if(a['viewedAtEnd']!==void 0x0){if(n['viewedAt']===void 0x0||n['viewedAt']>a['viewedAtEnd'])return![];}return!![];});}const c=a?.['sortOrder']??'desc',d=a?.['timeField']||'createdAt';b['sort']((n,o)=>{const p=n[d]||0x0,q=o[d]||0x0;return c==='asc'?p-q:q-p;});const {MAX_QUERY_LIMIT:e}=await import('./w/messenger/types.mjs'),f=this['config']['defaultQueryLimit']??0x32,g=Math['min'](a?.['limit']??f,e),h=a?.['offset']??0x0;return b=b['slice'](h,h+g),b;}['startPolling'](){if(this['isWatching'])return;this['isWatching']=!![];}['stopPolling'](){this['isWatching']=![];}['onMessage'](a){this['messageListeners']['add'](a);}['offMessage'](a){this['messageListeners']['delete'](a);}['destroy'](){this['stop'](),this['messageListeners']['clear']();}async['syncContactLists'](a){const b=this['findAccount'](a);if(!b)return{'success':![],'friends':[],'guards':[],'error':'Account\x20not\x20found:\x20'+a};try{const [c,d]=await Promise['all']([b['messenger']['getFriendsList'](),b['messenger']['getGuardList']()]),e=d['currentGuardList']||[];return b['contactLists']={'friends':c,'guards':e,'lastUpdatedAt':Date['now']()},{'success':!![],'friends':c,'guards':e};}catch(f){return{'success':![],'friends':b['contactLists']['friends'],'guards':b['contactLists']['guards'],'error':f instanceof Error?f['message']:String(f)};}}async['syncAllContactLists'](){const a=new Map();for(const b of this['accounts']['values']()){const c=await this['syncContactLists'](b['address']);a['set'](b['address'],c);}return a;}['getContactLists'](a){return this['findAccount'](a)?.['contactLists'];}['setContactLists'](a,b){const c=this['findAccount'](a);if(!c)return![];return c['contactLists']={...c['contactLists'],...b,'lastUpdatedAt':Date['now']()},!![];}['isStranger'](a,b){const c=this['findAccount'](a);if(!c)return!![];const d=b['toLowerCase'](),e=c['contactLists'],f=e['friends']['some'](h=>h['toLowerCase']()===d),g=e['guards']['some'](h=>h['guardAddress']['toLowerCase']()===d);return!f&&!g;}['recordGuardSender'](a,b){const c=this['findAccount'](a);if(!c)return![];const d=b['toLowerCase']();return!c['contactLists']['guards']['some'](e=>e['guardAddress']['toLowerCase']()===d)&&(c['contactLists']['guards']['push']({'guardAddress':b,'passportValiditySeconds':0x15180}),c['contactLists']['lastUpdatedAt']=Date['now']()),!![];}['generateNonce'](){return generateNonce();}async['watch_paginated'](a){const {MAX_QUERY_LIMIT:b}=await import('./w/messenger/types.mjs'),c=await this['watch'](a),d=c['length'],e=this['config']['defaultQueryLimit']??0x32,f=Math['min'](a?.['limit']??e,b),g=a?.['offset']??0x0;return{'messages':c['slice'](g,g+f),'total':d,'offset':g,'limit':f};}async['get_conversations'](a){const b=a?{'account':a}:void 0x0,c=await this['watch'](b),d=new Map();for(const e of c){const f=a?.['toLowerCase'](),g=e['fromAddress']['toLowerCase']()===f?e['toAddress']:e['fromAddress'];if(!d['has'](g))d['set'](g,{'peerAddress':g,'lastMessageAt':e['createdAt'],'messageCount':0x0,'unreadCount':0x0,'lastMessagePreview':e['plaintext']});const h=d['get'](g);h['messageCount']++;e['createdAt']>h['lastMessageAt']&&(h['lastMessageAt']=e['createdAt'],h['lastMessagePreview']=e['plaintext']);if(e['status']!=='read'&&e['toAddress']['toLowerCase']()===f)h['unreadCount']++;}return Array['from'](d['values']())['sort']((i,j)=>j['lastMessageAt']-i['lastMessageAt']);}async['generate_wts'](a,b,c,d,e){const f=await import('fs'),g=await import('path'),h=b['toLowerCase'](),k=c['toLowerCase']();let l=new MessageStorage(h)['getAllMessages'](h)['filter'](u=>{const v=u['fromAddress']['toLowerCase'](),w=u['toAddress']['toLowerCase']();return v===h&&w===k||v===k&&w===h;});l=l['filter'](u=>u['leafIndex']!==void 0x0&&u['serverTimestamp']!==void 0x0)['reduce']((u,v)=>{if(!u['find'](w=>w['messageId']===v['messageId']))u['push'](v);return u;},[])['sort']((u,v)=>{const w=u['serverTimestamp']-v['serverTimestamp'];if(w!==0x0)return w;return u['leafIndex']-v['leafIndex'];});if(d)switch(d['type']){case'time':{const u=Math['min'](d['start'],d['end']),v=Math['max'](d['start'],d['end']);l=l['filter'](w=>w['createdAt']>=u&&w['createdAt']<=v);break;}case'messageId':{const w=d['start'],x=d['end'];l=l['filter'](y=>y['messageId']>=w&&y['messageId']<=x);break;}case'seqIndex':{const y=Math['min'](d['start'],d['end']),z=Math['max'](d['start'],d['end']);l=l['filter'](A=>A['leafIndex']>=y&&A['leafIndex']<=z);break;}}if(l['length']===0x0)throw new MessengerError('INVALID_INPUT','No\x20messages\x20found\x20for\x20the\x20given\x20criteria');const m=l['map'](A=>A['leafIndex'])['filter'](A=>A!==void 0x0)['sort']((A,B)=>A-B),n=[];for(let A=0x1;A<m['length'];A++){const B=m[A-0x1]+0x1,C=m[A];if(C!==B){for(let D=B;D<C;D++)n['push'](D);}}if(n['length']>0x0){}if(l['length']>0x1f4)throw new MessengerError('INVALID_INPUT','Message\x20count\x20('+l['length']+')\x20exceeds\x20maximum\x20allowed\x20(500)');if(!f['existsSync'](a))f['mkdirSync'](a,{'recursive':!![]});const o=h['slice'](0x0,0x6)+'_'+k['slice'](0x0,0x6),p=[];let q=[];for(let E=0x0;E<l['length'];E++){const F=l[E];if(q['length']===0x0)q['push'](F);else{const G=q[q['length']-0x1]['leafIndex']+0x1;if(q['length']>=0x1f4||F['leafIndex']!==G)p['push'](q),q=[F];else q['push'](F);}}if(q['length']>0x0)p['push'](q);p['forEach']((H,I)=>{H['map'](J=>J['leafIndex'])['join'](',\x20');});const r=[];for(const H of p){const I=H['map'](Z=>Z['leafIndex'])['filter'](Z=>Z!==void 0x0),J=Math['min'](...I),K=Math['max'](...I),L=H[0x0]['createdAt'],M=H[H['length']-0x1]['createdAt'];for(const Z of H){if(Z['serverTimestamp']===void 0x0)throw new MessengerError('INVALID_INPUT','Message\x20'+Z['messageId']+'\x20missing\x20serverTimestamp');if(Z['leafIndex']===void 0x0)throw new MessengerError('INVALID_INPUT','Message\x20'+Z['messageId']+'\x20missing\x20leafIndex');if(!Z['prevRoot'])throw new MessengerError('INVALID_INPUT','Message\x20'+Z['messageId']+'\x20missing\x20prevRoot');if(!Z['newRoot'])throw new MessengerError('INVALID_INPUT','Message\x20'+Z['messageId']+'\x20missing\x20newRoot');if(!Z['serverSignature'])throw new MessengerError('INVALID_INPUT','Message\x20'+Z['messageId']+'\x20missing\x20serverSignature');}const N=H['map'](a0=>{const a1={'id':a0['messageId'],'from':a0['fromAddress'],'to':a0['toAddress'],'plaintextHash':a0['plaintextHash'],'clientTimestamp':a0['createdAt'],'timestamp':a0['serverTimestamp'],'leafIndex':a0['leafIndex'],'prevRoot':a0['prevRoot'],'merkleRoot':a0['newRoot'],'serverSignature':a0['serverSignature'],'serverPublicKeyIndex':0x0,'msgType':a0['msgType']};if(!e&&a0['plaintext']!==void 0x0)a1['plaintext']=a0['plaintext'];if(a0['guardAddress']!==void 0x0)a1['guardAddress']=a0['guardAddress'];if(a0['passportAddress']!==void 0x0)a1['passportAddress']=a0['passportAddress'];if(a0['arkConfirmed']!==void 0x0)a1['arkConfirmed']={'recipient':a0['arkConfirmed']['recipient'],'recipientPublicKey':a0['arkConfirmed']['recipientPublicKey'],'signature':a0['arkConfirmed']['signature'],'timestamp':a0['arkConfirmed']['timestamp']};if(a0['zipMetadata']!==void 0x0)a1['zipMetadata']=a0['zipMetadata'];if(a0['lastReceivedLeafIndex']!==void 0x0&&a0['lastReceivedLeafIndex']!==-0x1)a1['lastReceivedLeafIndex']=a0['lastReceivedLeafIndex'];return a1;}),O={'participants':[h,k]['sort']()},P=[],Q=new Map();for(const a0 of N){const a1=H['find'](a3=>a3['messageId']===a0['id'])?.['serverPublicKey']||'';if(!a1)continue;let a2=Q['get'](a1);a2===void 0x0&&(a2=P['length'],Q['set'](a1,a2),P['push']({'publicKey':a1,'validFrom':0x0})),a0['serverPublicKeyIndex']=a2;}const R={'session':O,'messages':N},{sha256:S}=await import('@noble/hashes/sha2.js'),{bytesToHex:T}=await import('@noble/hashes/utils.js'),U={'wts':WTS_SCHEMA_URL,...R},V=T(S(new TextEncoder()['encode'](a32e(U)))),W={'wts':WTS_SCHEMA_URL,'payload':R,'meta':{'type':'wts','version':'1.0','created':new Date()['toISOString'](),'hash':V,'algorithm':'sha256','startTime':L,'endTime':M,'messageCount':N['length'],'merkleRoot':N[N['length']-0x1]['merkleRoot'],'creator':h,'participant':k,'serverPublicKeys':P}},X=o+'_'+J+'-'+K+'.wts',Y=g['join'](a,X);f['writeFileSync'](Y,JSON['stringify'](W,null,0x2)),r['push'](Y);}const s=l[0x0]?.['createdAt']||0x0,t=l[l['length']-0x1]?.['createdAt']||0x0;return{'files':r,'totalMessageCount':l['length'],'timeRange':{'start':s,'end':t}};}async['addToBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToBlacklist'](b);}async['removeFromBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromBlacklist'](b);}async['clearBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearBlacklist']();}async['getBlacklist'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getBlacklist']();}async['existInBlacklist'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInBlacklist'](b);}async['addToFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToFriendsList'](b);}async['removeFromFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromFriendsList'](b);}async['clearFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['clearFriendsList']();}async['getFriendsList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getFriendsList']();}async['existInFriendsList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['existInFriendsList'](b);}async['addToGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['addToGuardList'](b);}async['removeFromGuardList'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['removeFromGuardList'](b);}async['getGuardList'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getGuardList']();}async['getSettings'](a){const b=this['findAccount'](a);if(!b)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return b['messenger']['getSettings']();}async['setSettings'](a,b){const c=this['findAccount'](a);if(!c)throw new MessengerError('ACCOUNT_NOT_FOUND','Account\x20'+a+'\x20not\x20in\x20managed\x20accounts');return c['messenger']['setSettings'](b);}};function escapeHtml(a){if(!a)return'';return a['replace'](/&/g,'&amp;')['replace'](/</g,'&lt;')['replace'](/>/g,'&gt;')['replace'](/"/g,'&quot;')['replace'](/'/g,'&#039;');}function formatFileSize(a){if(a<0x400)return a+'\x20B';if(a<0x400*0x400)return(a/0x400)['toFixed'](0x1)+'\x20KB';return(a/(0x400*0x400))['toFixed'](0x1)+'\x20MB';}function isNonTextMessage(a){return!!a['zipMetadata'];}function getFileTypeLabel(a){if(a['zipMetadata']?.['contentType'])return a['zipMetadata']['contentType']['toUpperCase']();const b=a['zipMetadata']?.['fileName']||'';if(b['endsWith']('.wts'))return'WTS';if(b['endsWith']('.wip'))return'WIP';if(b['endsWith']('.zip'))return'ZIP';if(b['endsWith']('.json'))return'JSON';if(b['endsWith']('.txt'))return'TXT';if(a['zipMetadata'])return'ZIP';return'FILE';}function getThemeColors(a){return{'bgColor':a==='dark'?'#1a1a1a':'#ffffff','textColor':a==='dark'?'#e0e0e0':'#333333','borderColor':a==='dark'?'#444444':'#e0e0e0'};}function getMessageColors(a,b){if(b)return{'bgColor':a==='dark'?'#1a365d':'#e3f2fd','borderColor':a==='dark'?'#3b82f6':'#90caf9'};else return{'bgColor':a==='dark'?'#1e3a2f':'#e8f5e9','borderColor':a==='dark'?'#10b981':'#a5d6a7'};}function generateFileButton(a,b,c){if(!a['plaintext']||!a['zipMetadata']?.['fileName'])return'';const d=a['zipMetadata']['fileName'],e=a['plaintext'],f=a['zipMetadata']['fileSize']||0x0,g=getFileTypeLabel(a),h=c==='dark'?'#2a3f2a':'#e8f5e9',i=c==='dark'?'#4caf50':'#4caf50',j=c==='dark'?'#81c784':'#2e7d32',k='#4caf50';return'\x0a\x09\x09<div\x20style=\x22margin:\x2012px\x200;\x20padding:\x2016px;\x20background:\x20'+h+';\x20border:\x201px\x20solid\x20'+i+';\x20border-radius:\x208px;\x20text-align:\x20center;\x22>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2014px;\x20color:\x20'+j+';\x20margin-bottom:\x208px;\x22>\x0a\x09\x09\x09\x09📎\x20'+escapeHtml(g)+'\x20File\x0a\x09\x09\x09\x09<span\x20style=\x22font-size:\x2012px;\x20color:\x20#666;\x22>('+formatFileSize(f)+')</span>\x0a\x09\x09\x09</div>\x0a\x09\x09\x09<button\x20\x0a\x09\x09\x09\x09onclick=\x22saveFile'+b+'()\x22\x0a\x09\x09\x09\x09style=\x22padding:\x2010px\x2024px;\x20background:\x20'+k+';\x20color:\x20white;\x20border:\x20none;\x20border-radius:\x204px;\x20cursor:\x20pointer;\x20font-size:\x2014px;\x22\x0a\x09\x09\x09\x09onmouseover=\x22this.style.background=\x27#45a049\x27\x22\x0a\x09\x09\x09\x09onmouseout=\x22this.style.background=\x27'+k+'\x27\x22\x0a\x09\x09\x09>\x0a\x09\x09\x09\x09💾\x20Save\x20'+escapeHtml(d)+'\x0a\x09\x09\x09</button>\x0a\x09\x09</div>\x0a\x09\x09<script>\x0a\x09\x09\x09function\x20saveFile'+b+'()\x20{\x0a\x09\x09\x09\x09try\x20{\x0a\x09\x09\x09\x09\x09const\x20base64Data\x20=\x20'+JSON['stringify'](e)+';\x0a\x09\x09\x09\x09\x09const\x20byteCharacters\x20=\x20atob(base64Data);\x0a\x09\x09\x09\x09\x09const\x20byteNumbers\x20=\x20new\x20Array(byteCharacters.length);\x0a\x09\x09\x09\x09\x09for\x20(let\x20i\x20=\x200;\x20i\x20<\x20byteCharacters.length;\x20i++)\x20{\x0a\x09\x09\x09\x09\x09\x09byteNumbers[i]\x20=\x20byteCharacters.charCodeAt(i);\x0a\x09\x09\x09\x09\x09}\x0a\x09\x09\x09\x09\x09const\x20byteArray\x20=\x20new\x20Uint8Array(byteNumbers);\x0a\x09\x09\x09\x09\x09\x0a\x09\x09\x09\x09\x09let\x20mimeType\x20=\x20\x22application/octet-stream\x22;\x0a\x09\x09\x09\x09\x09const\x20fileName\x20=\x20'+JSON['stringify'](d)+';\x0a\x09\x09\x09\x09\x09if\x20(fileName.endsWith(\x27.json\x27))\x20mimeType\x20=\x20\x22application/json\x22;\x0a\x09\x09\x09\x09\x09else\x20if\x20(fileName.endsWith(\x27.zip\x27))\x20mimeType\x20=\x20\x22application/zip\x22;\x0a\x09\x09\x09\x09\x09else\x20if\x20(fileName.endsWith(\x27.txt\x27))\x20mimeType\x20=\x20\x22text/plain\x22;\x0a\x09\x09\x09\x09\x09\x0a\x09\x09\x09\x09\x09const\x20blob\x20=\x20new\x20Blob([byteArray],\x20{\x20type:\x20mimeType\x20});\x0a\x09\x09\x09\x09\x09const\x20url\x20=\x20URL.createObjectURL(blob);\x0a\x09\x09\x09\x09\x09const\x20a\x20=\x20document.createElement(\x22a\x22);\x0a\x09\x09\x09\x09\x09a.href\x20=\x20url;\x0a\x09\x09\x09\x09\x09a.download\x20=\x20fileName;\x0a\x09\x09\x09\x09\x09document.body.appendChild(a);\x0a\x09\x09\x09\x09\x09a.click();\x0a\x09\x09\x09\x09\x09document.body.removeChild(a);\x0a\x09\x09\x09\x09\x09URL.revokeObjectURL(url);\x0a\x09\x09\x09\x09}\x20catch\x20(e)\x20{\x0a\x09\x09\x09\x09\x09alert(\x27保存文件失败:\x20\x27\x20+\x20e.message);\x0a\x09\x09\x09\x09}\x0a\x09\x09\x09}\x0a\x09\x09</script>\x0a\x09';}function generateMessageHtml(a,b,c){const {theme:d,borderColor:e,myAddress:f,maxLastReceivedLeafIndex:g}=c,h=isNonTextMessage(a),i=a['from']['toLowerCase']()===f['toLowerCase'](),j=i&&g>=0x0&&a['leafIndex']<=g,k=getMessageColors(d,i),l=d==='dark'?'#333333':'#ffffff';let m='';if(h)m=generateFileButton(a,b,d);else{if(a['plaintext'])m='<div\x20style=\x22margin:\x2012px\x200;\x20padding:\x2012px;\x20background:\x20'+l+';\x20border:\x201px\x20solid\x20'+e+';\x20border-radius:\x204px;\x20font-size:\x2014px;\x20line-height:\x201.6;\x20max-height:\x20calc(1.6em\x20*\x206);\x20overflow-y:\x20auto;\x20white-space:\x20pre-wrap;\x20word-break:\x20break-word;\x22>'+escapeHtml(a['plaintext'])+'</div>';}const n=['<div>Merkle\x20Root:\x20'+escapeHtml(a['merkleRoot'])+'</div>',a['arkConfirmed']?'<div>ARK\x20Confirmed:\x20'+escapeHtml(a['arkConfirmed']['recipient'])+'\x20at\x20'+new Date(a['arkConfirmed']['timestamp'])['toLocaleString']()+'</div>':'',a['guardAddress']?'<div>Guard:\x20'+escapeHtml(a['guardAddress'])+'</div>':'',a['passportAddress']?'<div>Passport:\x20'+escapeHtml(a['passportAddress'])+'</div>':'']['filter'](Boolean)['join']('');return'\x0a\x09\x09<div\x20style=\x22margin:\x2016px\x200;\x20padding:\x2016px;\x20border:\x201px\x20solid\x20'+k['borderColor']+';\x20border-radius:\x208px;\x20background:\x20'+k['bgColor']+';\x22>\x0a\x09\x09\x09<div\x20style=\x22display:\x20flex;\x20justify-content:\x20space-between;\x20margin-bottom:\x208px;\x20font-size:\x2012px;\x20color:\x20#666;\x22>\x0a\x09\x09\x09\x09<span>From:\x20'+escapeHtml(a['from']['slice'](0x0,0x6))+'...'+escapeHtml(a['from']['slice'](-0x3))+'\x20To:\x20'+escapeHtml(a['to']['slice'](0x0,0x6))+'...'+escapeHtml(a['to']['slice'](-0x3))+'</span>\x0a\x09\x09\x09\x09<span>'+new Date(a['timestamp'])['toLocaleString']()+'</span>\x0a\x09\x09\x09</div>\x0a\x09\x09\x09'+m+'\x0a\x09\x09\x09<div\x20style=\x22margin:\x208px\x200;\x20font-size:\x2011px;\x20color:\x20#666;\x22>\x0a\x09\x09\x09\x09'+n+'\x0a\x09\x09\x09</div>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2011px;\x20color:\x20#888;\x20margin-top:\x208px;\x20padding-top:\x208px;\x20border-top:\x201px\x20solid\x20'+e+';\x20display:\x20flex;\x20justify-content:\x20space-between;\x20align-items:\x20center;\x22>\x0a\x09\x09\x09\x09<div>Leaf\x20Index:\x20'+a['leafIndex']+'</div>\x0a\x09\x09\x09\x09'+(j?'<span\x20style=\x22color:\x20#4caf50;\x22>Delivered\x20&\x20Decrypted</span>':'')+'\x0a\x09\x09\x09</div>\x0a\x09\x09</div>\x0a\x09';}function generateSignatureHtml(a,b,c){if(!a['signatures']||a['signatures']['length']===0x0)return'';const d=a['valid'],e=d?b==='dark'?'#2a3f2a':'#e8f5e9':b==='dark'?'#3a2a2a':'#fff3e0',f=d?b==='dark'?'#81c784':'#2e7d32':b==='dark'?'#ffab40':'#e65100',g=a['signatures']['map']((h,i)=>'\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2010px;\x20color:\x20'+c+';\x20margin-left:\x208px;\x22>\x0a\x09\x09\x09\x09'+(i+0x1)+'.\x20'+(h['address']?escapeHtml(h['address']['slice'](0x0,0x6))+'...'+escapeHtml(h['address']['slice'](-0x3)):'Unknown')+':\x0a\x09\x09\x09\x09'+(h['valid']?'<span\x20style=\x22color:\x20#4caf50;\x22>✓\x20Valid</span>':'<span\x20style=\x22color:\x20#f44336;\x22>✗\x20Invalid</span>')+'\x0a\x09\x09\x09</div>\x0a\x09\x09')['join']('');return'\x0a\x09\x09<div\x20style=\x22margin-top:\x208px;\x20padding:\x208px;\x20background:\x20'+e+';\x20border-radius:\x204px;\x22>\x0a\x09\x09\x09<div\x20style=\x22font-size:\x2011px;\x20color:\x20'+f+';\x20margin-bottom:\x204px;\x22>\x0a\x09\x09\x09\x09'+(d?'✓':'⚠')+'\x20Signature\x20Verification\x20('+a['signatures']['length']+'\x20signature'+(a['signatures']['length']>0x1?'s':'')+')'+(d?'':'\x20(signature\x20valid\x20but\x20content\x20hash\x20verification\x20failed)')+'\x0a\x09\x09\x09</div>\x0a\x09\x09\x09'+g+'\x0a\x09\x09</div>\x0a\x09';}const MESSAGES_PER_PAGE=0x64;function generateHtmlPage(a){const {title:b,theme:c,bgColor:d,textColor:e,borderColor:f,meta:g,payload:h,verifyResult:i,maxLastReceivedLeafIndex:j}=a,k=h['messages']['length'],l=Math['ceil'](k/MESSAGES_PER_PAGE),m=[];for(let s=0x0;s<l;s++){const t=s*MESSAGES_PER_PAGE,u=Math['min'](t+MESSAGES_PER_PAGE,k),v=h['messages']['slice'](t,u)['map']((w,x)=>generateMessageHtml(w,t+x,a))['join']('');m['push']({'pageNum':s+0x1,'html':'<div\x20class=\x22page\x22\x20data-page=\x22'+(s+0x1)+'\x22\x20style=\x22display:\x20'+(s===0x0?'block':'none')+';\x22>'+v+'</div>'});}const n=l>0x1?generatePaginationHtml(l,c,e):'',o=m['map'](w=>w['html'])['join'](''),p=generateSignatureHtml(i,c,e),q=i['valid']?'<span\x20style=\x22color:\x20#4caf50;\x20margin-left:\x208px;\x22>✓\x20The\x20accuracy,\x20sequentiality,\x20and\x20integrity\x20of\x20the\x20messages\x20are\x20verified\x20without\x20tampering</span>':'<span\x20style=\x22color:\x20#ff9800;\x20margin-left:\x208px;\x22>⚠\x20'+(i['error']||'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered')+'</span>',r=j>=0x0?'<div>Delivered\x20&\x20Decrypted\x20Leaf\x20Index:\x20'+j+'\x20(sent\x20messages\x20are\x20only\x20confirmed\x20as\x20decrypted\x20after\x20receiving\x20a\x20reply\x20from\x20the\x20other\x20party)</div>':'';return'<!DOCTYPE\x20html>\x0a<html\x20lang=\x22en\x22>\x0a<head>\x0a\x20\x20\x20\x20<meta\x20charset=\x22UTF-8\x22>\x0a\x20\x20\x20\x20<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0\x22>\x0a\x20\x20\x20\x20<title>'+escapeHtml(b)+'</title>\x0a\x20\x20\x20\x20<style>\x0a\x20\x20\x20\x20\x20\x20\x20\x20body\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x22Segoe\x20UI\x22,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20800px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin:\x200\x20auto;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2020px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+d+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20'+e+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.header\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-bottom:\x202px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding-bottom:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-bottom:\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.meta\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.note\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2011px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x2012px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#2a2a2a':'#f5f5f5')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-style:\x20italic;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20gap:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20margin-top:\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-top:\x201px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x208px\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20'+f+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#333':'#fff')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20'+e+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x204px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button:hover:not(:disabled)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20'+(c==='dark'?'#444':'#f0f0f0')+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20button:disabled\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20opacity:\x200.5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20not-allowed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.pagination\x20.page-info\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2014px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20.page\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20animation:\x20fadeIn\x200.3s\x20ease-in;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20@keyframes\x20fadeIn\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20from\x20{\x20opacity:\x200;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20to\x20{\x20opacity:\x201;\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20</style>\x0a</head>\x0a<body>\x0a\x20\x20\x20\x20<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<h1>Witness\x20Timestamped\x20Sequence</h1>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22note\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Important\x20Note:\x20This\x20page\x20is\x20for\x20message\x20browsing\x20and\x20verification\x20reference\x20only.\x20Please\x20verify\x20whether\x20the\x20message\x20sequence\x20has\x20been\x20tampered\x20with\x20through\x20the\x20\x27verify_wts\x27\x20API\x20using\x20the\x20WTS\x20file.\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2014px;\x20color:\x20#666;\x20margin-top:\x204px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+new Date(g['startTime'])['toLocaleDateString']()+'\x20-\x20'+new Date(g['endTime'])['toLocaleDateString']()+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+q+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22meta\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div>Messages:\x20'+g['messageCount']+'\x20|\x20Time:\x20'+new Date(g['startTime'])['toLocaleString']()+'\x20-\x20'+new Date(g['endTime'])['toLocaleString']()+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22word-break:\x20break-all;\x22>Merkle\x20Root:\x20'+escapeHtml(g['merkleRoot'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+r+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20'+(c==='dark'?'#3b82f6':'#1976d2')+';\x22>Creator:\x20'+escapeHtml(g['creator'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22color:\x20'+(c==='dark'?'#10b981':'#2e7d32')+';\x22>Participant:\x20'+escapeHtml(g['participant'])+'</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+p+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20<div\x20id=\x22messages-container\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20'+o+'\x0a\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20'+n+'\x0a\x20\x20\x20\x20<script>\x0a\x20\x20\x20\x20\x20\x20\x20\x20(function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20currentPage\x20=\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20totalPages\x20=\x20'+l+';\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20showPage(pageNum)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20隐藏所有页面\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelectorAll(\x27.page\x27).forEach(page\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20page.style.display\x20=\x20\x27none\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20显示目标页面\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20targetPage\x20=\x20document.querySelector(\x27.page[data-page=\x22\x27\x20+\x20pageNum\x20+\x20\x27\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(targetPage)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20targetPage.style.display\x20=\x20\x27block\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20currentPage\x20=\x20pageNum;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatePaginationButtons();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20function\x20updatePaginationButtons()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20prevBtn\x20=\x20document.getElementById(\x27prev-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20nextBtn\x20=\x20document.getElementById(\x27next-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20pageInfo\x20=\x20document.getElementById(\x27page-info\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(prevBtn)\x20prevBtn.disabled\x20=\x20currentPage\x20===\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(nextBtn)\x20nextBtn.disabled\x20=\x20currentPage\x20===\x20totalPages;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(pageInfo)\x20pageInfo.textContent\x20=\x20\x27Page\x20\x27\x20+\x20currentPage\x20+\x20\x27\x20of\x20\x27\x20+\x20totalPages;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20绑定按钮事件\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20prevBtn\x20=\x20document.getElementById(\x27prev-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20nextBtn\x20=\x20document.getElementById(\x27next-btn\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(prevBtn)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20prevBtn.addEventListener(\x27click\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(currentPage\x20>\x201)\x20showPage(currentPage\x20-\x201);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(nextBtn)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20nextBtn.addEventListener(\x27click\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(currentPage\x20<\x20totalPages)\x20showPage(currentPage\x20+\x201);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20初始化\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updatePaginationButtons();\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x20\x20\x20\x20</script>\x0a</body>\x0a</html>';}function generatePaginationHtml(a,b,c){return'\x0a\x20\x20\x20\x20<div\x20class=\x22pagination\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22prev-btn\x22\x20disabled>←\x20Previous</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<span\x20class=\x22page-info\x22\x20id=\x22page-info\x22>Page\x201\x20of\x20'+a+'</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22next-btn\x22\x20'+(a<=0x1?'disabled':'')+'>Next\x20→</button>\x0a\x20\x20\x20\x20</div>';}const logger=a32c('messenger:api');let managerInstance=null,isInitialized=![],backgroundTimer=null;async function autoRegisterMessengerAccounts(){const a=await Account['Instance']()['list_messenger_accounts']();for(const b of a){if(!b['address']||!b['m'])continue;try{await new a32f(b['address'])['initialize']();}catch(c){logger['error']('Failed\x20to\x20initialize\x20account\x20'+b['address']+':',c);}}}function getMessengerManager(){if(!managerInstance)managerInstance=new MessengerManager();return!isInitialized&&(isInitialized=!![],autoRegisterMessengerAccounts()['then'](()=>{return managerInstance['start']();})['catch'](a=>{return logger['error']('Failed\x20to\x20auto-register\x20messenger\x20accounts:',a),managerInstance['start']();})['catch'](a=>{logger['error']('Failed\x20to\x20auto-start\x20messenger\x20manager:',a);})),managerInstance;}function registerCleanupHandler(){const a=()=>{backgroundTimer&&(clearInterval(backgroundTimer),backgroundTimer=null);if(managerInstance)managerInstance['stop']();};process['on']('exit',a),process['on']('SIGINT',()=>{a(),process['exit']();}),process['on']('SIGTERM',()=>{a(),process['exit']();});}registerCleanupHandler();async function watch_conversations(a){const b=await Account['Instance']()['get_address'](a?.['account']);if(!b)a32b('account\x20not\x20found','watch_conversations.account\x20'+a?.['account']);const c=b['toLowerCase']();await(await getMessengerManager()['ensureAccountReady'](b))['messenger']['pullMessages']();const d=new MessageStorage(c),e=d['getAllMessages'](c),f=new Map(),g=a?.['previewMessageCount']??0x2,h=a?.['skipAutoMarkViewed']??![];for(const l of e){const m=l['fromAddress']['toLowerCase']()===c?l['toAddress']:l['fromAddress'];if(!f['has'](m))f['set'](m,{'peerAddress':m,'lastMessageAt':l['createdAt'],'messageCount':0x0,'unreadCount':0x0,'lastMessagePreview':l['plaintext'],'messages':[]});const n=f['get'](m);n['messages']['push'](l),n['messageCount']++;l['createdAt']>n['lastMessageAt']&&(n['lastMessageAt']=l['createdAt'],n['lastMessagePreview']=l['plaintext']);if(l['direction']==='received'&&l['viewedAt']===void 0x0)n['unreadCount']++;}const i=[];for(const [,o]of f){if(a?.['startTime']!==void 0x0&&o['lastMessageAt']<a['startTime'])continue;if(a?.['endTime']!==void 0x0&&o['lastMessageAt']>a['endTime'])continue;if(a?.['unreadOnly']&&o['unreadCount']===0x0)continue;const p=[];if(g>0x0){const q=o['messages']['sort']((r,s)=>s['createdAt']-r['createdAt'])['slice'](0x0,g);p['push'](...q['reverse']());if(!h){const r=q['filter'](s=>s['direction']==='received'&&s['viewedAt']===void 0x0)['map'](s=>s['messageId']);if(r['length']>0x0)d['updateMessagesViewed'](r);}}i['push']({'peerAddress':o['peerAddress'],'lastMessageAt':o['lastMessageAt'],'messageCount':o['messageCount'],'unreadCount':o['unreadCount'],'lastMessagePreview':o['lastMessagePreview'],...g>0x0&&{'previewMessages':p}});}const j=a?.['sortBy']??'lastMessageAt',k=a?.['sortOrder']??'desc';return i['sort']((s,t)=>{let u=0x0;switch(j){case'lastMessageAt':u=s['lastMessageAt']-t['lastMessageAt'];break;case'unreadCount':u=s['unreadCount']-t['unreadCount'];break;case'messageCount':u=s['messageCount']-t['messageCount'];break;}return k==='asc'?u:-u;}),i;}async function mark_messages_as_viewed(a,b){if(!a||a['length']===0x0)return 0x0;const c=await Account['Instance']()['get_address'](b);if(!c)a32b('account\x20not\x20found','mark_messages_as_viewed.account\x20'+b);return new MessageStorage(c['toLowerCase']())['updateMessagesViewed'](a);}async function mark_conversation_as_viewed(a,b){const c=await Account['Instance']()['get_address'](b);if(!c)a32b('account\x20not\x20found','mark_conversation_as_viewed.account\x20'+b);const d=c['toLowerCase'](),e=await GetAccountOrMark_Address(a);if(!e)a32b('account\x20not\x20found','mark_conversation_as_viewed.peerAddress\x20'+a+'\x20is\x20not\x20a\x20valid\x20account/address');const f=e['toLowerCase'](),g=new MessageStorage(d),h=g['getMessagesBySession'](d,f)['filter'](i=>i['direction']==='received'&&i['viewedAt']===void 0x0)['map'](i=>i['messageId']);if(h['length']===0x0)return 0x0;return g['updateMessagesViewed'](h);}async function send_message(a,b,c,d){const e=await Account['Instance']()['get_address'](a);if(!e)a32b('account\x20not\x20found','send_message.from\x20'+a);const f=await GetAccountOrMark_Address(b);if(!f)a32b('account\x20not\x20found','send_message.to\x20'+b+'\x20is\x20not\x20a\x20valid\x20account/address');if(d?.['guardAddress']!=null&&d?.['passportAddress']!=null){[d['guardAddress'],d['passportAddress']]=await LocalMark['Instance']()['get_many_address']([d['guardAddress'],d['passportAddress']]);if(!d['guardAddress']||!d['passportAddress'])a32b('account\x20not\x20found','send_message.guardAddress\x20or\x20passportAddress\x20not\x20found');}return getMessengerManager()['send'](e,f,c,d);}async function send_file(a,b,c,d){const e=await Account['Instance']()['get_address'](a);if(!e)a32b('account\x20not\x20found','send_file.from\x20'+a);const f=await GetAccountOrMark_Address(b);if(!f)a32b('account\x20not\x20found','send_file.to\x20'+b+'\x20is\x20not\x20a\x20valid\x20account/address');if(d?.['guardAddress']!=null&&d?.['passportAddress']!=null){[d['guardAddress'],d['passportAddress']]=await LocalMark['Instance']()['get_many_address']([d['guardAddress'],d['passportAddress']]);if(!d['guardAddress']||!d['passportAddress'])a32b('account\x20not\x20found','send_file.guardAddress\x20or\x20passportAddress\x20not\x20found');}return getMessengerManager()['send_file'](e,f,c,d);}async function watch_messages(a){if(a?.['account']!==void 0x0){a['account']=await Account['Instance']()['get_address'](a['account']);if(!a['account'])a32b('account\x20not\x20found','watch_messages.account\x20'+a['account']);}if(a?.['customListFilter']?.['includeAddresses']!=null)a['customListFilter']['includeAddresses']=(await Account['Instance']()['get_many_address'](a['customListFilter']['includeAddresses']))['filter'](c=>c!=null);if(a?.['customListFilter']?.['excludeAddresses']!=null)a['customListFilter']['excludeAddresses']=(await Account['Instance']()['get_many_address'](a['customListFilter']['excludeAddresses']))['filter'](c=>c!=null);const b=await getMessengerManager()['watch'](a);if(!(a?.['skipAutoMarkViewed']??![])&&b['length']>0x0&&a?.['account']){const c=new MessageStorage(a['account']['toLowerCase']()),d=b['filter'](e=>e['direction']==='received'&&e['viewedAt']===void 0x0)['map'](e=>e['messageId']);if(d['length']>0x0)c['updateMessagesViewed'](d);}return b;}async function pull_messages(a,b){const c=await Account['Instance']()['get_address'](a);if(!c)a32b('account\x20not\x20found','pull_messages.account\x20'+a);return(await(await getMessengerManager()['ensureAccountReady'](c))['messenger']['pullMessages'](b))['messages']['map'](d=>d);}async function extract_zip_message(a,b){if(!a['zipMetadata'])throw new MessengerError('INVALID_MESSAGE_TYPE','Message\x20is\x20not\x20a\x20ZIP\x20archive');if(!a['plaintext'])throw new MessengerError('MESSAGE_NOT_DECRYPTED','Message\x20plaintext\x20not\x20available');const c=Buffer['from'](a['plaintext'],'base64');if(a['zipMetadata']?.['fileHash']){const f=createHash('sha256')['update'](c)['digest']('hex'),g=a['zipMetadata']['fileHash']['replace']('0x','');if(f!==g)throw new MessengerError('HASH_MISMATCH','ZIP\x20file\x20hash\x20mismatch:\x20expected\x20'+g+',\x20got\x20'+f);}const d=await extractZipFromPlaintext(a['plaintext']);if(!a32h['existsSync'](b))a32h['mkdirSync'](b,{'recursive':!![]});const e=[];for(const h of d){const i=a32g['join'](b,h['filename']);a32h['writeFileSync'](i,h['content']),e['push'](i);}return e['length']>0x0&&a['zipMetadata']&&(a['zipMetadata']={'fileName':a['zipMetadata']['fileName'],'fileSize':a['zipMetadata']['fileSize'],'fileHash':a['zipMetadata']['fileHash'],'contentType':a['zipMetadata']['contentType'],'localCachePath':e[0x0],'downloadedAt':Date['now']()},new MessageStorage(a['direction']==='sent'?a['fromAddress']:a['toAddress'])['saveMessage'](a)),e[0x0]||'';}async function extractZipFromPlaintext(a){if(!a)throw new MessengerError('INVALID_INPUT','plaintext\x20is\x20empty');const b=Buffer['from'](a,'base64');if(b['length']<0x4||b[0x0]!==0x50||b[0x1]!==0x4b)throw new MessengerError('INVALID_INPUT','Invalid\x20ZIP\x20data:\x20magic\x20bytes\x20mismatch\x20(expected\x20PK,\x20got\x20'+b['slice'](0x0,0x2)['toString']('hex')+')');const {ZipReader:c,BlobReader:d,BlobWriter:e}=await import('@zip.js/zip.js'),f=new c(new d(new Blob([b]))),g=await f['getEntries']();if(g['length']===0x0){await f['close']();throw new MessengerError('INVALID_INPUT','ZIP\x20archive\x20contains\x20no\x20files');}const h=[];for(const i of g)if(!i['directory']){const j=i,k=new e(),l=await j['getData'](k),m=Buffer['from'](await l['arrayBuffer']());h['push']({'filename':i['filename'],'content':m});}return await f['close'](),h;}async function extract_zip_messages(a,b,c){const d=[],f=await Account['Instance']()['get_address'](a);if(!f)throw new MessengerError('INVALID_INPUT','account\x20is\x20required\x20when\x20extracting\x20by\x20message\x20IDs');for(const g of b)try{let h;if(typeof g==='string'){const j=g,k=new MessageStorage(f)['getMessageById'](j);if(!k){logger['error']('Message\x20not\x20found:\x20'+j);continue;}h=k;}else h=g;if(!h['zipMetadata']){logger['error']('Message\x20'+h['messageId']+'\x20is\x20not\x20a\x20ZIP\x20archive');continue;}const i=await extract_zip_message(h,c);d['push'](i);}catch(l){const m=typeof g==='string'?g:g['messageId'];logger['error']('Failed\x20to\x20extract\x20message\x20'+m+':',l);}return d;}async function generate_wts(a){const b=await Account['Instance']()['get_address'](a['myAccount']);if(!b)a32b('account\x20not\x20found','generate_wts.myAccount\x20'+a['myAccount']);const c=await GetAccountOrMark_Address(a['peerAccount']);if(!c)a32b('account\x20not\x20found','generate_wts.peerAccount\x20'+a['peerAccount']);return getMessengerManager()['generate_wts'](a['outputDir'],b,c,a['range'],a['excludePlaintext']);}function load_wts(a){const b=a32h['readFileSync'](a,'utf-8');return JSON['parse'](b);}function save_wts(a,b){const c=a32g['dirname'](b);if(!a32h['existsSync'](c))a32h['mkdirSync'](c,{'recursive':!![]});a32h['writeFileSync'](b,JSON['stringify'](a,null,0x2),'utf-8');}function resolveServerPublicKey(a,b){if(b['serverPublicKeys']&&a['serverPublicKeyIndex']!==void 0x0&&a['serverPublicKeyIndex']>=0x0&&a['serverPublicKeyIndex']<b['serverPublicKeys']['length'])return b['serverPublicKeys'][a['serverPublicKeyIndex']]['publicKey'];const c=a;if(c['serverPublicKey'])return c['serverPublicKey'];return null;}async function verify_wts(a){try{const b=load_wts(a);if(!b['payload']||!b['meta'])return{'valid':![],'error':'Invalid\x20WTS\x20file\x20structure'};if(b['meta']['type']!=='wts')return{'valid':![],'error':'Invalid\x20meta.type:\x20'+b['meta']['type']};const {payload:c,meta:d}=b,e=[...c['messages']]['sort']((m,n)=>{if(m['leafIndex']===void 0x0||n['leafIndex']===void 0x0)return 0x0;return m['leafIndex']-n['leafIndex'];});for(let m=0x0;m<e['length'];m++){const n=e[m];if(!n)return{'valid':![],'error':'Message\x20'+m+':\x20Message\x20is\x20null\x20or\x20undefined'};if(!n['prevRoot'])return{'valid':![],'error':'Message\x20'+m+':\x20Missing\x20prevRoot'};if(!n['merkleRoot'])return{'valid':![],'error':'Message\x20'+m+':\x20Missing\x20merkleRoot'};if(!n['plaintextHash'])return{'valid':![],'error':'Message\x20'+m+':\x20Missing\x20plaintextHash'};if(n['timestamp']===void 0x0||n['timestamp']===null)return{'valid':![],'error':'Message\x20'+m+':\x20Missing\x20timestamp'};if(n['leafIndex']===void 0x0||n['leafIndex']===null)return{'valid':![],'error':'Message\x20'+m+':\x20Missing\x20leafIndex'};const o=verifySingleMerkleRoot(n['prevRoot'],n['merkleRoot'],n['plaintextHash'],n['timestamp'],n['leafIndex']);if(!o['valid'])return{'valid':![],'error':o['error']+'\x20at\x20message\x20'+m+',\x20leafIndex\x20'+n['leafIndex']};if(m>0x0){const p=e[m-0x1];if(n['leafIndex']!==p['leafIndex']+0x1)return{'valid':![],'error':'Merkle\x20chain\x20discontinuity:\x20leafIndex\x20'+p['leafIndex']+'\x20->\x20'+n['leafIndex']+'\x20(expected\x20'+(p['leafIndex']+0x1)+')'};if(n['prevRoot']['toLowerCase']()!==p['merkleRoot']['toLowerCase']())return{'valid':![],'error':'Merkle\x20root\x20mismatch\x20at\x20leafIndex\x20'+n['leafIndex']+':\x20expected\x20prevRoot='+p['merkleRoot']+',\x20got\x20'+n['prevRoot']};}}for(let q=0x0;q<c['messages']['length'];q++){const r=c['messages'][q];if(!r)return{'valid':![],'error':'Message\x20'+q+':\x20Message\x20is\x20null\x20or\x20undefined'};if(!!!r['zipMetadata']){if(!r['plaintextHash']['startsWith']('0x')||r['plaintextHash']['length']!==0x42)return{'valid':![],'error':'Message\x20'+q+':\x20Invalid\x20plaintextHash\x20format'};if(r['plaintext']){if(hashPlaintext(r['plaintext'],r['clientTimestamp'],r['guardAddress'],r['passportAddress'],r['lastReceivedLeafIndex'])['toLowerCase']()!==r['plaintextHash']['toLowerCase']())return{'valid':![],'error':'Message\x20'+q+':\x20Plaintext\x20hash\x20mismatch'};}}const s=resolveServerPublicKey(r,d);if(r['serverSignature']&&s){if(!r['timestamp'])return{'valid':![],'error':'Message\x20'+q+':\x20Missing\x20timestamp\x20for\x20signature\x20verification'};if(!r['merkleRoot'])return{'valid':![],'error':'Message\x20'+q+':\x20Missing\x20merkleRoot\x20for\x20signature\x20verification'};if(!r['prevRoot'])return{'valid':![],'error':'Message\x20'+q+':\x20Missing\x20prevRoot\x20for\x20signature\x20verification'};if(!verifyFalcon512Signature(s,r['prevRoot']+':'+r['merkleRoot']+':'+r['timestamp']+':'+s,r['serverSignature']))return{'valid':![],'error':'Message\x20'+q+':\x20Server\x20signature\x20verification\x20failed'};}}const {sha256:f}=await import('@noble/hashes/sha2.js'),{bytesToHex:g}=await import('@noble/hashes/utils.js'),h={'wts':b['wts'],...c};if(g(f(new TextEncoder()['encode'](a32e(h))))!==d['hash'])return{'valid':![],'error':'Hash\x20mismatch\x20-\x20content\x20has\x20been\x20tampered','hashValid':![],'hasSignature':!!d['signature']};if(d['messageCount']!==c['messages']['length'])return{'valid':![],'error':'messageCount\x20mismatch:\x20meta='+d['messageCount']+',\x20actual='+c['messages']['length'],'hashValid':!![],'hasSignature':!!d['signature']};const j=c['messages'][c['messages']['length']-0x1];if(d['merkleRoot']['toLowerCase']()!==j['merkleRoot']['toLowerCase']())return{'valid':![],'error':'merkleRoot\x20mismatch:\x20meta='+d['merkleRoot']+',\x20lastMessage='+j['merkleRoot'],'hashValid':!![],'hasSignature':!!d['signature']};const k=[];let l;if(d['signature']){const {Falcon512PublicKey:t}=await import('./publickey-CvCDfw_N.mjs')['then'](z=>z['n']),{signature:u,...v}=d,w=g(f(new TextEncoder()['encode'](a32e(v)))),x=Array['isArray'](d['signature'])?d['signature']:[d['signature']];let y=!![];for(const z of x){let A;const B=z['publicKey'];if(B['startsWith']('0x')){const C=Buffer['from'](B['slice'](0x2),'hex');if(C['length']===0x382)A=C['slice'](0x1);else{if(C['length']===0x381)A=C;else{let D;try{D=new t(B['slice'](0x2))['toWowAddress']();}catch{}k['push']({'publicKey':B,'address':D,'valid':![]}),y=![];continue;}}}else try{const E=Buffer['from'](B,'base64');if(E['length']===0x382)A=E['slice'](0x1);else{if(E['length']===0x381)A=E;else{let F;try{F=new t(B)['toWowAddress']();}catch{}k['push']({'publicKey':B,'address':F,'valid':![]}),y=![];continue;}}}catch{A=Buffer['from'](B,'base64');}try{const G=new t(A),H=Uint8Array['from'](Buffer['from'](z['value'],'base64')),I=await G['verify'](new TextEncoder()['encode'](w),H);let J;try{J=G['toWowAddress']();}catch{}k['push']({'publicKey':B,'address':J,'valid':I});if(!I)y=![];}catch{let K;try{K=new t(A)['toWowAddress']();}catch{}k['push']({'publicKey':B,'address':K,'valid':![]}),y=![];}}l=y;if(!l)return{'valid':![],'error':'Signatures\x20from\x20the\x20following\x20addresses\x20are\x20invalid:\x20'+k['filter'](L=>!L['valid']&&L['address'])['map'](L=>L['address'])['join'](',\x20'),'hashValid':!![],'hasSignature':!![],'signatureValid':![],'signatures':k};}return{'valid':!![],'hashValid':!![],'hasSignature':!!d['signature'],'signatureValid':l,'signatures':k['length']>0x0?k:void 0x0};}catch(L){return{'valid':![],'error':'Verification\x20error:\x20'+L,'hashValid':![],'hasSignature':![]};}}async function sign_wts(a,b,c){const d=await verify_wts(a);if(!d['valid'])throw new MessengerError('INVALID_INPUT','WTS\x20file\x20verification\x20failed:\x20'+d['error']);const e=load_wts(a),f=await Account['Instance']()['get_address'](b);if(!f)a32b('account\x20not\x20found','sign_wts.account\x20'+b);const {sha256:g}=await import('@noble/hashes/sha2.js'),{bytesToHex:h}=await import('@noble/hashes/utils.js'),{signature:i,...j}=e['meta'],k=h(g(new TextEncoder()['encode'](a32e(j)))),l=await Account['Instance']()['signData'](f,k);let m;const n=l['publicKey'];if(n['startsWith']('0x')){const s=Buffer['from'](n['slice'](0x2),'hex');if(s['length']===0x382)m=s['slice'](0x1)['toString']('base64');else{if(s['length']===0x381)m=s['toString']('base64');else throw new MessengerError('INVALID_INPUT','Invalid\x20public\x20key\x20length:\x20'+s['length']+',\x20expected\x20897\x20or\x20898\x20bytes');}}else m=n;const o={'value':Buffer['from'](l['signature']['slice'](0x2),'hex')['toString']('base64'),'publicKey':m,'algorithm':'Falcon512','address':l['address']};let p;if(e['meta']['signature']){const t=Array['isArray'](e['meta']['signature'])?[...e['meta']['signature']]:[e['meta']['signature']],u=t['findIndex'](v=>v['publicKey']===m);if(u>=0x0)t[u]=o,p=t;else p=[...t,o];}else p=[o];const q={...e,'meta':{...e['meta'],'signature':p}};let r;if(c)r=c;else{const v=a32g['dirname'](a),w=a32g['extname'](a),x=a32g['basename'](a,w);r=a32g['join'](v,'signed_'+x+w);}return save_wts(q,r),r;}async function wts2html(a,b={}){const c=await import('fs'),d=await import('path');if(c['statSync'](a)['isDirectory']()){const f=c['readdirSync'](a)['filter'](h=>h['endsWith']('.wts'));if(f['length']===0x0)throw new MessengerError('INVALID_INPUT','No\x20.wts\x20files\x20found\x20in\x20directory:\x20'+a);const g=[];for(const h of f){const i=await convertWtsToHtml(d['join'](a,h),b),j=toHtmlFileName(h),k=b['outputPath']?d['join'](b['outputPath'],j):d['join'](a,j),l=d['dirname'](k);if(!c['existsSync'](l))c['mkdirSync'](l,{'recursive':!![]});c['writeFileSync'](k,i,'utf-8'),g['push'](k);}return g;}const e=await convertWtsToHtml(a,b);if(b['outputPath']){const m=toHtmlFileName(d['basename'](a)),n=d['join'](b['outputPath'],m),o=d['dirname'](n);if(!c['existsSync'](o))c['mkdirSync'](o,{'recursive':!![]});return c['writeFileSync'](n,e,'utf-8'),n;}return e;}function toHtmlFileName(a){if(a['endsWith']('.wts.json'))return a['slice'](0x0,-0x9)+'.html';if(a['endsWith']('.wts'))return a['slice'](0x0,-0x4)+'.html';const b=a['lastIndexOf']('.');if(b>0x0)return a['slice'](0x0,b)+'.html';return a+'.html';}async function convertWtsToHtml(a,b={}){const {title:title='WTS\x20Document',theme:theme='light'}=b,c=await verify_wts(a),{payload:d,meta:e}=load_wts(a),{bgColor:f,textColor:g,borderColor:h}=getThemeColors(theme),i=e['creator'];let j=-0x1;for(const k of d['messages'])if(k['to']['toLowerCase']()===i['toLowerCase']()){if(k['lastReceivedLeafIndex']!==void 0x0&&k['lastReceivedLeafIndex']>=0x0){if(k['lastReceivedLeafIndex']>j)j=k['lastReceivedLeafIndex'];}}return generateHtmlPage({'title':title,'theme':theme,'bgColor':f,'textColor':g,'borderColor':h,'meta':e,'payload':d,'verifyResult':c,'maxLastReceivedLeafIndex':j,'myAddress':i});}async function proof_message(a,b,c){const d=await Account['Instance']()['get_address'](a);if(!d)a32b('account\x20not\x20found','proof_message.account\x20'+a);const e=new MessageStorage(d),f=e['getMessageById'](b);if(!f)throw new MessengerError('INVALID_INPUT','Message\x20not\x20found:\x20'+b);if(f['fromAddress']['toLowerCase']()!==d['toLowerCase']()&&f['toAddress']['toLowerCase']()!==d['toLowerCase']())throw new MessengerError('INVALID_INPUT','Message\x20does\x20not\x20belong\x20to\x20account\x20'+d);if(!f['serverSignature'])throw new MessengerError('INVALID_PROOF','Message\x20does\x20not\x20have\x20server\x20signature');if(!f['serverPublicKey'])throw new MessengerError('INVALID_PROOF','Message\x20does\x20not\x20have\x20server\x20public\x20key');if(!f['plaintext'])throw new MessengerError('INVALID_PROOF','Message\x20does\x20not\x20have\x20plaintext');const {verifyMessage:g}=await import('./w/messenger/crypto.mjs'),h={'messageId':f['messageId'],'plaintext':f['plaintext'],'plaintextHash':f['plaintextHash'],'createdAt':f['createdAt'],'guardAddress':f['guardAddress'],'passportAddress':f['passportAddress'],'lastReceivedLeafIndex':f['lastReceivedLeafIndex'],'serverSignature':f['serverSignature'],'serverPublicKey':f['serverPublicKey']};if(f['newRoot']&&f['leafIndex']!==void 0x0){if(!f['serverTimestamp'])throw new MessengerError('INVALID_PROOF','Message\x20'+f['messageId']+'\x20missing\x20server\x20timestamp\x20for\x20verification');h['merkleMetadata']={'newRoot':f['newRoot'],'prevRoot':f['prevRoot'],'leafIndex':f['leafIndex'],'serverTimestamp':f['serverTimestamp']};}const i=g(h);if(!i['valid'])throw new MessengerError('INVALID_PROOF','Message\x20verification\x20failed:\x20'+i['error']);if(!f['serverPublicKey'])throw new MessengerError('INVALID_PROOF','Message\x20does\x20not\x20have\x20server\x20public\x20key');const {CallProof:j}=await import('./proof-Ck9Bu-Jx.mjs')['then'](p=>p['o']),k=new j({'proof':f['newRoot'],'server_pubkey':f['serverPublicKey'],'server_signature':f['serverSignature'],'proof_type':0x1,'description':'Message\x20proof\x20for\x20'+b,'item_count':f['leafIndex']??0x1,'about_address':f['fromAddress']['toLowerCase']()===d['toLowerCase']()?f['toAddress']:f['fromAddress']}),l={'network':c,'account':d},m=await k['call'](l),{ResponseData:n}=await import('./w/call/base.mjs'),o=n(m)['find'](p=>p['type']==='Proof');if(!o||!o['object'])throw new MessengerError('INVALID_PROOF','Failed\x20to\x20get\x20proof\x20address\x20from\x20transaction\x20result');return f['proof']=o['object'],e['saveMessage'](f),{'proofAddress':o['object']};}const MIN_PASSPORT_VALIDITY=0xa,MAX_PASSPORT_VALIDITY=0xa*0x16d*0x18*0x3c*0x3c,MAX_BLACKLIST_SIZE_ONCE=0x64,MAX_FRIENDS_SIZE_ONCE=0x64,MAX_GUARDS_SIZE_ONCE=0xa;async function blacklist(a){const b=await Account['Instance']()['get_address'](a['account']);if(!b)a32b('account\x20not\x20found','blacklist.account\x20'+a['account']);const c=getMessengerManager();await c['ensureAccountReady'](b);switch(a['op']){case'add':{let d=await GetManyAccountOrMark_Address(a['users']);if(d['length']===0x0)a32b('invalid\x20parameter','blacklist.add.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');d=[...new Set(d['map'](e=>e['toLowerCase']()))];if(d['length']>MAX_BLACKLIST_SIZE_ONCE)a32b('invalid\x20parameter','blacklist.add.users\x20'+a['users']+'\x20have\x20too\x20many\x20addresses,\x20max\x20'+MAX_BLACKLIST_SIZE_ONCE);return{'op':'add','result':await c['addToBlacklist'](b,d)};}case'remove':{let e=await GetManyAccountOrMark_Address(a['users']);if(e['length']===0x0)a32b('invalid\x20parameter','blacklist.remove.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');e=[...new Set(e['map'](f=>f['toLowerCase']()))];if(e['length']>MAX_BLACKLIST_SIZE_ONCE)a32b('invalid\x20parameter','blacklist.remove.users\x20'+a['users']+'\x20have\x20too\x20many\x20addresses,\x20max\x20'+MAX_BLACKLIST_SIZE_ONCE);return{'op':'remove','result':await c['removeFromBlacklist'](b,e)};}case'clear':return{'op':'clear','result':await c['clearBlacklist'](b)};case'get':return{'op':'get','result':await c['getBlacklist'](b)};case'exist':{let f=await GetManyAccountOrMark_Address(a['users']);if(f['length']===0x0)a32b('invalid\x20parameter','blacklist.exist.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');f=[...new Set(f['map'](g=>g['toLowerCase']()))];if(f['length']>MAX_BLACKLIST_SIZE_ONCE)a32b('invalid\x20parameter','blacklist.exist.users\x20'+a['users']+'\x20have\x20too\x20many\x20addresses,\x20max\x20'+MAX_BLACKLIST_SIZE_ONCE);return{'op':'exist','result':await c['existInBlacklist'](b,f)};}default:throw new MessengerError('INVALID_INPUT','blacklist.unknown\x20op:\x20'+a);}}async function friendslist(a){const b=await Account['Instance']()['get_address'](a['account']);if(!b)a32b('account\x20not\x20found','friendslist.account\x20'+a['account']);const c=getMessengerManager();await c['ensureAccountReady'](b);switch(a['op']){case'add':{let d=await GetManyAccountOrMark_Address(a['users']);if(d['length']===0x0)a32b('invalid\x20parameter','friendslist.add.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');return d=[...new Set(d['map'](e=>e['toLowerCase']()))],{'op':'add','result':await c['addToFriendsList'](b,d)};}case'remove':{let e=await GetManyAccountOrMark_Address(a['users']);if(e['length']===0x0)a32b('invalid\x20parameter','friendslist.remove.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');e=[...new Set(e['map'](f=>f['toLowerCase']()))];if(e['length']>MAX_FRIENDS_SIZE_ONCE)a32b('invalid\x20parameter','friendslist.remove.users\x20'+a['users']+'\x20have\x20too\x20many\x20addresses,\x20max\x20'+MAX_FRIENDS_SIZE_ONCE);return{'op':'remove','result':await c['removeFromFriendsList'](b,e)};}case'clear':return{'op':'clear','result':await c['clearFriendsList'](b)};case'get':return{'op':'get','result':await c['getFriendsList'](b)};case'exist':{let f=await GetManyAccountOrMark_Address(a['users']);if(f['length']===0x0)a32b('invalid\x20parameter','friendslist.exist.users\x20'+a['users']+'\x20have\x20not\x20valid\x20addresses');f=[...new Set(f['map'](g=>g['toLowerCase']()))];if(f['length']>MAX_FRIENDS_SIZE_ONCE)a32b('invalid\x20parameter','friendslist.exist.users\x20'+a['users']+'\x20have\x20too\x20many\x20addresses,\x20max\x20'+MAX_FRIENDS_SIZE_ONCE);return{'op':'exist','result':await c['existInFriendsList'](b,f)};}default:throw new MessengerError('INVALID_INPUT','friendslist.unknown\x20op:\x20'+a);}}async function guardlist(a){const b=await Account['Instance']()['get_address'](a['account']);if(!b)a32b('account\x20not\x20found','guardlist.account\x20'+a['account']);const c=getMessengerManager();await c['ensureAccountReady'](b);switch(a['op']){case'add':{const d=new Map();for(const j of a['guards'])d['set'](j['guard']['toLowerCase'](),j);const e=Array['from'](d['values']());if(e['length']===0x0)a32b('invalid\x20parameter','guardlist.add.guards\x20'+a['guards']+'\x20have\x20not\x20valid\x20guards');if(e['length']>MAX_GUARDS_SIZE_ONCE)a32b('invalid\x20parameter','guardlist.add.guards\x20'+a['guards']+'\x20have\x20too\x20many\x20guards,\x20max\x20'+MAX_GUARDS_SIZE_ONCE);for(const k of e)if(!a32a(k['passportValiditySeconds'])||k['passportValiditySeconds']<MIN_PASSPORT_VALIDITY||k['passportValiditySeconds']>MAX_PASSPORT_VALIDITY)a32b('invalid\x20parameter','Guard\x20'+k['guard']+':\x20passport\x20validity\x20'+k['passportValiditySeconds']+'\x20must\x20be\x20between\x20'+MIN_PASSPORT_VALIDITY+'\x20and\x20'+MAX_PASSPORT_VALIDITY+'\x20seconds');const f=await LocalMark['Instance']()['get_many_address'](e['map'](l=>l['guard']));if(f['length']!==e['length']){const l=new Set(f),m=[];for(const n of e)if(!l['has'](n['guard'])&&!n['guard']['startsWith']('0x'))m['push'](n['guard']);a32b('invalid\x20parameter','Guard\x20not\x20found:\x20'+m['join'](',\x20'));}const h=await a32d({'objects':f,'no_cache':![],'network':c['getConfig']()['network']});if(!h||!h['objects']||h['objects']['length']===0x0)a32b('invalid\x20parameter','Guard\x20not\x20found:\x20'+e['map'](o=>o['guard'])['join'](',\x20'));h['objects']['forEach'](o=>{if(o['type']!=='Guard')a32b('invalid\x20parameter','Guard\x20'+o['object']+'\x20is\x20not\x20a\x20Guard');});const i=e['map']((o,p)=>({'guardAddress':f[p],'passportValiditySeconds':o['passportValiditySeconds']}));return{'op':'add','result':await c['addToGuardList'](b,i)};}case'remove':{const o=[...new Set(a['guards']['map'](q=>q['toLowerCase']()))];if(o['length']===0x0)a32b('invalid\x20parameter','guardlist.remove.guards\x20'+a['guards']+'\x20have\x20not\x20valid\x20guards');if(o['length']>MAX_GUARDS_SIZE_ONCE)a32b('invalid\x20parameter','guardlist.remove.guards\x20'+a['guards']+'\x20have\x20too\x20many\x20guards,\x20max\x20'+MAX_GUARDS_SIZE_ONCE);const p=await LocalMark['Instance']()['get_many_address'](o);if(p['length']!==o['length']){const q=new Set(p),r=[];for(const s of o)if(!q['has'](s)&&!s['startsWith']('0x'))r['push'](s);a32b('invalid\x20parameter','Guard\x20not\x20found:\x20'+r['join'](',\x20'));}return{'op':'remove','result':await c['removeFromGuardList'](b,p)};}case'get':return{'op':'get','result':await c['getGuardList'](b)};default:throw new MessengerError('INVALID_INPUT','guardlist.unknown\x20op:\x20'+a);}}async function settings(a){const b=await Account['Instance']()['get_address'](a['account']);if(!b)a32b('account\x20not\x20found','settings.account\x20'+a['account']);const c=getMessengerManager();await c['ensureAccountReady'](b);switch(a['op']){case'get':return{'op':'get','result':await c['getSettings'](b)};case'set':{const d={};if(a['allowStrangerMessages']!==void 0x0)d['allowStrangerMessages']=a['allowStrangerMessages'];if(a['maxInboxSize']!==void 0x0)d['maxInboxSize']=a['maxInboxSize'];return{'op':'set','result':await c['setSettings'](b,d)};}default:throw new MessengerError('INVALID_INPUT','settings.unknown\x20op:\x20'+a);}}export{watch_conversations as _,generate_wts as a,MessengerManager as b,mark_conversation_as_viewed as c,pull_messages as d,send_file as f,verify_wts as g,sign_wts as h,friendslist as i,mark_messages_as_viewed as l,settings as m,extractZipFromPlaintext as n,getMessengerManager as o,send_message as p,extract_zip_messages as r,guardlist as s,blacklist as t,proof_message as u,watch_messages as v,wts2html as y};