@wowok/wowok 2.6.6 → 2.6.8
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.
- package/dist/esm/{arb-C8MDCb8d.mjs → arb-D9PnARNU.mjs} +1 -1
- package/dist/esm/{base-DYD5yE91.mjs → base-CmGBEIzb.mjs} +1 -1
- package/dist/esm/bcs/index.d.mts +1 -1
- package/dist/esm/{call-BCo9OmE9.mjs → call-BNVA5-PG.mjs} +1 -1
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/{client-DMvCJX_Q.mjs → client-tu51vSnB.mjs} +1 -1
- package/dist/esm/cryptography/index.d.mts +1 -1
- package/dist/esm/graphql/index.d.mts +1 -1
- package/dist/esm/graphql/index.mjs +1 -1
- package/dist/esm/{graphql-1GxBJGcJ.mjs → graphql-Dfa5Zfn9.mjs} +1 -1
- package/dist/esm/grpc/index.d.mts +1 -1
- package/dist/esm/grpc/index.mjs +1 -1
- package/dist/esm/{grpc-DJhx3azB.mjs → grpc-BkdsSAp4.mjs} +1 -1
- package/dist/esm/{index-mfCLgnzt.d.mts → index-DDdEf8FJ.d.mts} +63 -4
- package/dist/esm/{index-B-cxGU73.d.mts → index-o_aMVwsK.d.mts} +6 -6
- package/dist/esm/index.d.mts +3 -3
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/jsonRpc/index.d.mts +1 -1
- package/dist/esm/jsonRpc/index.mjs +1 -1
- package/dist/esm/keypairs/ed25519/index.d.mts +1 -1
- package/dist/esm/keypairs/falcon512/index.d.mts +1 -1
- package/dist/esm/keypairs/passkey/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256k1/index.d.mts +1 -1
- package/dist/esm/keypairs/secp256r1/index.d.mts +1 -1
- package/dist/esm/{messenger-BImozyop.mjs → messenger-Bq_x9zCa.mjs} +1 -1
- package/dist/esm/{messenger-api-CrGcQbkf.mjs → messenger-api-7S2KPVXu.mjs} +1 -1
- package/dist/esm/multisig/index.d.mts +1 -1
- package/dist/esm/{object-FSAX85oZ.mjs → object-YcOt7Qyl.mjs} +1 -1
- package/dist/esm/{passport-iwv7URoe.mjs → passport-aLeINryx.mjs} +1 -1
- package/dist/esm/{proof-CTUZQvvK.mjs → proof-ByE09RhA.mjs} +1 -1
- package/dist/esm/query-BQd-slSZ.mjs +1 -0
- package/dist/esm/{received-D7tDzdfO.mjs → received-CI0eLHuI.mjs} +1 -1
- package/dist/esm/{service-Bft3SY9g.mjs → service-uuInIVYC.mjs} +1 -1
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/{util-C-ykd-k7.mjs → util-DxDXSeQI.mjs} +1 -1
- package/dist/esm/verify/index.d.mts +1 -1
- package/dist/esm/w/call/allocation.d.mts +1 -1
- package/dist/esm/w/call/allocation.mjs +1 -1
- package/dist/esm/w/call/arbitration.d.mts +1 -1
- package/dist/esm/w/call/arbitration.mjs +1 -1
- package/dist/esm/w/call/base.d.mts +1 -1
- package/dist/esm/w/call/base.mjs +1 -1
- package/dist/esm/w/call/demand.d.mts +1 -1
- package/dist/esm/w/call/demand.mjs +1 -1
- package/dist/esm/w/call/guard.d.mts +1 -1
- package/dist/esm/w/call/guard.mjs +1 -1
- package/dist/esm/w/call/index.d.mts +1 -1
- package/dist/esm/w/call/index.mjs +1 -1
- package/dist/esm/w/call/machine.d.mts +1 -1
- package/dist/esm/w/call/machine.mjs +1 -1
- package/dist/esm/w/call/passport.d.mts +1 -1
- package/dist/esm/w/call/passport.mjs +1 -1
- package/dist/esm/w/call/payment.d.mts +1 -1
- package/dist/esm/w/call/payment.mjs +1 -1
- package/dist/esm/w/call/permission.d.mts +1 -1
- package/dist/esm/w/call/permission.mjs +1 -1
- package/dist/esm/w/call/progress.d.mts +1 -1
- package/dist/esm/w/call/progress.mjs +1 -1
- package/dist/esm/w/call/repository.d.mts +1 -1
- package/dist/esm/w/call/repository.mjs +1 -1
- package/dist/esm/w/call/reward.d.mts +1 -1
- package/dist/esm/w/call/reward.mjs +1 -1
- package/dist/esm/w/call/service.d.mts +1 -1
- package/dist/esm/w/call/service.mjs +1 -1
- package/dist/esm/w/call/treasury.d.mts +1 -1
- package/dist/esm/w/call/treasury.mjs +1 -1
- package/dist/esm/w/common.d.mts +1 -1
- package/dist/esm/w/index.d.mts +2 -2
- package/dist/esm/w/index.mjs +1 -1
- package/dist/esm/w/local/account.d.mts +1 -1
- package/dist/esm/w/local/account.mjs +1 -1
- package/dist/esm/w/local/index.d.mts +1 -1
- package/dist/esm/w/local/token.d.mts +1 -1
- package/dist/esm/w/local/token.mjs +1 -1
- package/dist/esm/w/messenger/index.d.mts +1 -1
- package/dist/esm/w/messenger/index.mjs +1 -1
- package/dist/esm/w/messenger/messenger-api.d.mts +1 -1
- package/dist/esm/w/messenger/messenger-api.mjs +1 -1
- package/dist/esm/w/messenger/messenger.d.mts +1 -1
- package/dist/esm/w/messenger/messenger.mjs +1 -1
- package/dist/esm/w/messenger/storage.d.mts +1 -1
- package/dist/esm/w/messenger/types.d.mts +1 -1
- package/dist/esm/w/query/index.d.mts +1 -1
- package/dist/esm/w/query/index.mjs +1 -1
- package/dist/esm/w/query/object.d.mts +1 -1
- package/dist/esm/w/query/object.mjs +1 -1
- package/dist/esm/w-B1_lZaGr.mjs +1 -0
- package/package.json +1 -1
- package/dist/esm/query-HMufz-zD.mjs +0 -1
- package/dist/esm/w-DevdGmkD.mjs +0 -1
package/dist/esm/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a21a,c as a21b,i as a21c,l as a21d,n as a21e,o as a21f,r as a21g,s as a21h,t as a21i,u as a21j}from'./wow-types-DcqbnAaK.mjs';import{a as a21k,d as a21l,i as a21m,n as a21n,o as a21o,r as a21p,s as a21q,t as a21r,u as a21s}from'./bcs-BrmSFFhn.mjs';import{a as a21t,c as a21u,d as a21v,f as a21w,i as a21x,l as a21y,m as a21z,n as a21A,o as a21B,p as a21C,r as a21D,s as a21E,t as a21F,u as a21G}from'./client-DMvCJX_Q.mjs';import{C as a21H,E as a21I,S as a21J,T as a21K,_ as a21L,a as a21M,b as a21N,c as a21O,d as a21P,f as a21Q,g as a21R,h as a21S,i as a21T,l as a21U,m as a21V,n as a21W,o as a21X,p as a21Y,r as a21Z,s as a21a0,t as a21a1,u as a21a2,v as a21a3,w as a21a4,x as a21a5,y as a21a6}from'./utils-npJYSbqk.mjs';import{_ as a21a7,c as a21a8,d as a21a9,f as a21aa,g as a21ab,h as a21ac,l as a21ad,n as a21ae,r as a21af,t as a21ag,u as a21ah}from'./Transaction-CzqJDezj.mjs';import{n as a21ai,t as a21aj}from'./network-CeDd07Hg.mjs';import{a as a21ak,i as a21al,n as a21am,o as a21an,s as a21ao,t as a21ap}from'./publickey-5xoCmE9g.mjs';import{a as a21aq,d as a21ar,f as a21as,i as a21at,l as a21au,n as a21av,o as a21aw,p as a21ax,r as a21ay,s as a21az,t as a21aA}from'./keypair-BqNhxtoP.mjs';import{i as a21aB,n as a21aC,r as a21aD,t as a21aE}from'./mnemonics-C6qlqegr.mjs';import{n as a21aF,r as a21aG,t as a21aH}from'./faucet-RNvBvVJf.mjs';import{n as a21aI,r as a21aJ,t as a21aK}from'./graphql-1GxBJGcJ.mjs';import{a as a21aL,i as a21aM,n as a21aN,r as a21aO,t as a21aP}from'./grpc-DJhx3azB.mjs';import{t as a21aQ}from'./jsonRpc-1qOo1zjv.mjs';import{n as a21aR,t as a21aS}from'./ed25519-LQZKHVDN.mjs';import{t as a21aT}from'./publickey-CQWQyM6S.mjs';import{t as a21aU}from'./publickey-C9TocS69.mjs';import{n as a21aV,t as a21aW}from'./secp256k1-DhrvBMbI.mjs';import{t as a21aX}from'./publickey-BzPz9Uwr.mjs';import{n as a21aY,t as a21aZ}from'./secp256r1-BCaQWLGZ.mjs';import{n as a21b0,t as a21b1}from'./passkey-CS2Qexll.mjs';import{t as a21b2}from'./publickey-CvCDfw_N.mjs';import{n as a21b3,t as a21b4}from'./falcon512-Be5BlPLD.mjs';import{a as a21b5,c as a21b6,i as a21b7,n as a21b8,o as a21b9,r as a21ba,s as a21bb,t as a21bc}from'./publickey-DMk4XMWI.mjs';import'./multisig/index.mjs';import{a as a21bd,i as a21be,n as a21bf,r as a21bg,t as a21bh}from'./transactions-CkMcWBKS.mjs';import{$ as a21bi,A as a21bj,B as a21bk,C as a21bl,D as a21bm,E as a21bn,F as a21bo,G as a21bp,H as a21bq,I as a21br,J as a21bs,K as a21bt,L as a21bu,M as a21bv,N as a21bw,O as a21bx,P as a21by,Q as a21bz,R as a21bA,S as a21bB,St as a21bC,T as a21bD,U as a21bE,V as a21bF,W as a21bG,X as a21bH,Y as a21bI,Z as a21bJ,_ as a21bK,_t as a21bL,a as a21bM,at as a21bN,b as a21bO,bt as a21bP,c as a21bQ,ct as a21bR,d as a21bS,dt as a21bT,et as a21bU,f as a21bV,ft as a21bW,g as a21bX,gt as a21bY,h as a21bZ,ht as a21c0,i as a21c1,it as a21c2,j as a21c3,k as a21c4,l as a21c5,lt as a21c6,m as a21c7,mt as a21c8,n as a21c9,nt as a21ca,o as a21cb,ot as a21cc,p as a21cd,pt as a21ce,q as a21cf,r as a21cg,rt as a21ch,s as a21ci,st as a21cj,t as a21ck,tt as a21cl,u as a21cm,ut as a21cn,v as a21co,vt as a21cp,w as a21cq,x as a21cr,xt as a21cs,y as a21ct,yt as a21cu,z as a21cv}from'./common-uweycQjC.mjs';import{a as a21cw,c as a21cx,d as a21cy,f as a21cz,i as a21cA,l as a21cB,n as a21cC,o as a21cD,p as a21cE,r as a21cF,s as a21cG,t as a21cH,u as a21cI}from'./exception-C6IYkBi6.mjs';import{getWowDir,getWowMcpDir}from'./w/local/util.mjs';import{UserModeStorage}from'./w/local/storage.mjs';import{Config}from'./w/local/config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./w/local/local.mjs';import{a as a21cJ,i as a21cK,n as a21cL,o as a21cM,r as a21cN,t as a21cO}from'./logger-Cs5Mf7Mf.mjs';import{CryptoVault,SecureAccountStorage}from'./w/local/secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./w/local/account.mjs';import{TokenInfo}from'./w/local/token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./w/local/evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./w/local/evm/networks.mjs';import{EvmAccount}from'./w/local/evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./w/local/wip.mjs';import{LocalProject}from'./w/local/project.mjs';import{GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,account_operation,fetch_token_info_operation,local_info_operation,local_mark_operation,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list}from'./w/local/index.mjs';import{$ as a21cP,A as a21cQ,B as a21cR,C as a21cS,D as a21cT,E as a21cU,F as a21cV,G as a21cW,H as a21cX,I as a21cY,J as a21cZ,K as a21d0,L as a21d1,M as a21d2,N as a21d3,O as a21d4,P as a21d5,Q as a21d6,R as a21d7,S as a21d8,T as a21d9,U as a21da,V as a21db,W as a21dc,X as a21dd,Y as a21de,Z as a21df,_ as a21dg,a as a21dh,at as a21di,b as a21dj,c as a21dk,ct as a21dl,d as a21dm,et as a21dn,f as a21do,g as a21dp,h as a21dq,i as a21dr,it as a21ds,j as a21dt,k as a21du,l as a21dv,m as a21dw,n as a21dx,nt as a21dy,o as a21dz,ot as a21dA,p as a21dB,q as a21dC,r as a21dD,rt as a21dE,s as a21dF,st as a21dG,t as a21dH,tt as a21dI,u as a21dJ,v as a21dK,w as a21dL,x as a21dM,y as a21dN,z as a21dO}from'./object-FSAX85oZ.mjs';import{t as a21dP}from'./received-D7tDzdfO.mjs';import{$ as a21dQ,A as a21dR,B as a21dS,C as a21dT,D as a21dU,E as a21dV,F as a21dW,G as a21dX,H as a21dY,I as a21dZ,J as a21e0,K as a21e1,L as a21e2,M as a21e3,N as a21e4,O as a21e5,P as a21e6,Q as a21e7,R as a21e8,S as a21e9,T as a21ea,U as a21eb,V as a21ec,W as a21ed,X as a21ee,Y as a21ef,Z as a21eg,_ as a21eh,_t as a21ei,at as a21ej,b as a21ek,bt as a21el,ct as a21em,d as a21en,dt as a21eo,et as a21ep,f as a21eq,ft as a21er,g as a21es,gt as a21et,h as a21eu,ht as a21ev,it as a21ew,j as a21ex,k as a21ey,lt as a21ez,m as a21eA,mt as a21eB,nt as a21eC,ot as a21eD,p as a21eE,pt as a21eF,q as a21eG,rt as a21eH,st as a21eI,tt as a21eJ,ut as a21eK,v as a21eL,vt as a21eM,w as a21eN,x as a21eO,y as a21eP,yt as a21eQ,z as a21eR}from'./passport-iwv7URoe.mjs';import{i as a21eS,n as a21eT,r as a21eU,t as a21eV}from'./base-DYD5yE91.mjs';import{CallPayment}from'./w/call/payment.mjs';import{CallAllocation}from'./w/call/allocation.mjs';import{BuiltinPermissionIndex,CallPermission,isBizPermIndex}from'./w/call/permission.mjs';import{CallArbitration}from'./w/call/arbitration.mjs';import{n as a21eW,t as a21eX}from'./util-C-ykd-k7.mjs';import{CallDemand}from'./w/call/demand.mjs';import{CallGuard,formatGuardParseErrors,gen_passport,generateNodeComments,guard2file,parseGuardFile,parseGuardFromMarkdown,validateGuardData,validateGuardNode}from'./w/call/guard.mjs';import{CallProgress}from'./w/call/progress.mjs';import{CallMachine,machineNode2file}from'./w/call/machine.mjs';import{$ as a21eY,t as a21eZ}from'./service-Bft3SY9g.mjs';import{CallReward,transformRewardInput}from'./w/call/reward.mjs';import{CallRepository}from'./w/call/repository.mjs';import{CallTreasury}from'./w/call/treasury.mjs';import{n as a21f0,r as a21f1,t as a21f2}from'./call-BCo9OmE9.mjs';import{n as a21f3,t as a21f4}from'./proof-CTUZQvvK.mjs';import{C as a21f5,D as a21f6,E as a21f7,O as a21f8,S as a21f9,T as a21fa,_ as a21fb,a as a21fc,b as a21fd,c as a21fe,d as a21ff,f as a21fg,g as a21fh,h as a21fi,i as a21fj,k as a21fk,l as a21fl,m as a21fm,n as a21fn,o as a21fo,p as a21fp,r as a21fq,s as a21fr,t as a21fs,u as a21ft,v as a21fu,w as a21fv,x as a21fw,y as a21fx}from'./query-HMufz-zD.mjs';import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./w/messenger/types.mjs';import{t as a21fy}from'./messenger-BImozyop.mjs';import{_ as a21fz,a as a21fA,b as a21fB,c as a21fC,d as a21fD,f as a21fE,g as a21fF,h as a21fG,i as a21fH,l as a21fI,m as a21fJ,n as a21fK,o as a21fL,p as a21fM,r as a21fN,s as a21fO,t as a21fP,u as a21fQ,v as a21fR,y as a21fS}from'./messenger-api-CrGcQbkf.mjs';import{A as a21fT,C as a21fU,D as a21fV,E as a21fW,F as a21fX,I as a21fY,L as a21fZ,M as a21g0,N as a21g1,O as a21g2,P as a21g3,R as a21g4,S as a21g5,T as a21g6,_ as a21g7,a as a21g8,b as a21g9,c as a21ga,d as a21gb,f as a21gc,g as a21gd,h as a21ge,i as a21gf,j as a21gg,k as a21gh,l as a21gi,m as a21gj,n as a21gk,o as a21gl,p as a21gm,r as a21gn,s as a21go,t as a21gp,u as a21gq,v as a21gr,w as a21gs,x as a21gt,y as a21gu,z as a21gv}from'./w-DevdGmkD.mjs';const SCHEMA_VERSION='1.0.0';function parseSemver(a){const b=a['match'](/^(\d+)\.(\d+)\.(\d+)$/);if(!b)return null;return{'major':parseInt(b[0x1],0xa),'minor':parseInt(b[0x2],0xa),'patch':parseInt(b[0x3],0xa)};}function checkSchemaCompatibility(a,b){const c=parseSemver(a),d=parseSemver(b);if(!c)return{'compatible':![],'reason':'Invalid\x20client\x20version\x20format:\x20'+a};if(!d)return{'compatible':![],'reason':'Invalid\x20server\x20version\x20format:\x20'+b};if(c['major']!==d['major'])return{'compatible':![],'reason':'Major\x20version\x20mismatch:\x20client\x20'+a+'\x20vs\x20server\x20'+b};if(d['minor']<c['minor'])return{'compatible':![],'reason':'Server\x20minor\x20version\x20('+d['minor']+')\x20is\x20lower\x20than\x20client\x20minor\x20version\x20('+c['minor']+')'};return{'compatible':!![]};}export{Account,a21dH as AllocationMode,a21dx as AmountType,a21dD as ArbStatus,a21bh as Arguments,a21be as AsyncCache,a21en as BRIDGE_CURRENT_VERSION,a21eq as BRIDGE_EVM_ADDRESS_LENGTH,a21eE as BRIDGE_MESSAGE_VERSION,a21gn as BRIDGE_STEP_DESCRIPTIONS,a21eA as BRIDGE_TRANSFER_STATUS_APPROVED,a21eu as BRIDGE_TRANSFER_STATUS_CLAIMED,a21es as BRIDGE_TRANSFER_STATUS_NOT_FOUND,a21eh as BRIDGE_TRANSFER_STATUS_PENDING,BUITIN_IDS,a21C as BaseClient,a21r as BcsEnum,a21n as BcsStruct,a21p as BcsTuple,a21m as BcsType,a21fw as BridgeChainId,a21gp as BridgeClient,a21f9 as BridgeErrorCode,a21gk as BridgeNodeClient,a21f5 as BridgeTokenId,a21gf as BridgeTransferDirection,a21g8 as BridgeTransferStatus,a21gl as BridgeTransferStep,a21fv as BridgeVersion,a21b1 as BrowserPasskeyProvider,BuiltinPermissionIndex,a21fr as COMMON_MISTAKES,CallAllocation,CallArbitration,a21eV as CallBase,a21f2 as CallContact,CallDemand,CallGuard,CallMachine,a21eY as CallOrder,CallPayment,CallPermission,a21f0 as CallPersonal,CallProgress,a21f4 as CallProof,CallRepository,CallReward,a21eZ as CallService,CallTreasury,a21z as ClientCache,a21ck as CoinWrapPrefix,Config,a21c9 as ContextType,a21w as CoreClient,CryptoVault,DEFAULT_ACCOUNT_NAME,a21aS as DEFAULT_ED25519_DERIVATION_PATH,a21b4 as DEFAULT_FALCON512_DERIVATION_PATH,DEFAULT_LIMITS,a21eL as DEFAULT_LOCK_DURATION,DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,a21aW as DEFAULT_SECP256K1_DERIVATION_PATH,a21aZ as DEFAULT_SECP256R1_DERIVATION_PATH,a21eP as DISCOUNT_TYPE_MINUS,a21ek as DISCOUNT_TYPE_RATES,a21dr as DiscountType,a21cg as ENTITY_LINKER_ADDRESS,a21c1 as ENTITY_REGISTRAR_ADDRESS,a21aj as ENTRYPOINT,a21gh as ERC20_TRANSFER_TOPIC,ETH_MAINNET,a21aR as Ed25519Keypair,a21aT as Ed25519PublicKey,a21bM as EntityAddress,EvmAccount,EvmNetworkRegistry,a21aA as FALCON512_PRIVATE_KEY_SIZE,a21b3 as Falcon512Keypair,a21b2 as Falcon512PublicKey,a21aH as FaucetRateLimitError,a21cZ as GUARDINSTRUCT,a21de as GUARDQUERY,a21cb as GasCoinType,a21ci as GasTokenType,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,a21bQ as GetObject,a21c5 as GetObjectDescription,a21cm as GetObjectExisted,a21aL as GrpcCoreClient,a21aN as GrpcTypes,a21aP as GrpcWebFetchTransport,a21fe as INFO_CONSTANT,a21dh as IdFrom,a21ah as Inputs,a21bS as IsBcsStringLength,a21bV as IsValidArgType,a21cd as IsValidBalance,a21c7 as IsValidEndpoint,a21t as JsonRpcError,a21x as JsonRpcHTTPTransport,a21av as Keypair,a21ay as LEGACY_PRIVATE_KEY_SIZE,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,LocalProject,a21cO as LogLevel,a21cL as Logger,a21fg as MAINNET_BRIDGE_CONFIG,a21fp as MAINNET_COMMITTEE_MEMBER_ADDRESSES,a21fm as MAINNET_COMMITTEE_PUBKEYS,a21fi as MAINNET_COMMITTEE_WEIGHTS,a21eO as MAX_ADDRESS_COUNT,a21e9 as MAX_ADMIN_COUNT,a21dT as MAX_AGENT_COUNT,a21eN as MAX_ALLOCATOR_COUNT,a21ea as MAX_ARBITRATION_COUNT,a21dV as MAX_CONSENSUS_REPOSITORIES_COUNT,a21dU as MAX_CONTEXT_REPOSITORY_COUNT,a21e5 as MAX_DATA_SIZE,a21bZ as MAX_DEPENDED_COUNT,a21bX as MAX_DESCRIPTION_LENGTH,a21ey as MAX_DISCOUNT_COUNT_ONCE,a21dR as MAX_DISCOUNT_RECEIVER_ONCE,a21ex as MAX_DISCOUNT_TOTAL_COUNT,a21e3 as MAX_DISPUTE_COUNT,a21e4 as MAX_ENTITY_COUNT,a21bK as MAX_ENV_PERMISSION_GUARD_COUNT,a21e6 as MAX_EXTERNAL_DEPOSIT_GUARD_COUNT,a21dW as MAX_EXTERNAL_WITHDRAW_GUARD_COUNT,a21dZ as MAX_FORWARD_COUNT,a21e2 as MAX_FORWARD_ORDER_COUNT,a21e8 as MAX_GUARD_COUNT_DEMAND,a21eR as MAX_GUARD_COUNT_PASSPORT,a21dS as MAX_GUARD_COUNT_REWARD,a21co as MAX_GUARD_TABLE_ITEM_LENGTH,a21ec as MAX_ID_COUNT_ONCE,a21dY as MAX_IM_COUNT,a21ct as MAX_INPUT_SIZE,a21bO as MAX_LONG_NAME_LENGTH,MAX_MESSENGER_ACCOUNTS,a21cr as MAX_MULTI_OPERANDS,a21eb as MAX_NAMED_OPERATOR_ADDRESS_COUNT,a21ed as MAX_NAMED_OPERATOR_COUNT,a21bB as MAX_NAME_LENGTH,a21dX as MAX_NODE_COUNT,a21e1 as MAX_NODE_COUNT_ONCHAIN,a21eG as MAX_NODE_PAIR_COUNT,a21dz as MAX_OBJECTS_PER_QUERY,a21bl as MAX_PERMISSION_GUARD_COUNT,a21e0 as MAX_PERM_FOR_ENTITY,a21ef as MAX_POLICY_COUNT,a21ee as MAX_POLICY_DESCRIPTION_LEN,a21eg as MAX_POLICY_GUARD_COUNT,a21e7 as MAX_PROOF_SIZE,a21dQ as MAX_PROPOSITION_COUNT,MAX_QUERY_LIMIT,a21ep as MAX_RECIPIENT_COUNT,a21eJ as MAX_RECORD_COUNT_REGISTRAR,a21eC as MAX_RECORD_COUNT_REWARD,a21eH as MAX_RECORD_LENGTH,a21ew as MAX_REPOSITORY_COUNT,a21ej as MAX_REQUIRED_INFO_SIZE,a21eD as MAX_REWARD_COUNT,a21eI as MAX_SALE_COUNT,a21em as MAX_SERVER_PUBKEY_SIZE,a21ez as MAX_SERVER_SIGNATURE_SIZE,a21eK as MAX_SHARING_COUNT,a21eo as MAX_SUBMISSION_SIZE_PASSPORT,a21cq as MAX_TABLE_SIZE,a21er as MAX_TAGS_COUNT,a21eF as MAX_VOTING_GUARD_COUNT,a21eB as MAX_VOTOR_COUNT,a21ev as MAX_WIP_HASH_LENGTH,a21et as MAX_WIP_LENGTH,a21Q as MIST_PER_WOW,a21Y as MOVE_STDLIB_ADDRESS,MessageDirection,MessageStatus,MessageType,a21fy as Messenger,MessengerError,MessengerErrorCode,a21fB as MessengerManager,a21bD as Modules,a21cH as MoveErrors,a21bc as MultiSigPublicKey,a21b6 as MultiSigSigner,NORMAL_MESSAGE_BYTES_LIMIT,a21dF as OBJECT_TYPE_DEFINITIONS,a21ei as ONCHAIN_CONSTANTS,a21bd as ObjectCache,a21bn as ObjectType,a21bm as OperatorType,a21at as PRIVATE_KEY_SIZE,a21bx as PackageAddress,a21bf as ParallelTransactionExecutor,a21b0 as PasskeyKeypair,a21ax as PasskeyPublicKey,a21ap as PublicKey,a21c4 as RecipientType,a21bj as RegistrarAddress,a21eT as ResponseData,SCHEMA_VERSION,a21al as SIGNATURE_FLAG_TO_SCHEME,a21ak as SIGNATURE_SCHEME_TO_FLAG,a21an as SIGNATURE_SCHEME_TO_SIZE,a21aV as Secp256k1Keypair,a21aU as Secp256k1PublicKey,a21aY as Secp256r1Keypair,a21aX as Secp256r1PublicKey,SecureAccountStorage,a21bg as SerialTransactionExecutor,a21aq as Signer,a21ac as SimulationError,a21fT as TOKENS_CLAIMED_TOPIC,a21gg as TOKENS_DEPOSITED_TOPIC,a21g0 as TOKENS_DEPOSITED_V2_TOPIC,TokenInfo,a21ag as Transaction,a21a9 as TransactionCommands,a21ab as TransactionDataBuilder,a21fa as TransferStatus,a21dk as TreasuryOp,a21s as TypeTagSerializer,a21eM as USER_DEFINED_PERM_INDEX_START,a21aa as UpgradePolicy,UserModeStorage,a21c3 as ValueType,a21cC as WErrors,a21cF as WException,WIP,a21eQ as WITHDRAW_DURATION_TIME,a21el as WOWOK_WTS_PROOF_TYPE,a21i as WOW_ADDRESS_LENGTH,a21V as WOW_CLOCK_OBJECT_ID,a21S as WOW_COIN_REGISTRY_OBJECT_ID,a21R as WOW_DECIMALS,a21L as WOW_DENY_LIST_OBJECT_ID,a21a3 as WOW_ENTITY_OBJECT_ID,a21a6 as WOW_FRAMEWORK_ADDRESS,a21N as WOW_RANDOM_OBJECT_ID,a21a5 as WOW_REGISTRAR_OBJECT_ID,a21J as WOW_SYSTEM_ADDRESS,a21H as WOW_SYSTEM_MODULE_NAME,a21a4 as WOW_SYSTEM_STATE_OBJECT_ID,a21K as WOW_TYPE_ARG,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,a21cA as WValidate,a21cw as W_ENSURE,a21cD as W_ERROR,a21cG as W_FAILURE,a21aw as W_PRIVATE_KEY_PREFIX,a21cx as W_SAFE,a21cB as W_SUCCESS,a21cI as W_VALIDATE_PARAM,WipError,WipSizeError,WipValidationError,a21dv as WitnessSourceType,a21dJ as WitnessTargetType,a21bv as WitnessType,a21gu as WowClaimStatus,a21F as WowClient,a21aK as WowGraphQLClient,a21aI as WowGraphQLRequestError,a21aO as WowGrpcClient,a21B as WowHTTPStatusError,a21E as WowHTTPTransportError,a21A as WowJsonRpcClient,account_operation,a21bw as arbitrationFn,a21o as bcs,a21d6 as bcsBytesToValue,a21fP as blacklist,a21fU as buildClaimMessage,a21am as bytesEqual,bytesToBigInt,bytesToHex,checkSchemaCompatibility,a21dc as checkType,a21gs as claimOnEth,a21g6 as claimOnEthBySeq,a21g9 as claimOnWow,a21af as coinWithBalance,a21k as compareBcsBytes,a21by as contactFn,a21cN as createSensitiveLogger,a21bo as createValueContainer,createWip,a21dm as data2object,a21az as decodeWowPrivateKey,a21br as demandFn,a21fW as depositErc20,a21fV as depositEth,a21g2 as depositFromEth,a21g5 as depositFromWow,a21I as deriveDynamicFieldID,a21a0 as deriveObjectID,a21g1 as encodeApprove,a21g3 as encodeBridgeERC20,a21fX as encodeBridgeERC20V2,a21fY as encodeBridgeETH,a21fZ as encodeBridgeETHV2,a21g4 as encodeTokenTransferPayloadV2,a21gv as encodeTransferBridgedTokensWithSignatures,a21au as encodeWowPrivateKey,a21cy as enrichMoveError,a21cP as extractCoinType,a21u as extractStatusFromEffectsBcs,a21fK as extractZipFromPlaintext,a21fN as extract_zip_messages,fetch_token_info_operation,a21dd as filterGuardInstruct,a21fh as findEvmChainConfig,a21fb as findEvmChainConfigByBridgeChainId,a21fu as findToken,a21fx as findTokenBySymbol,a21O as formatAddress,a21U as formatDigest,formatGuardParseErrors,a21y as formatMoveAbortMessage,a21fH as friendslist,a21a1 as fromBase58,a21W as fromBase64,a21Z as fromHex,gen_passport,a21f3 as gen_proof,generateNodeComments,generate_wip,a21fA as generate_wts,a21cW as getCallEnvAccount,a21eU as getCoinParam,a21aF as getFaucetHost,a21ai as getFullnodeUrl,a21df as getGuardQueryInfo,a21aQ as getJsonRpcFullnodeUrl,a21cK as getLogLevel,a21fL as getMessengerManager,a21cz as getMoveErrorDescription,a21do as getMoveNameFromNumber,a21dB as getMoveNameFromObjectType,a21dw as getNumberFromMoveName,a21dq as getNumberFromObjectType,a21dp as getNumbersFromObjectTypes,a21dg as getObjectTypeDefinition,a21dK as getObjectTypeDefinitionFromNumber,a21dN as getObjectTypeFromMoveName,a21dj as getObjectTypeFromNumber,a21dM as getObjectTypesFromNumbers,a21a8 as getPureBcsSchema,getWowDir,getWowMcpDir,guard2file,a21fO as guardlist,hexToBytes,a21d8 as idFromToString,a21a7 as isArgument,isBizPermIndex,a21eS as isCallResultSubmission,a21f7 as isEvmChain,a21bu as isGasTokenType,a21bA as isThisPackage,a21ae as isTransaction,isValidAddress,a21cv as isValidArray,a21aE as isValidBIP32Path,a21bk as isValidDescription,isValidEvmAddress,a21aC as isValidHardenedPath,a21bF as isValidHttpUrl,a21cS as isValidIdFromInput,a21bq as isValidLongName,a21bE as isValidName,a21e as isValidNamedPackage,a21g as isValidStructTag,a21c as isValidTransactionDigest,a21bG as isValidU128,a21bp as isValidU16,a21bt as isValidU256,a21cf as isValidU32,a21bs as isValidU64,a21bI as isValidU8,a21dn as isValidValueContainer,a21bH as isValidValueType,a21bJ as isValidValueTypeInput,a21bz as isValidWitnessTypeInput,a21a as isValidWowAddress,a21f as isValidWowObjectId,a21bi as isValueTypeNumber,a21cE as isWException,a21bU as isWitnessType,a21f6 as isWowChain,a21aJ as isWowGraphQLClient,a21aM as isWowGrpcClient,a21D as isWowJsonRpcClient,loadWip,local_info_operation,local_mark_operation,a21cJ as logger,a21cl as machineFn,machineNode2file,a21go as makeBridgeTransferState,a21fC as mark_conversation_as_viewed,a21fI as mark_messages_as_viewed,a21ao as messageWithIntent,a21aD as mnemonicToSeed,a21aB as mnemonicToSeedHex,a21h as normalizeStructTag,a21l as normalizeTypeTag,a21b as normalizeWowAddress,a21d as normalizeWowObjectId,a21ad as normalizedTypeToMoveTypeSignature,a21dL as numberToObjectType,a21d9 as objectTypeToNumber,a21ca as object_module_and_name_from_type,a21ch as object_name_from_type,a21dI as owner_receive,a21ga as parseEthClaimEvent,a21gi as parseEthDepositEvent,parseGuardFile,parseGuardFromMarkdown,a21cU as parseIdFrom,a21dy as parseObjectType,a21b8 as parsePartialSignatures,a21dE as parseRecipient,a21ar as parseSerializedSignature,a21j as parseStructTag,a21a2 as parseToMist,a21P as parseToUnits,a21G as parseTransactionBcs,a21v as parseTransactionEffectsBcs,a21ds as parseTypeParameter,a21c2 as parseValueType,a21bN as parseWitnessType,a21di as permission_set,privateKeyToAddress,a21fQ as proof_message,a21ba as publicKeyFromRawBytes,a21b7 as publicKeyFromWowBytes,a21fD as pull_messages,a21q as pureBcsSchemaFromTypeName,a21gq as queryErc20Balance,a21gb as queryEthBalance,a21gc as queryEthTxConfirmations,a21gm as queryEthTxReceipt,a21gj as queryEvmToWowTransferStatus,a21eX as queryObjectWithType,a21eW as queryObjectsWithType,a21fl as queryPermissions,a21ft as queryProtocolInfo,a21cT as queryTableItem_AddressMark,a21d4 as queryTableItem_DemandPresenter,a21du as queryTableItem_EntityLinker,a21cQ as queryTableItem_EntityRegistrar,a21dt as queryTableItem_MachineNode,a21d2 as queryTableItem_PermissionPerm,a21d3 as queryTableItem_ProgressHistory,a21d5 as queryTableItem_RepositoryData,a21cV as queryTableItem_RewardRecord,a21cY as queryTableItem_TreasuryHistory,a21gt as queryWowClaimStatus,a21ge as queryWowToEvmTransferStatus,a21gd as queryWowTx,query_account,query_account_list,a21fs as query_address_activity,a21fn as query_address_activity_json,a21ff as query_common_mistakes,a21f8 as query_events,a21fk as query_events_json,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,a21fq as query_object_history,a21fj as query_object_history_json,a21d1 as query_objects,a21d7 as query_objects_json,a21dO as query_personal,a21dP as query_received,a21cR as query_table,a21db as query_tableItem,a21cX as query_table_json,a21fc as query_transaction,a21fo as query_transaction_json,a21da as raw2type,registerBridgeEvmNetworks,a21cc as repositoryFn,a21aG as requestWowFromFaucetV2,a21d0 as resolveCallEnv,a21dC as restoreNodeFromOutput,a21cj as rewardFn,a21fE as send_file,a21fM as send_message,a21bR as serviceFn,a21cM as setLogLevel,a21fJ as settings,signEIP1559,signLegacy,sign_wip,a21fG as sign_wts,a21T as toBase58,a21M as toBase64,toChecksumAddress,a21X as toHex,a21as as toSerializedSignature,a21c6 as toTxAddress,a21cn as toTxAddressVec,a21bT as toTxObject,a21bW as toTxString,a21ce as toTxU128,a21c8 as toTxU16,a21c0 as toTxU16Vec,a21bY as toTxU256,a21bL as toTxU32,a21cp as toTxU64,a21cu as toTxU8,a21f1 as transformPersonalInput,transformRewardInput,a21bP as treasuryFn,a21dA as uint2address,a21dG as validObjects,validateGuardData,validateGuardNode,a21dl as valueToBcsBytes,a21cs as valueTypeToString,a21fd as verifyCommitteeConsistency,a21b5 as verifyPersonalMessageSignature,a21b9 as verifySignature,a21bb as verifyTransactionSignature,verifyWip,verify_wip,a21fF as verify_wts,a21g7 as waitForEthTx,a21gr as waitForWowTx,a21fz as watch_conversations,a21fR as watch_messages,wip2html,wipToHtml,a21bC as witnessTypeToString,a21fS as wts2html};
|
|
1
|
+
import{a as a21a,c as a21b,i as a21c,l as a21d,n as a21e,o as a21f,r as a21g,s as a21h,t as a21i,u as a21j}from'./wow-types-DcqbnAaK.mjs';import{a as a21k,d as a21l,i as a21m,n as a21n,o as a21o,r as a21p,s as a21q,t as a21r,u as a21s}from'./bcs-BrmSFFhn.mjs';import{a as a21t,c as a21u,d as a21v,f as a21w,i as a21x,l as a21y,m as a21z,n as a21A,o as a21B,p as a21C,r as a21D,s as a21E,t as a21F,u as a21G}from'./client-tu51vSnB.mjs';import{C as a21H,E as a21I,S as a21J,T as a21K,_ as a21L,a as a21M,b as a21N,c as a21O,d as a21P,f as a21Q,g as a21R,h as a21S,i as a21T,l as a21U,m as a21V,n as a21W,o as a21X,p as a21Y,r as a21Z,s as a21a0,t as a21a1,u as a21a2,v as a21a3,w as a21a4,x as a21a5,y as a21a6}from'./utils-npJYSbqk.mjs';import{_ as a21a7,c as a21a8,d as a21a9,f as a21aa,g as a21ab,h as a21ac,l as a21ad,n as a21ae,r as a21af,t as a21ag,u as a21ah}from'./Transaction-CzqJDezj.mjs';import{n as a21ai,t as a21aj}from'./network-CeDd07Hg.mjs';import{a as a21ak,i as a21al,n as a21am,o as a21an,s as a21ao,t as a21ap}from'./publickey-5xoCmE9g.mjs';import{a as a21aq,d as a21ar,f as a21as,i as a21at,l as a21au,n as a21av,o as a21aw,p as a21ax,r as a21ay,s as a21az,t as a21aA}from'./keypair-BqNhxtoP.mjs';import{i as a21aB,n as a21aC,r as a21aD,t as a21aE}from'./mnemonics-C6qlqegr.mjs';import{n as a21aF,r as a21aG,t as a21aH}from'./faucet-RNvBvVJf.mjs';import{n as a21aI,r as a21aJ,t as a21aK}from'./graphql-Dfa5Zfn9.mjs';import{a as a21aL,i as a21aM,n as a21aN,r as a21aO,t as a21aP}from'./grpc-BkdsSAp4.mjs';import{t as a21aQ}from'./jsonRpc-1qOo1zjv.mjs';import{n as a21aR,t as a21aS}from'./ed25519-LQZKHVDN.mjs';import{t as a21aT}from'./publickey-CQWQyM6S.mjs';import{t as a21aU}from'./publickey-C9TocS69.mjs';import{n as a21aV,t as a21aW}from'./secp256k1-DhrvBMbI.mjs';import{t as a21aX}from'./publickey-BzPz9Uwr.mjs';import{n as a21aY,t as a21aZ}from'./secp256r1-BCaQWLGZ.mjs';import{n as a21b0,t as a21b1}from'./passkey-CS2Qexll.mjs';import{t as a21b2}from'./publickey-CvCDfw_N.mjs';import{n as a21b3,t as a21b4}from'./falcon512-Be5BlPLD.mjs';import{a as a21b5,c as a21b6,i as a21b7,n as a21b8,o as a21b9,r as a21ba,s as a21bb,t as a21bc}from'./publickey-DMk4XMWI.mjs';import'./multisig/index.mjs';import{a as a21bd,i as a21be,n as a21bf,r as a21bg,t as a21bh}from'./transactions-CkMcWBKS.mjs';import{$ as a21bi,A as a21bj,B as a21bk,C as a21bl,D as a21bm,E as a21bn,F as a21bo,G as a21bp,H as a21bq,I as a21br,J as a21bs,K as a21bt,L as a21bu,M as a21bv,N as a21bw,O as a21bx,P as a21by,Q as a21bz,R as a21bA,S as a21bB,St as a21bC,T as a21bD,U as a21bE,V as a21bF,W as a21bG,X as a21bH,Y as a21bI,Z as a21bJ,_ as a21bK,_t as a21bL,a as a21bM,at as a21bN,b as a21bO,bt as a21bP,c as a21bQ,ct as a21bR,d as a21bS,dt as a21bT,et as a21bU,f as a21bV,ft as a21bW,g as a21bX,gt as a21bY,h as a21bZ,ht as a21c0,i as a21c1,it as a21c2,j as a21c3,k as a21c4,l as a21c5,lt as a21c6,m as a21c7,mt as a21c8,n as a21c9,nt as a21ca,o as a21cb,ot as a21cc,p as a21cd,pt as a21ce,q as a21cf,r as a21cg,rt as a21ch,s as a21ci,st as a21cj,t as a21ck,tt as a21cl,u as a21cm,ut as a21cn,v as a21co,vt as a21cp,w as a21cq,x as a21cr,xt as a21cs,y as a21ct,yt as a21cu,z as a21cv}from'./common-uweycQjC.mjs';import{a as a21cw,c as a21cx,d as a21cy,f as a21cz,i as a21cA,l as a21cB,n as a21cC,o as a21cD,p as a21cE,r as a21cF,s as a21cG,t as a21cH,u as a21cI}from'./exception-C6IYkBi6.mjs';import{getWowDir,getWowMcpDir}from'./w/local/util.mjs';import{UserModeStorage}from'./w/local/storage.mjs';import{Config}from'./w/local/config.mjs';import{BUITIN_IDS,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,isValidAddress}from'./w/local/local.mjs';import{a as a21cJ,i as a21cK,n as a21cL,o as a21cM,r as a21cN,t as a21cO}from'./logger-Cs5Mf7Mf.mjs';import{CryptoVault,SecureAccountStorage}from'./w/local/secure-storage.mjs';import{Account,DEFAULT_ACCOUNT_NAME,MAX_MESSENGER_ACCOUNTS}from'./w/local/account.mjs';import{TokenInfo}from'./w/local/token.mjs';import{bytesToBigInt,bytesToHex,hexToBytes,isValidEvmAddress,privateKeyToAddress,signEIP1559,signLegacy,toChecksumAddress}from'./w/local/evm/rlp.mjs';import{ETH_MAINNET,EvmNetworkRegistry,registerBridgeEvmNetworks}from'./w/local/evm/networks.mjs';import{EvmAccount}from'./w/local/evm-account.mjs';import{DEFAULT_LIMITS,WIP,WipError,WipSizeError,WipValidationError,createWip,generate_wip,loadWip,sign_wip,verifyWip,verify_wip,wip2html,wipToHtml}from'./w/local/wip.mjs';import{LocalProject}from'./w/local/project.mjs';import{GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,account_operation,fetch_token_info_operation,local_info_operation,local_mark_operation,query_account,query_account_list,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list}from'./w/local/index.mjs';import{$ as a21cP,A as a21cQ,B as a21cR,C as a21cS,D as a21cT,E as a21cU,F as a21cV,G as a21cW,H as a21cX,I as a21cY,J as a21cZ,K as a21d0,L as a21d1,M as a21d2,N as a21d3,O as a21d4,P as a21d5,Q as a21d6,R as a21d7,S as a21d8,T as a21d9,U as a21da,V as a21db,W as a21dc,X as a21dd,Y as a21de,Z as a21df,_ as a21dg,a as a21dh,at as a21di,b as a21dj,c as a21dk,ct as a21dl,d as a21dm,et as a21dn,f as a21do,g as a21dp,h as a21dq,i as a21dr,it as a21ds,j as a21dt,k as a21du,l as a21dv,m as a21dw,n as a21dx,nt as a21dy,o as a21dz,ot as a21dA,p as a21dB,q as a21dC,r as a21dD,rt as a21dE,s as a21dF,st as a21dG,t as a21dH,tt as a21dI,u as a21dJ,v as a21dK,w as a21dL,x as a21dM,y as a21dN,z as a21dO}from'./object-YcOt7Qyl.mjs';import{t as a21dP}from'./received-CI0eLHuI.mjs';import{$ as a21dQ,A as a21dR,B as a21dS,C as a21dT,D as a21dU,E as a21dV,F as a21dW,G as a21dX,H as a21dY,I as a21dZ,J as a21e0,K as a21e1,L as a21e2,M as a21e3,N as a21e4,O as a21e5,P as a21e6,Q as a21e7,R as a21e8,S as a21e9,T as a21ea,U as a21eb,V as a21ec,W as a21ed,X as a21ee,Y as a21ef,Z as a21eg,_ as a21eh,_t as a21ei,at as a21ej,b as a21ek,bt as a21el,ct as a21em,d as a21en,dt as a21eo,et as a21ep,f as a21eq,ft as a21er,g as a21es,gt as a21et,h as a21eu,ht as a21ev,it as a21ew,j as a21ex,k as a21ey,lt as a21ez,m as a21eA,mt as a21eB,nt as a21eC,ot as a21eD,p as a21eE,pt as a21eF,q as a21eG,rt as a21eH,st as a21eI,tt as a21eJ,ut as a21eK,v as a21eL,vt as a21eM,w as a21eN,x as a21eO,y as a21eP,yt as a21eQ,z as a21eR}from'./passport-aLeINryx.mjs';import{i as a21eS,n as a21eT,r as a21eU,t as a21eV}from'./base-CmGBEIzb.mjs';import{CallPayment}from'./w/call/payment.mjs';import{CallAllocation}from'./w/call/allocation.mjs';import{BuiltinPermissionIndex,CallPermission,isBizPermIndex}from'./w/call/permission.mjs';import{CallArbitration}from'./w/call/arbitration.mjs';import{n as a21eW,t as a21eX}from'./util-DxDXSeQI.mjs';import{CallDemand}from'./w/call/demand.mjs';import{CallGuard,formatGuardParseErrors,gen_passport,generateNodeComments,guard2file,parseGuardFile,parseGuardFromMarkdown,validateGuardData,validateGuardNode}from'./w/call/guard.mjs';import{CallProgress}from'./w/call/progress.mjs';import{CallMachine,machineNode2file}from'./w/call/machine.mjs';import{$ as a21eY,t as a21eZ}from'./service-uuInIVYC.mjs';import{CallReward,transformRewardInput}from'./w/call/reward.mjs';import{CallRepository}from'./w/call/repository.mjs';import{CallTreasury}from'./w/call/treasury.mjs';import{n as a21f0,r as a21f1,t as a21f2}from'./call-BNVA5-PG.mjs';import{n as a21f3,t as a21f4}from'./proof-ByE09RhA.mjs';import{C as a21f5,D as a21f6,E as a21f7,O as a21f8,S as a21f9,T as a21fa,_ as a21fb,a as a21fc,b as a21fd,c as a21fe,d as a21ff,f as a21fg,g as a21fh,h as a21fi,i as a21fj,k as a21fk,l as a21fl,m as a21fm,n as a21fn,o as a21fo,p as a21fp,r as a21fq,s as a21fr,t as a21fs,u as a21ft,v as a21fu,w as a21fv,x as a21fw,y as a21fx}from'./query-BQd-slSZ.mjs';import{DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,MAX_QUERY_LIMIT,MessageDirection,MessageStatus,MessageType,MessengerError,MessengerErrorCode,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT}from'./w/messenger/types.mjs';import{t as a21fy}from'./messenger-Bq_x9zCa.mjs';import{_ as a21fz,a as a21fA,b as a21fB,c as a21fC,d as a21fD,f as a21fE,g as a21fF,h as a21fG,i as a21fH,l as a21fI,m as a21fJ,n as a21fK,o as a21fL,p as a21fM,r as a21fN,s as a21fO,t as a21fP,u as a21fQ,v as a21fR,y as a21fS}from'./messenger-api-7S2KPVXu.mjs';import{A as a21fT,B as a21fU,C as a21fV,D as a21fW,E as a21fX,F as a21fY,I as a21fZ,L as a21g0,M as a21g1,N as a21g2,O as a21g3,P as a21g4,R as a21g5,S as a21g6,T as a21g7,V as a21g8,_ as a21g9,a as a21ga,b as a21gb,c as a21gc,d as a21gd,f as a21ge,g as a21gf,h as a21gg,i as a21gh,j as a21gi,k as a21gj,l as a21gk,m as a21gl,n as a21gm,o as a21gn,p as a21go,r as a21gp,s as a21gq,t as a21gr,u as a21gs,v as a21gt,w as a21gu,x as a21gv,y as a21gw,z as a21gx}from'./w-B1_lZaGr.mjs';const SCHEMA_VERSION='1.0.0';function parseSemver(a){const b=a['match'](/^(\d+)\.(\d+)\.(\d+)$/);if(!b)return null;return{'major':parseInt(b[0x1],0xa),'minor':parseInt(b[0x2],0xa),'patch':parseInt(b[0x3],0xa)};}function checkSchemaCompatibility(a,b){const c=parseSemver(a),d=parseSemver(b);if(!c)return{'compatible':![],'reason':'Invalid\x20client\x20version\x20format:\x20'+a};if(!d)return{'compatible':![],'reason':'Invalid\x20server\x20version\x20format:\x20'+b};if(c['major']!==d['major'])return{'compatible':![],'reason':'Major\x20version\x20mismatch:\x20client\x20'+a+'\x20vs\x20server\x20'+b};if(d['minor']<c['minor'])return{'compatible':![],'reason':'Server\x20minor\x20version\x20('+d['minor']+')\x20is\x20lower\x20than\x20client\x20minor\x20version\x20('+c['minor']+')'};return{'compatible':!![]};}export{Account,a21dH as AllocationMode,a21dx as AmountType,a21dD as ArbStatus,a21bh as Arguments,a21be as AsyncCache,a21en as BRIDGE_CURRENT_VERSION,a21eq as BRIDGE_EVM_ADDRESS_LENGTH,a21eE as BRIDGE_MESSAGE_VERSION,a21gp as BRIDGE_STEP_DESCRIPTIONS,a21eA as BRIDGE_TRANSFER_STATUS_APPROVED,a21eu as BRIDGE_TRANSFER_STATUS_CLAIMED,a21es as BRIDGE_TRANSFER_STATUS_NOT_FOUND,a21eh as BRIDGE_TRANSFER_STATUS_PENDING,BUITIN_IDS,a21C as BaseClient,a21r as BcsEnum,a21n as BcsStruct,a21p as BcsTuple,a21m as BcsType,a21fw as BridgeChainId,a21gr as BridgeClient,a21f9 as BridgeErrorCode,a21gm as BridgeNodeClient,a21f5 as BridgeTokenId,a21gh as BridgeTransferDirection,a21ga as BridgeTransferStatus,a21gn as BridgeTransferStep,a21fv as BridgeVersion,a21b1 as BrowserPasskeyProvider,BuiltinPermissionIndex,a21fr as COMMON_MISTAKES,CallAllocation,CallArbitration,a21eV as CallBase,a21f2 as CallContact,CallDemand,CallGuard,CallMachine,a21eY as CallOrder,CallPayment,CallPermission,a21f0 as CallPersonal,CallProgress,a21f4 as CallProof,CallRepository,CallReward,a21eZ as CallService,CallTreasury,a21z as ClientCache,a21ck as CoinWrapPrefix,Config,a21c9 as ContextType,a21w as CoreClient,CryptoVault,DEFAULT_ACCOUNT_NAME,a21aS as DEFAULT_ED25519_DERIVATION_PATH,a21b4 as DEFAULT_FALCON512_DERIVATION_PATH,DEFAULT_LIMITS,a21eL as DEFAULT_LOCK_DURATION,DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,a21aW as DEFAULT_SECP256K1_DERIVATION_PATH,a21aZ as DEFAULT_SECP256R1_DERIVATION_PATH,a21eP as DISCOUNT_TYPE_MINUS,a21ek as DISCOUNT_TYPE_RATES,a21dr as DiscountType,a21cg as ENTITY_LINKER_ADDRESS,a21c1 as ENTITY_REGISTRAR_ADDRESS,a21aj as ENTRYPOINT,a21fT as ERC20_TRANSFER_TOPIC,ETH_MAINNET,a21aR as Ed25519Keypair,a21aT as Ed25519PublicKey,a21bM as EntityAddress,EvmAccount,EvmNetworkRegistry,a21aA as FALCON512_PRIVATE_KEY_SIZE,a21b3 as Falcon512Keypair,a21b2 as Falcon512PublicKey,a21aH as FaucetRateLimitError,a21cZ as GUARDINSTRUCT,a21de as GUARDQUERY,a21cb as GasCoinType,a21ci as GasTokenType,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,a21bQ as GetObject,a21c5 as GetObjectDescription,a21cm as GetObjectExisted,a21aL as GrpcCoreClient,a21aN as GrpcTypes,a21aP as GrpcWebFetchTransport,a21fe as INFO_CONSTANT,a21dh as IdFrom,a21ah as Inputs,a21bS as IsBcsStringLength,a21bV as IsValidArgType,a21cd as IsValidBalance,a21c7 as IsValidEndpoint,a21t as JsonRpcError,a21x as JsonRpcHTTPTransport,a21av as Keypair,a21ay as LEGACY_PRIVATE_KEY_SIZE,LocalInfo,LocalInfoContentMaxCount,LocalInfoContentMaxLength,LocalInfoNameDefault,LocalInfoNameMaxLength,LocalMark,LocalMarkNameMaxLength,LocalMarkTagMaxCount,LocalMarkTagMaxLength,LocalProject,a21cO as LogLevel,a21cL as Logger,a21fg as MAINNET_BRIDGE_CONFIG,a21fp as MAINNET_COMMITTEE_MEMBER_ADDRESSES,a21fm as MAINNET_COMMITTEE_PUBKEYS,a21fi as MAINNET_COMMITTEE_WEIGHTS,a21eO as MAX_ADDRESS_COUNT,a21e9 as MAX_ADMIN_COUNT,a21dT as MAX_AGENT_COUNT,a21eN as MAX_ALLOCATOR_COUNT,a21ea as MAX_ARBITRATION_COUNT,a21dV as MAX_CONSENSUS_REPOSITORIES_COUNT,a21dU as MAX_CONTEXT_REPOSITORY_COUNT,a21e5 as MAX_DATA_SIZE,a21bZ as MAX_DEPENDED_COUNT,a21bX as MAX_DESCRIPTION_LENGTH,a21ey as MAX_DISCOUNT_COUNT_ONCE,a21dR as MAX_DISCOUNT_RECEIVER_ONCE,a21ex as MAX_DISCOUNT_TOTAL_COUNT,a21e3 as MAX_DISPUTE_COUNT,a21e4 as MAX_ENTITY_COUNT,a21bK as MAX_ENV_PERMISSION_GUARD_COUNT,a21e6 as MAX_EXTERNAL_DEPOSIT_GUARD_COUNT,a21dW as MAX_EXTERNAL_WITHDRAW_GUARD_COUNT,a21dZ as MAX_FORWARD_COUNT,a21e2 as MAX_FORWARD_ORDER_COUNT,a21e8 as MAX_GUARD_COUNT_DEMAND,a21eR as MAX_GUARD_COUNT_PASSPORT,a21dS as MAX_GUARD_COUNT_REWARD,a21co as MAX_GUARD_TABLE_ITEM_LENGTH,a21ec as MAX_ID_COUNT_ONCE,a21dY as MAX_IM_COUNT,a21ct as MAX_INPUT_SIZE,a21bO as MAX_LONG_NAME_LENGTH,MAX_MESSENGER_ACCOUNTS,a21cr as MAX_MULTI_OPERANDS,a21eb as MAX_NAMED_OPERATOR_ADDRESS_COUNT,a21ed as MAX_NAMED_OPERATOR_COUNT,a21bB as MAX_NAME_LENGTH,a21dX as MAX_NODE_COUNT,a21e1 as MAX_NODE_COUNT_ONCHAIN,a21eG as MAX_NODE_PAIR_COUNT,a21dz as MAX_OBJECTS_PER_QUERY,a21bl as MAX_PERMISSION_GUARD_COUNT,a21e0 as MAX_PERM_FOR_ENTITY,a21ef as MAX_POLICY_COUNT,a21ee as MAX_POLICY_DESCRIPTION_LEN,a21eg as MAX_POLICY_GUARD_COUNT,a21e7 as MAX_PROOF_SIZE,a21dQ as MAX_PROPOSITION_COUNT,MAX_QUERY_LIMIT,a21ep as MAX_RECIPIENT_COUNT,a21eJ as MAX_RECORD_COUNT_REGISTRAR,a21eC as MAX_RECORD_COUNT_REWARD,a21eH as MAX_RECORD_LENGTH,a21ew as MAX_REPOSITORY_COUNT,a21ej as MAX_REQUIRED_INFO_SIZE,a21eD as MAX_REWARD_COUNT,a21eI as MAX_SALE_COUNT,a21em as MAX_SERVER_PUBKEY_SIZE,a21ez as MAX_SERVER_SIGNATURE_SIZE,a21eK as MAX_SHARING_COUNT,a21eo as MAX_SUBMISSION_SIZE_PASSPORT,a21cq as MAX_TABLE_SIZE,a21er as MAX_TAGS_COUNT,a21eF as MAX_VOTING_GUARD_COUNT,a21eB as MAX_VOTOR_COUNT,a21ev as MAX_WIP_HASH_LENGTH,a21et as MAX_WIP_LENGTH,a21Q as MIST_PER_WOW,a21Y as MOVE_STDLIB_ADDRESS,MessageDirection,MessageStatus,MessageType,a21fy as Messenger,MessengerError,MessengerErrorCode,a21fB as MessengerManager,a21bD as Modules,a21cH as MoveErrors,a21bc as MultiSigPublicKey,a21b6 as MultiSigSigner,NORMAL_MESSAGE_BYTES_LIMIT,a21dF as OBJECT_TYPE_DEFINITIONS,a21ei as ONCHAIN_CONSTANTS,a21bd as ObjectCache,a21bn as ObjectType,a21bm as OperatorType,a21at as PRIVATE_KEY_SIZE,a21bx as PackageAddress,a21bf as ParallelTransactionExecutor,a21b0 as PasskeyKeypair,a21ax as PasskeyPublicKey,a21ap as PublicKey,a21c4 as RecipientType,a21bj as RegistrarAddress,a21eT as ResponseData,SCHEMA_VERSION,a21al as SIGNATURE_FLAG_TO_SCHEME,a21ak as SIGNATURE_SCHEME_TO_FLAG,a21an as SIGNATURE_SCHEME_TO_SIZE,a21aV as Secp256k1Keypair,a21aU as Secp256k1PublicKey,a21aY as Secp256r1Keypair,a21aX as Secp256r1PublicKey,SecureAccountStorage,a21bg as SerialTransactionExecutor,a21aq as Signer,a21ac as SimulationError,a21gi as TOKENS_CLAIMED_TOPIC,a21g1 as TOKENS_DEPOSITED_TOPIC,a21g2 as TOKENS_DEPOSITED_V2_TOPIC,TokenInfo,a21ag as Transaction,a21a9 as TransactionCommands,a21ab as TransactionDataBuilder,a21fa as TransferStatus,a21dk as TreasuryOp,a21s as TypeTagSerializer,a21eM as USER_DEFINED_PERM_INDEX_START,a21aa as UpgradePolicy,UserModeStorage,a21c3 as ValueType,a21cC as WErrors,a21cF as WException,WIP,a21eQ as WITHDRAW_DURATION_TIME,a21el as WOWOK_WTS_PROOF_TYPE,a21i as WOW_ADDRESS_LENGTH,a21V as WOW_CLOCK_OBJECT_ID,a21S as WOW_COIN_REGISTRY_OBJECT_ID,a21R as WOW_DECIMALS,a21L as WOW_DENY_LIST_OBJECT_ID,a21a3 as WOW_ENTITY_OBJECT_ID,a21a6 as WOW_FRAMEWORK_ADDRESS,a21N as WOW_RANDOM_OBJECT_ID,a21a5 as WOW_REGISTRAR_OBJECT_ID,a21J as WOW_SYSTEM_ADDRESS,a21H as WOW_SYSTEM_MODULE_NAME,a21a4 as WOW_SYSTEM_STATE_OBJECT_ID,a21K as WOW_TYPE_ARG,WTS_FILE_BYTES_LIMIT,WTS_MAX_MESSAGE_COUNT,a21cA as WValidate,a21cw as W_ENSURE,a21cD as W_ERROR,a21cG as W_FAILURE,a21aw as W_PRIVATE_KEY_PREFIX,a21cx as W_SAFE,a21cB as W_SUCCESS,a21cI as W_VALIDATE_PARAM,WipError,WipSizeError,WipValidationError,a21dv as WitnessSourceType,a21dJ as WitnessTargetType,a21bv as WitnessType,a21gw as WowClaimStatus,a21F as WowClient,a21aK as WowGraphQLClient,a21aI as WowGraphQLRequestError,a21aO as WowGrpcClient,a21B as WowHTTPStatusError,a21E as WowHTTPTransportError,a21A as WowJsonRpcClient,account_operation,a21bw as arbitrationFn,a21o as bcs,a21d6 as bcsBytesToValue,a21fP as blacklist,a21fV as buildClaimMessage,a21am as bytesEqual,bytesToBigInt,bytesToHex,checkSchemaCompatibility,a21dc as checkType,a21gu as claimOnEth,a21g7 as claimOnEthBySeq,a21gb as claimOnWow,a21af as coinWithBalance,a21k as compareBcsBytes,a21by as contactFn,a21cN as createSensitiveLogger,a21bo as createValueContainer,createWip,a21dm as data2object,a21az as decodeWowPrivateKey,a21br as demandFn,a21fW as depositErc20,a21g3 as depositEth,a21gj as depositFromEth,a21g6 as depositFromWow,a21I as deriveDynamicFieldID,a21a0 as deriveObjectID,a21g4 as encodeApprove,a21fY as encodeBridgeERC20,a21fZ as encodeBridgeERC20V2,a21g0 as encodeBridgeETH,a21g5 as encodeBridgeETHV2,a21gx as encodeIsTransferProcessed,a21fU as encodeTokenTransferPayloadV2,a21g8 as encodeTransferBridgedTokensWithSignatures,a21au as encodeWowPrivateKey,a21cy as enrichMoveError,a21cP as extractCoinType,a21u as extractStatusFromEffectsBcs,a21fK as extractZipFromPlaintext,a21fN as extract_zip_messages,fetch_token_info_operation,a21dd as filterGuardInstruct,a21fh as findEvmChainConfig,a21fb as findEvmChainConfigByBridgeChainId,a21fu as findToken,a21fx as findTokenBySymbol,a21O as formatAddress,a21U as formatDigest,formatGuardParseErrors,a21y as formatMoveAbortMessage,a21fH as friendslist,a21a1 as fromBase58,a21W as fromBase64,a21Z as fromHex,gen_passport,a21f3 as gen_proof,generateNodeComments,generate_wip,a21fA as generate_wts,a21cW as getCallEnvAccount,a21eU as getCoinParam,a21aF as getFaucetHost,a21ai as getFullnodeUrl,a21df as getGuardQueryInfo,a21aQ as getJsonRpcFullnodeUrl,a21cK as getLogLevel,a21fL as getMessengerManager,a21cz as getMoveErrorDescription,a21do as getMoveNameFromNumber,a21dB as getMoveNameFromObjectType,a21dw as getNumberFromMoveName,a21dq as getNumberFromObjectType,a21dp as getNumbersFromObjectTypes,a21dg as getObjectTypeDefinition,a21dK as getObjectTypeDefinitionFromNumber,a21dN as getObjectTypeFromMoveName,a21dj as getObjectTypeFromNumber,a21dM as getObjectTypesFromNumbers,a21a8 as getPureBcsSchema,getWowDir,getWowMcpDir,guard2file,a21fO as guardlist,hexToBytes,a21d8 as idFromToString,a21a7 as isArgument,isBizPermIndex,a21eS as isCallResultSubmission,a21f7 as isEvmChain,a21fX as isEvmNonceAlreadyProcessed,a21bu as isGasTokenType,a21bA as isThisPackage,a21ae as isTransaction,isValidAddress,a21cv as isValidArray,a21aE as isValidBIP32Path,a21bk as isValidDescription,isValidEvmAddress,a21aC as isValidHardenedPath,a21bF as isValidHttpUrl,a21cS as isValidIdFromInput,a21bq as isValidLongName,a21bE as isValidName,a21e as isValidNamedPackage,a21g as isValidStructTag,a21c as isValidTransactionDigest,a21bG as isValidU128,a21bp as isValidU16,a21bt as isValidU256,a21cf as isValidU32,a21bs as isValidU64,a21bI as isValidU8,a21dn as isValidValueContainer,a21bH as isValidValueType,a21bJ as isValidValueTypeInput,a21bz as isValidWitnessTypeInput,a21a as isValidWowAddress,a21f as isValidWowObjectId,a21bi as isValueTypeNumber,a21cE as isWException,a21bU as isWitnessType,a21f6 as isWowChain,a21aJ as isWowGraphQLClient,a21aM as isWowGrpcClient,a21D as isWowJsonRpcClient,loadWip,local_info_operation,local_mark_operation,a21cJ as logger,a21cl as machineFn,machineNode2file,a21gq as makeBridgeTransferState,a21fC as mark_conversation_as_viewed,a21fI as mark_messages_as_viewed,a21ao as messageWithIntent,a21aD as mnemonicToSeed,a21aB as mnemonicToSeedHex,a21h as normalizeStructTag,a21l as normalizeTypeTag,a21b as normalizeWowAddress,a21d as normalizeWowObjectId,a21ad as normalizedTypeToMoveTypeSignature,a21dL as numberToObjectType,a21d9 as objectTypeToNumber,a21ca as object_module_and_name_from_type,a21ch as object_name_from_type,a21dI as owner_receive,a21gc as parseEthClaimEvent,a21gk as parseEthDepositEvent,parseGuardFile,parseGuardFromMarkdown,a21cU as parseIdFrom,a21dy as parseObjectType,a21b8 as parsePartialSignatures,a21dE as parseRecipient,a21ar as parseSerializedSignature,a21j as parseStructTag,a21a2 as parseToMist,a21P as parseToUnits,a21G as parseTransactionBcs,a21v as parseTransactionEffectsBcs,a21ds as parseTypeParameter,a21c2 as parseValueType,a21bN as parseWitnessType,a21di as permission_set,privateKeyToAddress,a21fQ as proof_message,a21ba as publicKeyFromRawBytes,a21b7 as publicKeyFromWowBytes,a21fD as pull_messages,a21q as pureBcsSchemaFromTypeName,a21gs as queryErc20Balance,a21gd as queryEthBalance,a21ge as queryEthTxConfirmations,a21go as queryEthTxReceipt,a21gl as queryEvmToWowTransferStatus,a21eX as queryObjectWithType,a21eW as queryObjectsWithType,a21fl as queryPermissions,a21ft as queryProtocolInfo,a21cT as queryTableItem_AddressMark,a21d4 as queryTableItem_DemandPresenter,a21du as queryTableItem_EntityLinker,a21cQ as queryTableItem_EntityRegistrar,a21dt as queryTableItem_MachineNode,a21d2 as queryTableItem_PermissionPerm,a21d3 as queryTableItem_ProgressHistory,a21d5 as queryTableItem_RepositoryData,a21cV as queryTableItem_RewardRecord,a21cY as queryTableItem_TreasuryHistory,a21gv as queryWowClaimStatus,a21gg as queryWowToEvmTransferStatus,a21gf as queryWowTx,query_account,query_account_list,a21fs as query_address_activity,a21fn as query_address_activity_json,a21ff as query_common_mistakes,a21f8 as query_events,a21fk as query_events_json,query_local_info,query_local_info_default,query_local_info_list,query_local_mark,query_local_mark_list,query_local_token_list,a21fq as query_object_history,a21fj as query_object_history_json,a21d1 as query_objects,a21d7 as query_objects_json,a21dO as query_personal,a21dP as query_received,a21cR as query_table,a21db as query_tableItem,a21cX as query_table_json,a21fc as query_transaction,a21fo as query_transaction_json,a21da as raw2type,registerBridgeEvmNetworks,a21cc as repositoryFn,a21aG as requestWowFromFaucetV2,a21d0 as resolveCallEnv,a21dC as restoreNodeFromOutput,a21cj as rewardFn,a21fE as send_file,a21fM as send_message,a21bR as serviceFn,a21cM as setLogLevel,a21fJ as settings,signEIP1559,signLegacy,sign_wip,a21fG as sign_wts,a21T as toBase58,a21M as toBase64,toChecksumAddress,a21X as toHex,a21as as toSerializedSignature,a21c6 as toTxAddress,a21cn as toTxAddressVec,a21bT as toTxObject,a21bW as toTxString,a21ce as toTxU128,a21c8 as toTxU16,a21c0 as toTxU16Vec,a21bY as toTxU256,a21bL as toTxU32,a21cp as toTxU64,a21cu as toTxU8,a21f1 as transformPersonalInput,transformRewardInput,a21bP as treasuryFn,a21dA as uint2address,a21dG as validObjects,validateGuardData,validateGuardNode,a21dl as valueToBcsBytes,a21cs as valueTypeToString,a21fd as verifyCommitteeConsistency,a21b5 as verifyPersonalMessageSignature,a21b9 as verifySignature,a21bb as verifyTransactionSignature,verifyWip,verify_wip,a21fF as verify_wts,a21g9 as waitForEthTx,a21gt as waitForWowTx,a21fz as watch_conversations,a21fR as watch_messages,wip2html,wipToHtml,a21bC as witnessTypeToString,a21fS as wts2html};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $C as
|
|
1
|
+
import { $C as ProtocolConfig, $S as ProgrammableTransaction, $w as WowTransactionBlockResponse, $x as TReferenceGasPriceParams, A as isWowJsonRpcClient, AC as GetPastObjectRequest, AS as WGetNormalizedMoveModulesByPackageParams, Aw as WowMoveNormalizedEnum, Ax as GetNormalizedMoveStructParams, BC as ObjectOwner, BS as WowObjectChangeCreated, Bw as WowObjectDataFilter, Bx as MultiGetTransactionBlocksParams, C as JsonRpcError, CC as DynamicFieldType, CS as WGetCheckpointParams, Cw as WowExecutionResult, Cx as GetDynamicFieldsParams, D as PaginationArguments, DC as ExecuteTransactionRequestType, DS as WGetMoveFunctionArgTypesParams, Dw as WowMoveAbort, Dx as GetNormalizedMoveFunctionParams, E as OrderArguments, EC as EventId, ES as WGetLatestCheckpointSequenceNumberParams, Ew as WowMoveAbilitySet, Ex as GetMoveFunctionArgTypesParams, FC as MoveVariant, FS as WGetTransactionBlockParams, Fw as WowMoveNormalizedType, Fx as GetStakesByIdsParams, GC as PaginatedCheckpoints, GS as WowObjectChangeWrapped, Gw as WowParsedData, Gx as TBalanceParams, HC as ObjectResponseError, HS as WowObjectChangeMutated, Hw as WowObjectRef, Hx as QueryTransactionBlocksParams, IC as MultiSig, IS as WMultiGetObjectsParams, Iw as WowMoveStructTypeParameter, Ix as GetStakesParams, JC as PaginatedEvents, JS as CheckpointPage, Jw as WowSystemStateSummary, Jx as TCommitteeInfoParams, KC as PaginatedCoins, KS as Order, Kw as WowProgrammableMoveCall, Kx as TCoinMetadataParams, LC as MultiSigLegacy, LS as WMultiGetTransactionBlocksParams, Lw as WowMoveVisibility, Lx as GetTotalSupplyParams, MC as MoveCallParams, MS as WGetObjectParams, Mw as WowMoveNormalizedFunction, Mx as GetOwnedObjectsParams, NC as MoveStruct, NS as WGetProtocolConfigParams, Nw as WowMoveNormalizedModule, Nx as GetProtocolConfigParams, O as WowJsonRpcClient, OC as ExecutionStatus, OS as WGetNormalizedMoveFunctionParams, Ow as WowMoveFunctionArgType, Ox as GetNormalizedMoveModuleParams, PC as MoveValue, PS as WGetTotalTransactionBlocksParams, Pw as WowMoveNormalizedStruct, Px as GetReferenceGasPriceParams, QC as PasskeyAuthenticator, QS as EpochPage, Qw as WowTransactionBlockKind, Qx as TOwnedObjectsParams, RC as MultiSigPublicKey, RS as WTryGetPastObjectParams, Rw as WowObjectChange, Rx as GetTransactionBlockParams, S as getJsonRpcFullnodeUrl, SC as DynamicFieldName, SS as WGetChainIdentifierParams, Sw as WowEventFilter, Sx as GetDynamicFieldObjectParams, T as WowHTTPTransportError, TC as EndOfEpochData, TS as WGetEventsParams, Tw as WowMoveAbility, Tx as GetLatestWowSystemStateParams, UC as ObjectValueKind, US as WowObjectChangePublished, Uw as WowObjectResponse, Ux as TAllBalancesParams, VC as ObjectRead, VS as WowObjectChangeDeleted, Vw as WowObjectDataOptions, Vx as QueryEventsParams, WC as OwnedObjectRef, WS as WowObjectChangeTransferred, Ww as WowObjectResponseQuery, Wx as TAllCoinsParams, XC as PaginatedTransactionResponse, XS as EndOfEpochInfo, Xw as WowTransactionBlock, Xx as TDynamicFieldsParams, YC as PaginatedObjectsResponse, YS as DynamicFieldPage, Yw as WowTransaction, Yx as TDynamicFieldObjectParams, ZC as Party, ZS as EpochInfo, Zw as WowTransactionBlockBuilderMode, Zx as TLatestWowSystemStateParams, _C as DevInspectArgs, _S as UnsafeTransferObjectParams, _w as WowCallArg, _x as GetCheckpointParams, aC as AccumulatorValue, aS as TryMultiGetPastObjectsParams, aT as HttpHeaders, aw as StakeObject, bC as DryRunTransactionBlockResponse, bS as WDryRunTransactionBlockParams, bw as WowEndOfEpochTransactionKind, bx as GetCoinsParams, cC as Checkpoint, cS as UnsafeMoveCallParams, cT as JsonRpcTransport, cw as TransactionBlockEffectsModifiedAtVersions, cx as BscribeTransactionParams, dC as CoinStruct, dS as UnsafePayWowParams, dw as TransferObjectParams, dx as EryEventsParams, eC as WowMoveNormalizedModules, eS as TStakesByIdsParams, eT as WowTransactionBlockResponseOptions, ew as ProtocolConfigValue, fC as CoinSupply, fS as UnsafePublishParams, fw as TypeOrigin, fx as EryTransactionBlocksParams, gC as DelegatedStake, gS as UnsafeSplitCoinParams, gw as WowArgument, gx as GetBalanceParams, hC as ConsensusDeterminedVersionAssignments, hS as UnsafeSplitCoinEqualParams, hw as ValidatorsApy, hx as GetAllCoinsParams, iC as AccumulatorOperation, iS as TryGetPastObjectParams, iT as WowWithdrawalTypeArg, iw as Signature, jC as InputObjectKind, jS as WGetNormalizedMoveStructParams, jw as WowMoveNormalizedField, jx as GetObjectParams, k as WowJsonRpcClientOptions, kC as GasCostSummary, kS as WGetNormalizedMoveModuleParams, kw as WowMoveModuleId, kx as GetNormalizedMoveModulesByPackageParams, lC as CheckpointCommitment, lS as UnsafePayAllWowParams, lT as JsonRpcTransportRequestOptions, lw as TransactionEffects, lx as DevInspectTransactionBlockParams, mC as CompressedSignature, mS as UnsafeRequestWithdrawStakeParams, mw as ValidatorApy, mx as GetAllBalancesParams, nC as WowMovePackage, nS as TTotalSupplyParams, nT as WowValidatorSummary, nw as RPCTransactionRequestParams, oC as Balance, oS as UnsafeBatchTransactionParams, oT as JsonRpcHTTPTransport, ow as TransactionBlockBytes, pC as CommitteeInfo, pS as UnsafeRequestAddStakeParams, pw as UpgradeInfo, px as ExecuteTransactionBlockParams, qC as PaginatedDynamicFieldInfos, qS as CoinBalance, qw as WowReservation, qx as TCoinsParams, rC as AccumulatorEvent, rS as TValidatorsApyParams, rT as WowWithdrawFrom, rw as RawData, sC as BalanceChange, sS as UnsafeMergeCoinsParams, sT as JsonRpcHTTPTransportOptions, sw as TransactionBlockData, sx as BscribeEventParams, tC as WowMoveObject, tS as TStakesParams, tT as WowTransactionBlockResponseQuery, tw as PublicKey, uC as CheckpointId, uS as UnsafePayParams, uw as TransactionFilter, ux as DryRunTransactionBlockParams, vC as DevInspectResults, vS as UnsafeTransferWowParams, vw as WowChangeEpoch, vx as GetCheckpointsParams, w as WowHTTPStatusError, wC as ECMHLiveObjectSetDigest, wS as WGetCheckpointsParams, ww as WowGasData, wx as GetLatestCheckpointSequenceNumberParams, xC as DynamicFieldInfo, xS as WExecuteTransactionBlockParams, xw as WowEvent, xx as GetCommitteeInfoParams, yC as DisplayFieldsResponse, yS as WDevInspectTransactionBlockParams, yw as WowCoinMetadata, yx as GetCoinMetadataParams, zC as MultiSigPublicKeyLegacy, zS as WTryMultiGetPastObjectsParams, zw as WowObjectData, zx as MultiGetObjectsParams } from "../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { type AccumulatorEvent, type AccumulatorOperation, type AccumulatorValue, type Balance, type BalanceChange, type BscribeEventParams, type BscribeTransactionParams, type Checkpoint, type CheckpointCommitment, type CheckpointId, type CheckpointPage, type CoinBalance, type CoinStruct, type CoinSupply, type CommitteeInfo, type CompressedSignature, type ConsensusDeterminedVersionAssignments, type DelegatedStake, type DevInspectArgs, type DevInspectResults, type DevInspectTransactionBlockParams, type DisplayFieldsResponse, type DryRunTransactionBlockParams, type DryRunTransactionBlockResponse, type DynamicFieldInfo, type DynamicFieldName, type DynamicFieldPage, type DynamicFieldType, type ECMHLiveObjectSetDigest, type EndOfEpochData, type EndOfEpochInfo, type EpochInfo, type EpochPage, type EryEventsParams, type EryTransactionBlocksParams, type EventId, type ExecuteTransactionBlockParams, type ExecuteTransactionRequestType, type ExecutionStatus, type GasCostSummary, type GetAllBalancesParams, type GetAllCoinsParams, type GetBalanceParams, type GetCheckpointParams, type GetCheckpointsParams, type GetCoinMetadataParams, type GetCoinsParams, type GetCommitteeInfoParams, type GetDynamicFieldObjectParams, type GetDynamicFieldsParams, type GetLatestCheckpointSequenceNumberParams, type GetLatestWowSystemStateParams, type GetMoveFunctionArgTypesParams, type GetNormalizedMoveFunctionParams, type GetNormalizedMoveModuleParams, type GetNormalizedMoveModulesByPackageParams, type GetNormalizedMoveStructParams, type GetObjectParams, type GetOwnedObjectsParams, type GetPastObjectRequest, type GetProtocolConfigParams, type GetReferenceGasPriceParams, type GetStakesByIdsParams, type GetStakesParams, type GetTotalSupplyParams, type GetTransactionBlockParams, type HttpHeaders, type InputObjectKind, JsonRpcError, JsonRpcHTTPTransport, type JsonRpcHTTPTransportOptions, type JsonRpcTransport, type JsonRpcTransportRequestOptions, type MoveCallParams, type MoveStruct, type MoveValue, type MoveVariant, type MultiGetObjectsParams, type MultiGetTransactionBlocksParams, type MultiSig, type MultiSigLegacy, type MultiSigPublicKey, type MultiSigPublicKeyLegacy, type ObjectOwner, type ObjectRead, type ObjectResponseError, type ObjectValueKind, type Order, type OrderArguments, type OwnedObjectRef, type PaginatedCheckpoints, type PaginatedCoins, type PaginatedDynamicFieldInfos, type PaginatedEvents, type PaginatedObjectsResponse, type PaginatedTransactionResponse, type PaginationArguments, type Party, type PasskeyAuthenticator, type ProgrammableTransaction, type ProtocolConfig, type ProtocolConfigValue, type PublicKey, type QueryEventsParams, type QueryTransactionBlocksParams, type RPCTransactionRequestParams, type RawData, type Signature, type StakeObject, type TAllBalancesParams, type TAllCoinsParams, type TBalanceParams, type TCoinMetadataParams, type TCoinsParams, type TCommitteeInfoParams, type TDynamicFieldObjectParams, type TDynamicFieldsParams, type TLatestWowSystemStateParams, type TOwnedObjectsParams, type TReferenceGasPriceParams, type TStakesByIdsParams, type TStakesParams, type TTotalSupplyParams, type TValidatorsApyParams, type TransactionBlockBytes, type TransactionBlockData, type TransactionBlockEffectsModifiedAtVersions, type TransactionEffects, type TransactionFilter, type TransferObjectParams, type TryGetPastObjectParams, type TryMultiGetPastObjectsParams, type TypeOrigin, type UnsafeBatchTransactionParams, type UnsafeMergeCoinsParams, type UnsafeMoveCallParams, type UnsafePayAllWowParams, type UnsafePayParams, type UnsafePayWowParams, type UnsafePublishParams, type UnsafeRequestAddStakeParams, type UnsafeRequestWithdrawStakeParams, type UnsafeSplitCoinEqualParams, type UnsafeSplitCoinParams, type UnsafeTransferObjectParams, type UnsafeTransferWowParams, type UpgradeInfo, type ValidatorApy, type ValidatorsApy, type WDevInspectTransactionBlockParams, type WDryRunTransactionBlockParams, type WExecuteTransactionBlockParams, type WGetChainIdentifierParams, type WGetCheckpointParams, type WGetCheckpointsParams, type WGetEventsParams, type WGetLatestCheckpointSequenceNumberParams, type WGetMoveFunctionArgTypesParams, type WGetNormalizedMoveFunctionParams, type WGetNormalizedMoveModuleParams, type WGetNormalizedMoveModulesByPackageParams, type WGetNormalizedMoveStructParams, type WGetObjectParams, type WGetProtocolConfigParams, type WGetTotalTransactionBlocksParams, type WGetTransactionBlockParams, type WMultiGetObjectsParams, type WMultiGetTransactionBlocksParams, type WTryGetPastObjectParams, type WTryMultiGetPastObjectsParams, type WowArgument, type WowCallArg, type WowChangeEpoch, type WowCoinMetadata, type WowEndOfEpochTransactionKind, type WowEvent, type WowEventFilter, type WowExecutionResult, type WowGasData, WowHTTPStatusError, WowHTTPTransportError, WowJsonRpcClient, type WowJsonRpcClientOptions, type WowMoveAbility, type WowMoveAbilitySet, type WowMoveAbort, type WowMoveFunctionArgType, type WowMoveModuleId, type WowMoveNormalizedEnum, type WowMoveNormalizedField, type WowMoveNormalizedFunction, type WowMoveNormalizedModule, type WowMoveNormalizedModules, type WowMoveNormalizedStruct, type WowMoveNormalizedType, type WowMoveObject, type WowMovePackage, type WowMoveStructTypeParameter, type WowMoveVisibility, type WowObjectChange, type WowObjectChangeCreated, type WowObjectChangeDeleted, type WowObjectChangeMutated, type WowObjectChangePublished, type WowObjectChangeTransferred, type WowObjectChangeWrapped, type WowObjectData, type WowObjectDataFilter, type WowObjectDataOptions, type WowObjectRef, type WowObjectResponse, type WowObjectResponseQuery, type WowParsedData, type WowProgrammableMoveCall, type WowReservation, type WowSystemStateSummary, type WowTransaction, type WowTransactionBlock, type WowTransactionBlockBuilderMode, type WowTransactionBlockKind, type WowTransactionBlockResponse, type WowTransactionBlockResponseOptions, type WowTransactionBlockResponseQuery, type WowValidatorSummary, type WowWithdrawFrom, type WowWithdrawalTypeArg, getJsonRpcFullnodeUrl, isWowJsonRpcClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a22a,i as a22b,n as a22c,o as a22d,r as a22e,s as a22f}from'../client-
|
|
1
|
+
import{a as a22a,i as a22b,n as a22c,o as a22d,r as a22e,s as a22f}from'../client-tu51vSnB.mjs';import{t as a22g}from'../jsonRpc-1qOo1zjv.mjs';export{a22a as JsonRpcError,a22b as JsonRpcHTTPTransport,a22d as WowHTTPStatusError,a22f as WowHTTPTransportError,a22c as WowJsonRpcClient,a22g as getJsonRpcFullnodeUrl,a22e as isWowJsonRpcClient};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bb as Ed25519KeypairData, vb as DEFAULT_ED25519_DERIVATION_PATH, xb as Ed25519PublicKey, yb as Ed25519Keypair } from "../../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { DEFAULT_ED25519_DERIVATION_PATH, Ed25519Keypair, type Ed25519KeypairData, Ed25519PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { eb as DEFAULT_FALCON512_DERIVATION_PATH, nb as Falcon512KeypairData, rb as Falcon512PublicKey, tb as Falcon512Keypair } from "../../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { DEFAULT_FALCON512_DERIVATION_PATH, Falcon512Keypair, type Falcon512KeypairData, Falcon512PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ab as
|
|
1
|
+
import { ab as BrowserPasskeyProvider, cb as PasskeyProvider, ib as PasskeyPublicKey, lb as findCommonPublicKey, ob as BrowserPasswordProviderOptions, sb as PasskeyKeypair } from "../../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { BrowserPasskeyProvider, type BrowserPasswordProviderOptions, PasskeyKeypair, type PasskeyProvider, PasskeyPublicKey, type findCommonPublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _b as Secp256k1KeypairData, gb as Secp256k1Keypair, hb as DEFAULT_SECP256K1_DERIVATION_PATH, mb as Secp256k1PublicKey } from "../../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { DEFAULT_SECP256K1_DERIVATION_PATH, Secp256k1Keypair, type Secp256k1KeypairData, Secp256k1PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { db as DEFAULT_SECP256R1_DERIVATION_PATH, fb as Secp256r1Keypair, pb as Secp256r1KeypairData, ub as Secp256r1PublicKey } from "../../index-DDdEf8FJ.mjs";
|
|
2
2
|
export { DEFAULT_SECP256R1_DERIVATION_PATH, Secp256r1Keypair, type Secp256r1KeypairData, Secp256r1PublicKey };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a32a}from'./wow-types-DcqbnAaK.mjs';import{r as a32b}from'./logger-Cs5Mf7Mf.mjs';import{PQSessionCipher}from'./w/messenger/pq/session.mjs';import{PQSessionStoreAdapter}from'./w/messenger/pq/store-adapter.mjs';import{DEFAULT_MESSENGER_CONFIG,MessengerError,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT}from'./w/messenger/types.mjs';import{MessageStorage,SessionStateStorage,getDatabase}from'./w/messenger/storage.mjs';import{base64ToBytes,bytesToBase64,hashPlaintext,verifyMessage}from'./w/messenger/crypto.mjs';import{randomBytes}from'@noble/hashes/utils.js';import*as a32c from'path';import*as a32d from'fs';import{createHash}from'crypto';const logger=a32b('messenger:server');var MessengerServerClient=class{constructor(a){this['config']={...DEFAULT_MESSENGER_CONFIG,...a};}async['fetchWithTimeout'](a,b={},c){const d=c??this['config']['requestTimeoutMs']??0x7530,e=new AbortController(),f=setTimeout(()=>e['abort'](),d);try{return await fetch(a,{...b,'signal':e['signal']});}finally{clearTimeout(f);}}async['registerDevice'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/register',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)});if(!b['ok']){const d=await b['text']();if(b['status']===0x199){if(d['includes']('different\x20key'))throw new MessengerError('IDENTITY_CONFLICT','Identity\x20already\x20exists\x20with\x20different\x20key:\x20'+d);return{'success':!![],'uploadedCount':0x0,'failedPrekeys':[],'currentTotal':0x0,'maxAllowed':0x64};}throw new MessengerError('SERVER_ERROR','Registration\x20failed:\x20'+b['status']+'\x20'+b['statusText']+'\x20-\x20'+d);}const c=await b['json']();if(c['failedPrekeys']&&c['failedPrekeys']['length']>0x0){}return{'success':c['success'],'uploadedCount':c['uploaded_count'],'failedPrekeys':c['failed_prekeys']||[],'currentTotal':c['current_total'],'maxAllowed':c['max_allowed']};}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20register\x20device',e);}}async['uploadPreKeys'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)});if(!b['ok']){const d=await b['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20upload\x20prekeys:\x20'+b['status']+'\x20'+b['statusText']+'\x20-\x20'+d);}const c=await b['json']();if(c['failedPrekeys']&&c['failedPrekeys']['length']>0x0)throw new MessengerError('SERVER_ERROR','Some\x20prekeys\x20failed\x20to\x20upload:\x20'+JSON['stringify'](c['failedPrekeys']));return{'success':c['success'],'uploadedCount':c['uploaded_count'],'failedPrekeys':c['failed_prekeys']||[],'currentTotal':c['current_total'],'maxAllowed':c['max_allowed']};}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20upload\x20prekeys',e);}}async['fetchRemoteBundle'](a,b,c,d,e){try{const f=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/bundle/'+a,{'headers':{'X-PublicKey':c,'X-SignatureScheme':d['signatureScheme'],'X-Signature':d['signature'],'X-Timestamp':d['timestamp']['toString'](),'X-Nonce':d['nonce']}});if(!f['ok']){if(f['status']===0x194)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20'+a+'\x20not\x20found\x20on\x20server');throw new MessengerError('SERVER_ERROR','Failed\x20to\x20fetch\x20remote\x20bundle:\x20'+f['statusText']);}return await f['json']();}catch(g){if(g instanceof MessengerError)throw g;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20fetch\x20remote\x20bundle',g);}}async['sendMessage'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/message',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)}),c=await b['json']();if(!b['ok']){const d=new MessengerError('SERVER_ERROR',c?.['error']?.['message']||c?.['message']||b['statusText']);d['guardList']=c?.['error']?.['guard_list']||c?.['guard_list'];throw d;}return c;}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20send\x20message',e);}}async['pullMessages'](a,b,c,d){try{const e=new URL(this['config']['serverUrl']+'/v1/messages/'+a);if(d!==void 0x0)e['searchParams']['set']('limit',d['toString']());const f=await this['fetchWithTimeout'](e['toString'](),{'headers':{'X-PublicKey':b,'X-SignatureScheme':c['signatureScheme'],'X-Signature':c['signature'],'X-Timestamp':c['timestamp']['toString'](),'X-Nonce':c['nonce']}});if(!f['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20pull\x20messages:\x20'+f['statusText']);return await f['json']();}catch(g){if(g instanceof MessengerError)throw g;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20pull\x20messages',g);}}async['popPreKey'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/'+a+'/one',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'publicKey':b['publicKey'],'signatureScheme':b['signatureScheme'],'signature':b['signature'],'timestamp':b['timestamp'],'nonce':b['nonce']})});if(c['status']===0x1ad)throw new MessengerError('SERVER_ERROR','Rate\x20limited:\x20too\x20many\x20pop\x20prekey\x20requests');if(c['status']===0x191)throw new MessengerError('SERVER_ERROR','Unauthorized:\x20signature\x20verification\x20failed\x20or\x20address\x20mismatch');if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20pop\x20prekey:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20pop\x20prekey',d);}}async['getPrekeyStatus'](a,b,c){try{const d=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/'+a+'/status',{'headers':{'X-PublicKey':b,'X-SignatureScheme':c['signatureScheme'],'X-Signature':c['signature'],'X-Timestamp':c['timestamp']['toString'](),'X-Nonce':c['nonce']}});if(!d['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20prekey\x20status:\x20'+d['statusText']);const e=await d['json']();return{'currentCount':e['currentCount'],'maxAllowed':e['maxAllowed'],'threshold':e['threshold'],'shouldRefill':e['shouldRefill']};}catch(f){if(f instanceof MessengerError)throw f;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20prekey\x20status',f);}}async['acknowledgeMessages'](a,b,c){try{const d=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/messages/ack',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'publicKey':c['publicKey'],'messageIds':a,'senderPublicKey':b,'signatureScheme':c['signatureScheme'],'signature':c['signature'],'timestamp':c['timestamp'],'nonce':c['nonce']})});if(!d['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20acknowledge\x20messages:\x20'+d['statusText']);}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20acknowledge\x20messages',e);}}async['addToBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist',b,'POST');}async['removeFromBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist',b,'DELETE');}async['clearBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/clear',b,'POST');}async['getBlacklist'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();logger['error']('getBlacklist\x20error\x20response:',d);throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20blacklist:\x20'+c['statusText']+'\x20-\x20'+d);}return await c['json']();}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20blacklist',e);}}async['existInBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/exist',b,'POST');}async['addToFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list',b,'POST');}async['removeFromFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list',b,'DELETE');}async['clearFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/clear',b,'POST');}async['getFriendsList'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20friends\x20list:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20friends\x20list',d);}}async['existInFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/exist',b,'POST');}async['addToGuardList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list',b,'POST');}async['removeFromGuardList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list',b,'DELETE');}async['getGuardList'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20guard\x20list:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20guard\x20list',d);}}async['updateSettings'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/settings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20update\x20settings:\x20'+c['statusText']+'\x20-\x20'+d);}return(await c['json']())['success'];}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20update\x20settings',e);}}async['getSettings'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/settings/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20settings:\x20'+c['statusText']+'\x20-\x20'+d);}return await c['json']();}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20settings',e);}}async['_listOperation'](a,b,c='POST'){try{const d=await this['fetchWithTimeout'](a,{'method':c,'headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!d['ok']){const e=await d['text']();throw new MessengerError('SERVER_ERROR','List\x20operation\x20failed:\x20'+d['statusText']+'\x20-\x20'+e);}return await d['json']();}catch(f){if(f instanceof MessengerError)throw f;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20perform\x20list\x20operation',f);}}};new MessengerServerClient();async function getAccount$1(){const {Account:a}=await import('./w/local/account.mjs');return a['Instance']();}var MessengerSession=class{constructor(a,b){this['identity']=null,this['config']={...DEFAULT_MESSENGER_CONFIG,...b},this['serverClient']=new MessengerServerClient(this['config']),this['userAddress']=a;const c=getDatabase(a);this['pqStore']=new PQSessionStoreAdapter(c,a),this['pqCipher']=new PQSessionCipher(this['pqStore'],async()=>{return(await(await getAccount$1())['deriveX25519Identity'](a))['falcon512KeyPair'];});}get['store'](){return this['pqStore'];}get['cipher'](){return this['pqCipher'];}async['ensureIdentity'](a){if(this['identity'])return this['identity'];const b=await this['pqStore']['getIdentityKeyPair'](),c=await this['pqStore']['getRegistrationId']();if(b&&c)return this['identity']={'x25519KeyPair':b,'registrationId':c},this['identity'];const d=await(await getAccount$1())['deriveX25519Identity'](this['userAddress']);return await this['pqStore']['setIdentityKeyPair'](d['x25519KeyPair']),await this['pqStore']['setRegistrationId'](d['registrationId']),this['identity']={'x25519KeyPair':d['x25519KeyPair'],'registrationId':d['registrationId']},this['identity'];}['deriveRegistrationId'](a){const b=a[0x0]<<0x8|a[0x1];return b===0x0?0x1:b;}async['registerDevice'](a){const b=await this['ensureIdentity'](a),c=0x1,d=0x1;let e,f;const g=await this['pqStore']['getSignedPreKeySignature'](c),h=await this['pqStore']['getSignedPreKey'](c),i=await this['pqStore']['getPQPreKey'](d),j=await this['pqStore']['getPQPreKeySignature'](d);if(h&&g&&i&&j)e=h['publicKey'],f=g;else{const u=await this['pqCipher']['generatePreKeyBundle'](c,d,this['config']['prekey_count']);e=u['signedPreKey']['keyPair']['publicKey'],f=u['signedPreKey']['signature'];}const k=await this['generatePreKeyBatch'](this['config']['prekey_count'],a),l=await(await getAccount$1())['get'](a,![],!![]);if(!l?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const m=Date['now'](),n=this['generateNonce'](),o='register:'+l['pubkey']+':'+m+':'+n,p=await(await getAccount$1())['signData'](a,o),q=Buffer['from'](p['signature']['slice'](0x2),'hex'),r=await this['pqStore']['getPQPreKey'](d),s=await this['pqStore']['getPQPreKeySignature'](d),t={'userAddress':a,'deviceId':0x1,'registrationId':b['registrationId'],'identityKey':bytesToBase64(b['x25519KeyPair']['publicKey']),'falcon512PublicKey':bytesToBase64(base64ToBytes(l['pubkey'])['slice'](0x1)),'signedPrekey':{'keyId':c,'publicKey':bytesToBase64(e),'signature':bytesToBase64(f)},'prekeys':k,'publicKey':l['pubkey'],'signatureScheme':'Falcon512','signature':bytesToBase64(q),'timestamp':m,'nonce':n};if(r&&s)t['pqPrekey']={'keyId':d,'publicKey':bytesToBase64(r['publicKey']),'signature':bytesToBase64(s)};if(h){const v=bytesToBase64(h['publicKey']),w=new TextEncoder()['encode'](v),x=await(await getAccount$1())['signData'](a,w),y=Buffer['from'](x['signature']['slice'](0x2),'hex');t['oldSignedPrekeySignature']=bytesToBase64(new Uint8Array(y));}await this['serverClient']['registerDevice'](t),await this['verifyRegistrationComplete'](a);}async['verifyRegistrationComplete'](a,b=0xa,c=0x1f4){for(let d=0x0;d<b;d++)try{const e=await(await getAccount$1())['get'](a,![],!![]);if(!e?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const f=Date['now'](),g=this['generateNonce'](),h='prekey_status:'+a+':'+f+':'+g,j=await(await getAccount$1())['signData'](a,h),k=Buffer['from'](j['signature']['slice'](0x2),'hex');await this['serverClient']['getPrekeyStatus'](a,e['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(k)),'timestamp':f,'nonce':g});return;}catch(l){if(l?.['message']?.['includes']('404')||l?.['status']===0x194){if(d<b-0x1){await new Promise(m=>setTimeout(m,c));continue;}}throw l;}throw new MessengerError('REGISTRATION_FAILED','Registration\x20verification\x20failed\x20after\x20'+b+'\x20attempts');}async['isDeviceRegistered'](a){try{if(!await this['pqStore']['getSignedPreKeySignature'](0x1))return![];const b=await(await getAccount$1())['get'](a,![],!![]);if(!b?.['pubkey'])return![];const c=Date['now'](),d=this['generateNonce'](),e='prekey_status:'+a+':'+c+':'+d,f=await(await getAccount$1())['signData'](a,e),g=Buffer['from'](f['signature']['slice'](0x2),'hex');return await this['serverClient']['getPrekeyStatus'](a,b['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(g)),'timestamp':c,'nonce':d}),!![];}catch(h){if(h?.['message']?.['includes']('404')||h?.['status']===0x194)return![];return![];}}async['generatePreKeyBatch'](a,b){if(a<=0x0)return[];const c=[],{generateX25519KeyPair:d}=await import('./w/messenger/pq/crypto.mjs'),e=randomBytes(0x4),f=(e[0x0]<<0x18|e[0x1]<<0x10|e[0x2]<<0x8|e[0x3])&0x7fffff00;for(let g=0x0;g<a;g++){const h=f+g,j=await this['pqStore']['getOneTimePreKey'](h);if(j){const n=bytesToBase64(j['publicKey']),o=await(await getAccount$1())['signData'](b,j['publicKey']),p=Buffer['from'](o['signature']['slice'](0x2),'hex');c['push']({'keyId':h,'publicKey':n,'signature':bytesToBase64(p)});continue;}const k=d(),l=await(await getAccount$1())['signData'](b,k['publicKey']),m=Buffer['from'](l['signature']['slice'](0x2),'hex');await this['pqStore']['setOneTimePreKey'](h,k),c['push']({'keyId':h,'publicKey':bytesToBase64(k['publicKey']),'signature':bytesToBase64(m)});}return c;}async['ensurePreKeys'](a,b=![]){const c=await(await getAccount$1())['get'](a,![],!![]);if(!c?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const d=Date['now'](),e=this['generateNonce'](),f='prekey_status:'+a+':'+d+':'+e,g=await(await getAccount$1())['signData'](a,f),h=Buffer['from'](g['signature']['slice'](0x2),'hex'),i=await this['serverClient']['getPrekeyStatus'](a,c['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(h)),'timestamp':d,'nonce':e});if(!b&&i['currentCount']>=i['maxAllowed'])return;const j=i['maxAllowed']-i['currentCount'];if(j<=0x0)return;await this['ensureIdentity'](a);const k=await this['generatePreKeyBatch'](j,a);if(k['length']===0x0)return;const l=Date['now'](),m=this['generateNonce'](),n='upload_prekeys:'+c['pubkey']+':'+l+':'+m,o=await(await getAccount$1())['signData'](a,n),p=Buffer['from'](o['signature']['slice'](0x2),'hex');await this['serverClient']['uploadPreKeys']({'userAddress':a,'prekeys':k,'publicKey':c['pubkey'],'signatureScheme':'Falcon512','signature':bytesToBase64(p),'timestamp':l,'nonce':m});}['generateNonce'](){const a=new Uint8Array(0x10);return crypto['getRandomValues'](a),Array['from'](a,c=>c['toString'](0x10)['padStart'](0x2,'0'))['join']('');}async['establishSession'](a,b,c=0x1,d){if(await this['pqCipher']['hasSession'](b,c))return;if(!d){const k=await(await getAccount$1())['get'](a,![],!![]);if(!k?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const l=Date['now'](),m=this['generateNonce'](),n=k['pubkey'],o='get_bundle:'+a+':'+l+':'+m,p=await(await getAccount$1())['signData'](a,o),q=Buffer['from'](p['signature']['slice'](0x2),'hex');d=await this['serverClient']['fetchRemoteBundle'](b,a,n,{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(q)),'timestamp':l,'nonce':m},c);}const e=d['signedPrekey'];if(!e)throw new MessengerError('IDENTITY_NOT_FOUND','No\x20signed\x20prekey\x20available\x20for\x20'+b);const f=base64ToBytes(d['identityKey']),g=d['falcon512PublicKey']?base64ToBytes(d['falcon512PublicKey']):f,h=base64ToBytes(e['publicKey']),i=base64ToBytes(e['signature']),j={'registrationId':d['registrationId'],'deviceId':c,'identityKey':f,'falcon512PublicKey':g,'signedPreKey':{'keyId':e['keyId'],'publicKey':h,'signature':i},'pqPreKey':d['pqPrekey']?{'keyId':d['pqPrekey']['keyId'],'publicKey':base64ToBytes(d['pqPrekey']['publicKey']),'signature':base64ToBytes(d['pqPrekey']['signature'])}:void 0x0};if(d['oneTimePrekey']){const r=base64ToBytes(d['oneTimePrekey']['publicKey']);j['oneTimePreKey']={'keyId':d['oneTimePrekey']['keyId'],'publicKey':r};}if(d['pqPrekey']){const s=base64ToBytes(d['pqPrekey']['publicKey']),t=base64ToBytes(d['pqPrekey']['signature']);j['pqPreKey']={'keyId':d['pqPrekey']['keyId'],'publicKey':s,'signature':t};}await this['pqCipher']['processPreKeyBundle'](b,c,j);}async['encryptMessage'](a,b,c,d=0x1){let e=0x0;const f=0x5;while(e<=f)try{if(!await this['pqCipher']['hasSession'](b,d))await this['establishSession'](a,b,d);const g=new TextEncoder()['encode'](c),h=await this['pqCipher']['encryptMessage'](b,g,d);return{'type':h['type'],'body':h['body']['buffer'],'registrationId':h['registrationId']};}catch(i){if(e>=f)throw i;try{await this['pqStore']['removeSession'](b,d),e++,await new Promise(j=>setTimeout(j,0x64));}catch(j){throw i;}}throw new MessengerError('ENCRYPTION_FAILED','Encryption\x20failed\x20after\x20multiple\x20attempts');}async['decryptMessage'](a,b,c,d,e=0x1){const f=new TextDecoder(),g=new Uint8Array(c);let h=0x0;const i=0x5,j=await this['pqCipher']['hasSession'](b,e);if(d!==0x3&&!j)throw new Error('收到\x20WHISPER_MESSAGE\x20但无现有会话,需要等待\x20PREKEY_MESSAGE');while(h<=i)try{let k;if(d===0x3)try{return k=await this['pqCipher']['decryptMessage'](b,g,e),f['decode'](k);}catch(l){if(j&&h===0x0){if(a['toLowerCase']()<b['toLowerCase']())throw new Error('PREKEY\x20竞争:我的地址较小,保留我的会话');else return await this['pqStore']['removeSession'](b,e),k=await this['pqCipher']['decryptMessage'](b,g,e),f['decode'](k);}else throw l;}else k=await this['pqCipher']['decryptMessage'](b,g,e);return f['decode'](k);}catch(m){if(h>=i)throw m;try{if(j)await this['pqStore']['removeSession'](b,e);if(d===0x3){}h++,await new Promise(n=>setTimeout(n,0x64));}catch(n){throw m;}}throw new MessengerError('DECRYPTION_FAILED','Decryption\x20failed\x20after\x20multiple\x20attempts');}async['getIdentityKey'](){return bytesToBase64((await this['ensureIdentity']())['x25519KeyPair']['publicKey']);}async['getRegistrationId'](){return(await this['ensureIdentity']())['registrationId'];}},SessionStateManager=class{constructor(a){this['store']=a;}async['snapshotSession'](a,b){const c=await this['store']['getSession'](a,b);return{'sessionData':c?JSON['stringify'](c):null,'timestamp':Date['now']()};}async['rollbackSession'](a,b,c){if(c['sessionData']){const d=JSON['parse'](c['sessionData']);await this['store']['setSession'](a,b,d);}else await this['store']['removeSession'](a,b);}async['commitSession'](a,b){}},DecryptionEngine=class{constructor(a,b){this['store']=a,this['cipher']=new PQSessionCipher(a,b),this['sessionManager']=new SessionStateManager(a);}async['decryptMessage'](a,b,c,d,e=0x1){const f=await this['sessionManager']['snapshotSession'](b,e);try{if(d===0x3)return await this['handlePreKeyMessage'](a,b,c,e,f);else return await this['handleWhisperMessage'](a,b,c,e,f);}catch(g){return await this['sessionManager']['rollbackSession'](b,e,f),{'success':![],'sessionUpdated':![],'sessionRolledBack':!![],'messageType':d===0x3?'PREKEY':'WHISPER','error':g instanceof Error?g['message']:String(g)};}}async['handlePreKeyMessage'](a,b,c,d,e){const f=new TextDecoder(),g=new Uint8Array(c),h=await this['cipher']['decryptMessage'](b,g,d),i=f['decode'](h);await this['sessionManager']['commitSession'](b,d);if(a['toLowerCase']()<b['toLowerCase']()){}return{'success':!![],'plaintext':i,'sessionUpdated':!![],'sessionRolledBack':![],'messageType':'PREKEY'};}async['handleWhisperMessage'](a,b,c,d,e){if(!await this['cipher']['hasSession'](b,d))throw new Error('No\x20session\x20for\x20WHISPER_MESSAGE');const f=new TextDecoder(),g=new Uint8Array(c),h=await this['cipher']['decryptMessage'](b,g,d);return{'success':!![],'plaintext':f['decode'](h),'sessionUpdated':!![],'sessionRolledBack':![],'messageType':'WHISPER'};}};function canonicalizeJson(a){if(a===void 0x0)return'null';if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a;return'{'+Object['keys'](b)['sort']()['filter'](c=>b[c]!==void 0x0)['map'](c=>'\x22'+c+'\x22:'+canonicalizeJson(b[c]))['join'](',')+'}';}async function getAccount(){const {Account:a}=await import('./w/local/account.mjs');return a['Instance']();}var Messenger=class{constructor(a,b){this['userAddress']=null,this['onMessageCallback']=null,this['pollingTimer']=null,this['messageConsecutiveEmptyPulls']=0x0,this['prekeyConsecutiveOkCount']=0x0,this['isPollingRunning']=![],this['waitingMessages']=new Map(),this['failedMessages']=new Map(),this['waitingMessageRetries']=new Map(),this['sendPromise']=Promise['resolve'](),this['userAddress']=a,this['config']={...DEFAULT_MESSENGER_CONFIG,...b},this['session']=new MessengerSession(a,this['config']),this['serverClient']=new MessengerServerClient(this['config']),this['messageStorage']=new MessageStorage(a),this['sessionStateStorage']=new SessionStateStorage(a),this['decryptionEngine']=new DecryptionEngine(this['session']['store'],async()=>{return(await(await getAccount())['deriveX25519Identity'](a))['falcon512KeyPair'];}),this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x168*0x3e8;}['getUserAddress'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');return this['userAddress'];}async['getPublicKey'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');return(await(await getAccount())['get'](this['userAddress'],![],!![]))?.['pubkey']||'';}['isValidGuardMessage'](a,b){return Boolean(a&&b&&a32a(a)&&a32a(b));}async['generateSignatureParams'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=await(await getAccount())['get'](this['userAddress'],![]);if(!b?.['secret'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20or\x20no\x20secret\x20key\x20for\x20'+this['userAddress']);const {Falcon512Keypair:c}=await import('./keypairs/falcon512/index.mjs'),d=c['fromSecretKey'](b['secret']),e=d['getPublicKey']()['toWowPublicKey'](),f=Date['now'](),g=this['generateNonce'](),h=a+':'+e+':'+f+':'+g,i=await d['sign'](new TextEncoder()['encode'](h));return{'signatureScheme':'Falcon512','signature':Buffer['from'](i)['toString']('base64'),'timestamp':f,'nonce':g};}['generateNonce'](){const a=new Uint8Array(0x10);return crypto['getRandomValues'](a),Array['from'](a,c=>c['toString'](0x10)['padStart'](0x2,'0'))['join']('');}async['initialize'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');await this['session']['ensureIdentity'](this['userAddress']),await this['session']['registerDevice'](this['userAddress']),await this['session']['ensurePreKeys'](this['userAddress']),await this['checkAndRefillPrekeys'](),this['startPollingTimer']();}async['checkAndRefillPrekeys'](){if(!this['userAddress'])return;await this['session']['ensurePreKeys'](this['userAddress'],![]);}['startPollingTimer'](){if(this['pollingTimer'])clearTimeout(this['pollingTimer']);this['isPollingRunning']=!![],this['scheduleNextPoll']();}['stopPollingTimer'](){this['isPollingRunning']=![],this['pollingTimer']&&(clearTimeout(this['pollingTimer']),this['pollingTimer']=null);}['scheduleNextPoll'](){if(!this['isPollingRunning'])return;const a=this['getNextPollInterval']();this['pollingTimer']=setTimeout(()=>{this['poll']()['catch'](b=>{})['finally'](()=>{this['scheduleNextPoll']();});},a);}['getNextPollInterval'](){if(this['waitingMessages']['size']>0x0)return this['config']['message_poll_waiting_interval_ms']??0x3*0x3e8;return this['currentMessageInterval'];}async['poll'](){if(!this['userAddress'])return;try{const a=await this['pullMessages']();if(a['messages']['length']>0x0){this['messageConsecutiveEmptyPulls']=0x0,this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8;if(this['onMessageCallback'])this['onMessageCallback'](a['messages']);}else this['messageConsecutiveEmptyPulls']++,this['messageConsecutiveEmptyPulls']>=(this['config']['message_poll_consecutive_empty_limit']??0x3)&&(this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x168*0x3e8,this['messageConsecutiveEmptyPulls']=0x0);if(a['prekey_status']){if(a['prekey_status']['shouldRefill'])this['prekeyConsecutiveOkCount']=0x0,await this['checkAndRefillPrekeys']();else{this['prekeyConsecutiveOkCount']++;if(this['prekeyConsecutiveOkCount']>=(this['config']['prekey_poll_consecutive_ok_limit']??0x3))this['prekeyConsecutiveOkCount']=0x0;}}}catch(b){}}['triggerFastPoll'](){this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8,this['messageConsecutiveEmptyPulls']=0x0;if(this['isPollingRunning']){if(this['pollingTimer'])clearTimeout(this['pollingTimer']);this['scheduleNextPoll']();}}async['sendMessage'](a,b,c){const d=this['sendPromise'];let e;this['sendPromise']=new Promise(f=>{e=f;}),await d;try{if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const f=Date['now'](),g=Date['now'](),h=this['generateNonce'](),i=new TextEncoder()['encode'](b)['length'];if(i>0x2800)throw new MessengerError('INVALID_INPUT','Message\x20size\x20('+i+'\x20bytes)\x20exceeds\x20maximum\x20allowed\x20size\x20('+NORMAL_MESSAGE_BYTES_LIMIT+'\x20bytes).\x20Consider\x20using\x20sendZipFile\x20for\x20large\x20content.');await this['pullMessages']();const j=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),k=await this['session']['encryptMessage'](this['userAddress'],a,b),l=Buffer['from'](new Uint8Array(k['body']))['toString']('base64'),m=hashPlaintext(b,f,c?.['guardAddress'],c?.['passportAddress'],j),n=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!n)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20account\x20not\x20found');const o=n['pubkey'],p=c?.['guardAddress']||'',q=c?.['passportAddress']||'',r=c?.['network']||'',s=j>=0x0?j['toString']():'',t=c?.['force']?'true':'false',u='send_message:'+this['userAddress']+':'+a+':'+p+':'+q+':'+m+':'+s+':'+o+':'+g+':'+h+':'+t+':'+r,v=await(await getAccount())['signData'](this['userAddress'],u),w=Buffer['from'](v['signature']['slice'](0x2),'hex'),x=bytesToBase64(new Uint8Array(w)),y=await this['serverClient']['sendMessage']({'sender':v['publicKey'],'recipient':a,'ciphertext':l,'plaintextHash':m,'clientTimestamp':f,'msgType':k['type'],'signatureScheme':'Falcon512','signature':x,'timestamp':g,'nonce':h,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'network':c?.['network'],'force':c?.['force'],'lastReceivedLeafIndex':j>=0x0?j:void 0x0}),z={'messageId':y['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':m,'plaintext':b,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':j,'direction':'sent','status':y['status']==='confirmed'?'confirmed':'pending','msgType':k['type'],'createdAt':f};y['merkleData']&&(z['leafIndex']=y['merkleData']['leafIndex'],z['prevRoot']=y['merkleData']['prevRoot'],z['newRoot']=y['merkleData']['newRoot'],z['serverSignature']=y['merkleData']['serverSignature'],z['serverTimestamp']=y['merkleData']['serverTimestamp'],z['serverPublicKey']=y['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':y['merkleData']['newRoot'],'prevRoot':y['merkleData']['prevRoot'],'lastLeafIndex':y['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](z);if(y['pendingMerkleData'])for(const [A,B]of Object['entries'](y['pendingMerkleData'])){const C=this['messageStorage']['getMessage'](A);if(C&&C['status']==='pending')this['messageStorage']['updateMessageStatus'](A,'confirmed',{'leafIndex':B['leafIndex'],'newRoot':B['newRoot'],'serverSignature':B['serverSignature'],'serverTimestamp':B['serverTimestamp'],'serverPublicKey':B['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':y['messageId'],'status':z['status'],'merkleData':y['merkleData'],'guardList':y['guard_list'],'lastReceivedLeafIndex':j>=0x0?j:void 0x0};}finally{e();}}async['pullMessages'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d='fetch_messages:'+this['userAddress']+':'+(a||0x64)+':'+b+':'+c,e=(await(await getAccount())['get'](this['userAddress'],![],!![]))?.['pubkey']||'',f=await(await getAccount())['signData'](this['userAddress'],d),g={'signatureScheme':'Falcon512','signature':bytesToBase64(Buffer['from'](f['signature']['slice'](0x2),'hex')),'timestamp':b,'nonce':c},h=await this['serverClient']['pullMessages'](this['userAddress'],e,g,a);if(h['messages']['length']===0x0)return{'messages':[],'prekey_status':h['prekey_status']};const i=[],j=[],k=[...h['messages']]['sort'](function(l,m){return(l['clientTimestamp']||0x0)-(m['clientTimestamp']||0x0);});await this['processWaitingMessages'](i,j);for(const l of k){if(this['waitingMessages']['has'](l['id'])){j['push'](l['id']);continue;}if(this['failedMessages']['has'](l['id'])){j['push'](l['id']);continue;}if(this['messageStorage']['getMessage'](l['id'])){j['push'](l['id']);continue;}const m=await this['tryDecryptMessage'](l);if(m['success']&&m['message']&&m['decryptedData'])this['messageStorage']['saveMessage'](m['message']),i['push'](m['decryptedData']),j['push'](l['id']),this['waitingMessages']['delete'](l['id']);else{if(m['shouldRetry'])this['waitingMessages']['set'](l['id'],l);else this['failedMessages']['set'](l['id'],{'message':l,'error':m['error']||'Unknown\x20error'}),await this['saveFailedMessage'](l,m['error']||'Unknown\x20error'),j['push'](l['id']);}}if(this['waitingMessages']['size']>0x0&&this['isPollingRunning'])this['reschedulePolling']();if(j['length']>0x0&&this['userAddress']){const n=Date['now'](),o=this['generateNonce'](),p=await(await getAccount())['get'](this['userAddress'],![],!![]);if(p?.['pubkey']){const q='ack_messages:'+this['userAddress']+':'+j['join'](',')+':'+p['pubkey']+':'+n+':'+o,r=await(await getAccount())['signData'](this['userAddress'],q),s=Buffer['from'](r['signature']['slice'](0x2),'hex'),t=bytesToBase64(new Uint8Array(s));await this['serverClient']['acknowledgeMessages'](j,r['publicKey'],{'publicKey':r['publicKey'],'signatureScheme':'Falcon512','signature':t,'timestamp':n,'nonce':o});}}return{'messages':i,'prekey_status':h['prekey_status']};}['getLastSentLeafIndex'](a){if(!this['userAddress'])return-0x1;const b=this['messageStorage']['getMessagesBySession'](this['userAddress'],a)['filter'](c=>c['direction']==='sent'&&c['leafIndex']!==void 0x0);if(b['length']===0x0)return-0x1;return Math['max'](...b['map'](c=>c['leafIndex']));}['getSessionMessages'](a){if(!this['userAddress'])return[];return this['messageStorage']['getMessagesBySession'](this['userAddress'],a);}['getSessionState'](a){if(!this['userAddress'])return;return this['sessionStateStorage']['getSessionState'](this['userAddress'],a);}async['submitChainProof'](a,b,c){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const d=this['sessionStateStorage']['getSessionState'](this['userAddress'],b);if(!d||!d['currentRoot'])throw new MessengerError('SESSION_NOT_ESTABLISHED','No\x20session\x20state\x20found');const e=this['messageStorage']['getMessagesBySession'](this['userAddress'],b),f=e[e['length']-0x1];if(!f||!f['serverPublicKey']||!f['serverSignature'])throw new MessengerError('INVALID_PROOF','No\x20temporal\x20proof\x20(missing\x20server\x20public\x20key\x20or\x20signature),\x20cannot\x20submit\x20Proof\x20to\x20WoWok\x20blockchain');const g=f['serverPublicKey'],h=f['serverSignature'],i={'sessionId':d['sessionId'],'merkleRoot':d['currentRoot'],'messageCount':d['messageCount'],'timestamp':Date['now']()},{CallProof:j}=await import('./proof-CTUZQvvK.mjs')['then'](l=>l['r']),k=await new j({'proof':JSON['stringify'](i),'server_pubkey':g,'server_signature':h,'proof_type':0x1,'description':c||'Messenger\x20session\x20proof\x20for\x20'+this['userAddress']+'\x20<->\x20'+b,'item_count':d['messageCount'],'about_address':b})['call'](a);return{'proofAddress':(k?.['objectChanges'])?.['find'](l=>l['objectType']?.['includes']('Proof'))?.['objectId']||'','txHash':k?.['digest']||''};}['destroy'](){this['stopPollingTimer']();}['disconnect'](){this['destroy']();}['setOnMessageCallback'](a){this['onMessageCallback']=a;}async['sendZipFile'](a,b,c){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const d=await this['loadFileData'](b),{ZipWriter:e,BlobWriter:f,Uint8ArrayReader:g}=await import('@zip.js/zip.js'),h=c?.['fileName']||a32c['basename'](b)||'file.zip',i=c?.['contentType']||this['detectContentType'](h),j=new f('application/zip'),k=new e(j);await k['add'](h,new g(d)),await k['close']();const l=await j['getData'](),m=new Uint8Array(await l['arrayBuffer']());if(m['length']>0x500000)throw new MessengerError('INVALID_INPUT','ZIP\x20file\x20size\x20('+m['length']+'\x20bytes)\x20exceeds\x20local\x20maximum\x20allowed\x20size\x20('+WTS_FILE_BYTES_LIMIT+'\x20bytes)');const n='0x'+createHash('sha256')['update'](m)['digest']('hex'),o=Buffer['from'](m)['toString']('base64'),p={'fileName':h+'.zip','fileSize':m['length'],'fileHash':n,'contentType':i};await this['pullMessages']();const q=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),r=Date['now'](),s=await this['session']['encryptMessage'](this['userAddress'],a,o),t=Buffer['from'](new Uint8Array(s['body']))['toString']('base64'),u=c?.['guardAddress']||'',v=c?.['passportAddress']||'',w=c?.['network']||'',x=hashPlaintext(o,r,u,v,q),y=Date['now'](),z=this['generateNonce'](),A=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!A)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20account\x20not\x20found');const B=A['pubkey'],C=q>=0x0?q['toString']():'',D=c?.['force']?'true':'false',E='send_message:'+this['userAddress']+':'+a+':'+u+':'+v+':'+x+':'+C+':'+B+':'+y+':'+z+':'+D+':'+w,F=await(await getAccount())['signData'](this['userAddress'],E),G=Buffer['from'](F['signature']['slice'](0x2),'hex'),H=bytesToBase64(new Uint8Array(G)),I=await this['serverClient']['sendMessage']({'sender':F['publicKey'],'recipient':a,'ciphertext':t,'plaintextHash':x,'clientTimestamp':r,'msgType':s['type'],'zipMetadata':p,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'network':c?.['network'],'force':c?.['force'],'lastReceivedLeafIndex':q>=0x0?q:void 0x0,'signatureScheme':'Falcon512','signature':H,'timestamp':y,'nonce':z}),J={'messageId':I['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':x,'plaintext':o,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':q,'direction':'sent','status':I['status']==='confirmed'?'confirmed':'pending','msgType':s['type'],'zipMetadata':p,'createdAt':r};I['merkleData']&&(J['leafIndex']=I['merkleData']['leafIndex'],J['prevRoot']=I['merkleData']['prevRoot'],J['newRoot']=I['merkleData']['newRoot'],J['serverSignature']=I['merkleData']['serverSignature'],J['serverTimestamp']=I['merkleData']['serverTimestamp'],J['serverPublicKey']=I['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':I['merkleData']['newRoot'],'prevRoot':I['merkleData']['prevRoot'],'lastLeafIndex':I['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](J);if(I['pendingMerkleData'])for(const [K,L]of Object['entries'](I['pendingMerkleData'])){const M=this['messageStorage']['getMessage'](K);if(M&&M['status']==='pending')this['messageStorage']['updateMessageStatus'](K,'confirmed',{'leafIndex':L['leafIndex'],'newRoot':L['newRoot'],'serverSignature':L['serverSignature'],'serverTimestamp':L['serverTimestamp'],'serverPublicKey':L['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':I['messageId'],'status':J['status'],'merkleData':I['merkleData'],'guardList':I['guard_list'],'lastReceivedLeafIndex':q>=0x0?q:void 0x0};}async['loadFileData'](a){if(a['startsWith']('http://')||a['startsWith']('https://')){const d=await fetch(a);if(!d['ok'])throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20fetch\x20file\x20from\x20'+a+':\x20'+d['statusText']);const e=await d['arrayBuffer']();return new Uint8Array(e);}const b=a32c['resolve'](a);if(!a32d['existsSync'](b))throw new MessengerError('FILE_NOT_FOUND','File\x20not\x20found:\x20'+b);const c=a32d['readFileSync'](b);return new Uint8Array(c);}['detectContentType'](a){switch(a32c['extname'](a)['toLowerCase']()){case'.wts':return'wts';case'.wip':return'wip';default:return'zip';}}async['_createSignedRequest'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d=b+':'+c+':'+canonicalizeJson(a),e=await(await getAccount())['signData'](this['userAddress'],d),f=Buffer['from'](e['signature']['slice'](0x2),'hex'),g=bytesToBase64(new Uint8Array(f)),h=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!h||!h['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20public\x20key\x20not\x20found');return{'userAddress':this['userAddress'],'publicKey':h['pubkey'],'signatureScheme':'Falcon512','signature':g,'timestamp':b,'nonce':c,'data':a};}['_validateAddresses'](a){const b=[],c=[];for(const d of a)if(a32a(d))b['push'](d);else c['push'](d);return{'valid':b,'invalid':c};}async['addToBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToBlacklist'](this['userAddress'],e);}async['removeFromBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromBlacklist'](this['userAddress'],e);}async['clearBlacklist'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['clearBlacklist'](this['userAddress'],a);}async['getBlacklist'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getBlacklist'](this['userAddress'],a);}async['existInBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInBlacklist'](this['userAddress'],e);}async['addToFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToFriendsList'](this['userAddress'],e);}async['removeFromFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromFriendsList'](this['userAddress'],e);}async['clearFriendsList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['clearFriendsList'](this['userAddress'],a);}async['getFriendsList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getFriendsList'](this['userAddress'],a);}async['existInFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInFriendsList'](this['userAddress'],e);}async['addToGuardList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b={'guards':a},c=await this['_createSignedRequest'](b);return this['serverClient']['addToGuardList'](this['userAddress'],c);}async['removeFromGuardList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromGuardList'](this['userAddress'],e);}async['getGuardList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getGuardList'](this['userAddress'],a);}async['getSettings'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getSettings'](this['userAddress'],a);}async['setSettings'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b={'allowStrangerMessages':a['allowStrangerMessages'],'maxInboxSize':a['maxInboxSize']},c=await this['_createSignedRequest'](b);return this['serverClient']['updateSettings'](this['userAddress'],c);}async['tryDecryptMessage'](a){try{const b=Uint8Array['from'](Buffer['from'](a['bodyB64'],'base64')),c=await this['decryptionEngine']['decryptMessage'](this['userAddress'],a['from'],b['buffer'],a['msgType']);if(!c['success'])return{'success':![],'shouldRetry':this['isRetryableError'](c['error']||''),'error':c['error'],'sessionUpdated':c['sessionUpdated']};const d=c['plaintext'];if(!a['clientTimestamp'])throw new Error('Missing\x20clientTimestamp\x20for\x20message\x20'+a['id']);if(!a['plaintextHash'])throw new Error('Missing\x20plaintextHash\x20for\x20message\x20'+a['id']);const e=verifyMessage({'messageId':a['id'],'plaintext':d,'plaintextHash':a['plaintextHash'],'createdAt':a['clientTimestamp'],'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'merkleMetadata':a['merkleMetadata']?{'prevRoot':a['merkleMetadata']['prevRoot'],'newRoot':a['merkleMetadata']['newRoot'],'serverTimestamp':a['merkleMetadata']['serverTimestamp'],'leafIndex':a['merkleMetadata']['leafIndex'],'proofSiblings':a['merkleMetadata']['proofSiblings'],'proofIndices':a['merkleMetadata']['proofIndices']}:void 0x0});if(!e['valid'])throw new Error(e['error']);const f={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash'],'plaintext':d,'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':'received','status':'decrypted','msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp'],'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata']};if(a['merkleMetadata'])this['sessionStateStorage']['updateSessionState'](this['userAddress'],a['from'],{'currentRoot':a['merkleMetadata']['newRoot'],'prevRoot':a['merkleMetadata']['prevRoot'],'lastLeafIndex':a['merkleMetadata']['leafIndex'],'lastSyncAt':Date['now']()});const g=a['merkleMetadata']?.['serverTimestamp']||a['clientTimestamp']||Date['now']();if(a['lastReceivedLeafIndex']!==void 0x0&&a['lastReceivedLeafIndex']>=0x0){const h=this['messageStorage']['getMessagesBySession'](this['userAddress'],a['from'])['filter'](i=>i['direction']==='sent'&&i['status']==='confirmed'&&i['leafIndex']!==void 0x0&&i['leafIndex']<=a['lastReceivedLeafIndex']);for(const i of h)this['messageStorage']['updateMessageStatus'](i['messageId'],'read');}return{'success':!![],'shouldRetry':![],'message':f,'decryptedData':{'id':a['id'],'from':a['from'],'plaintext':d,'timestamp':g,'merkleVerified':!!a['merkleMetadata'],'merkleData':a['merkleMetadata']?{'leafIndex':a['merkleMetadata']['leafIndex'],'rootHash':a['merkleMetadata']['newRoot']}:void 0x0},'sessionUpdated':c['sessionUpdated']};}catch(j){const k=j instanceof Error?j['message']:String(j);return{'success':![],'shouldRetry':this['isRetryableError'](k),'error':k};}}['isRetryableError'](a){return[/message number/i,/chain key/i,/session not found/i,/prekey not found/i,/PREKEY 竞争:我的地址较小,保留我的会话/i,/The operation failed for an operation-specific reason/i,/DOMException/i,/收到 WHISPER_MESSAGE 但无现有会话,需要等待 PREKEY_MESSAGE/i]['some'](b=>b['test'](a));}async['processWaitingMessages'](a,b){if(this['waitingMessages']['size']===0x0)return;const c=[],d=Array['from'](this['waitingMessages']['values']())['sort'](function(e,f){return(e['clientTimestamp']||0x0)-(f['clientTimestamp']||0x0);});for(const e of d){const f=e['id'],g=await this['tryDecryptMessage'](e);if(g['success']&&g['message']&&g['decryptedData'])this['messageStorage']['saveMessage'](g['message']),a['push'](g['decryptedData']),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{if(!g['shouldRetry'])this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Unknown\x20error'}),await this['saveFailedMessage'](e,g['error']||'Unknown\x20error'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{const h=(this['waitingMessageRetries']['get'](f)||0x0)+0x1;if(h>=0x3)this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Retry\x20limit\x20exceeded'}),await this['saveFailedMessage'](e,g['error']||'Retry\x20limit\x20exceeded'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else this['waitingMessageRetries']['set'](f,h);}}}for(const i of c)this['waitingMessages']['delete'](i);if(c['length']>0x0){}}async['saveFailedMessage'](a,b){const c={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash']||'','guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':'received','status':'decrypt_failed','msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp']||Date['now'](),'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata'],'decryptError':b,'decryptAttempts':0x1,'lastDecryptAttemptAt':Date['now']()};this['messageStorage']['saveMessage'](c);}['reschedulePolling'](){if(!this['isPollingRunning']||!this['pollingTimer'])return;clearTimeout(this['pollingTimer']),this['pollingTimer']=null,this['scheduleNextPoll']();}['getFailedMessages'](){return Array['from'](this['failedMessages']['entries']())['map'](([a,b])=>({'messageId':a,'from':b['message']['from'],'error':b['error'],'leafIndex':b['message']['merkleMetadata']?.['leafIndex']}));}['clearFailedMessages'](a){if(a)this['failedMessages']['delete'](a);else this['failedMessages']['clear']();}['getWaitingMessageCount'](){return this['waitingMessages']['size'];}};export{canonicalizeJson as n,Messenger as t};
|
|
1
|
+
import{a as a32a}from'./wow-types-DcqbnAaK.mjs';import{r as a32b}from'./logger-Cs5Mf7Mf.mjs';import{PQSessionCipher}from'./w/messenger/pq/session.mjs';import{PQSessionStoreAdapter}from'./w/messenger/pq/store-adapter.mjs';import{DEFAULT_MESSENGER_CONFIG,MessengerError,NORMAL_MESSAGE_BYTES_LIMIT,WTS_FILE_BYTES_LIMIT}from'./w/messenger/types.mjs';import{MessageStorage,SessionStateStorage,getDatabase}from'./w/messenger/storage.mjs';import{base64ToBytes,bytesToBase64,hashPlaintext,verifyMessage}from'./w/messenger/crypto.mjs';import{randomBytes}from'@noble/hashes/utils.js';import*as a32c from'path';import*as a32d from'fs';import{createHash}from'crypto';const logger=a32b('messenger:server');var MessengerServerClient=class{constructor(a){this['config']={...DEFAULT_MESSENGER_CONFIG,...a};}async['fetchWithTimeout'](a,b={},c){const d=c??this['config']['requestTimeoutMs']??0x7530,e=new AbortController(),f=setTimeout(()=>e['abort'](),d);try{return await fetch(a,{...b,'signal':e['signal']});}finally{clearTimeout(f);}}async['registerDevice'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/register',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)});if(!b['ok']){const d=await b['text']();if(b['status']===0x199){if(d['includes']('different\x20key'))throw new MessengerError('IDENTITY_CONFLICT','Identity\x20already\x20exists\x20with\x20different\x20key:\x20'+d);return{'success':!![],'uploadedCount':0x0,'failedPrekeys':[],'currentTotal':0x0,'maxAllowed':0x64};}throw new MessengerError('SERVER_ERROR','Registration\x20failed:\x20'+b['status']+'\x20'+b['statusText']+'\x20-\x20'+d);}const c=await b['json']();if(c['failedPrekeys']&&c['failedPrekeys']['length']>0x0){}return{'success':c['success'],'uploadedCount':c['uploaded_count'],'failedPrekeys':c['failed_prekeys']||[],'currentTotal':c['current_total'],'maxAllowed':c['max_allowed']};}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20register\x20device',e);}}async['uploadPreKeys'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/upload',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)});if(!b['ok']){const d=await b['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20upload\x20prekeys:\x20'+b['status']+'\x20'+b['statusText']+'\x20-\x20'+d);}const c=await b['json']();if(c['failedPrekeys']&&c['failedPrekeys']['length']>0x0)throw new MessengerError('SERVER_ERROR','Some\x20prekeys\x20failed\x20to\x20upload:\x20'+JSON['stringify'](c['failedPrekeys']));return{'success':c['success'],'uploadedCount':c['uploaded_count'],'failedPrekeys':c['failed_prekeys']||[],'currentTotal':c['current_total'],'maxAllowed':c['max_allowed']};}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20upload\x20prekeys',e);}}async['fetchRemoteBundle'](a,b,c,d,e){try{const f=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/bundle/'+a,{'headers':{'X-PublicKey':c,'X-SignatureScheme':d['signatureScheme'],'X-Signature':d['signature'],'X-Timestamp':d['timestamp']['toString'](),'X-Nonce':d['nonce']}});if(!f['ok']){if(f['status']===0x194)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20'+a+'\x20not\x20found\x20on\x20server');throw new MessengerError('SERVER_ERROR','Failed\x20to\x20fetch\x20remote\x20bundle:\x20'+f['statusText']);}return await f['json']();}catch(g){if(g instanceof MessengerError)throw g;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20fetch\x20remote\x20bundle',g);}}async['sendMessage'](a){try{const b=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/message',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](a)}),c=await b['json']();if(!b['ok']){const d=new MessengerError('SERVER_ERROR',c?.['error']?.['message']||c?.['message']||b['statusText']);d['guardList']=c?.['error']?.['guard_list']||c?.['guard_list'];throw d;}return c;}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20send\x20message',e);}}async['pullMessages'](a,b,c,d){try{const e=new URL(this['config']['serverUrl']+'/v1/messages/'+a);if(d!==void 0x0)e['searchParams']['set']('limit',d['toString']());const f=await this['fetchWithTimeout'](e['toString'](),{'headers':{'X-PublicKey':b,'X-SignatureScheme':c['signatureScheme'],'X-Signature':c['signature'],'X-Timestamp':c['timestamp']['toString'](),'X-Nonce':c['nonce']}});if(!f['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20pull\x20messages:\x20'+f['statusText']);return await f['json']();}catch(g){if(g instanceof MessengerError)throw g;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20pull\x20messages',g);}}async['popPreKey'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/'+a+'/one',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'publicKey':b['publicKey'],'signatureScheme':b['signatureScheme'],'signature':b['signature'],'timestamp':b['timestamp'],'nonce':b['nonce']})});if(c['status']===0x1ad)throw new MessengerError('SERVER_ERROR','Rate\x20limited:\x20too\x20many\x20pop\x20prekey\x20requests');if(c['status']===0x191)throw new MessengerError('SERVER_ERROR','Unauthorized:\x20signature\x20verification\x20failed\x20or\x20address\x20mismatch');if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20pop\x20prekey:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20pop\x20prekey',d);}}async['getPrekeyStatus'](a,b,c){try{const d=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/prekeys/'+a+'/status',{'headers':{'X-PublicKey':b,'X-SignatureScheme':c['signatureScheme'],'X-Signature':c['signature'],'X-Timestamp':c['timestamp']['toString'](),'X-Nonce':c['nonce']}});if(!d['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20prekey\x20status:\x20'+d['statusText']);const e=await d['json']();return{'currentCount':e['currentCount'],'maxAllowed':e['maxAllowed'],'threshold':e['threshold'],'shouldRefill':e['shouldRefill']};}catch(f){if(f instanceof MessengerError)throw f;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20prekey\x20status',f);}}async['acknowledgeMessages'](a,b,c){try{const d=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/messages/ack',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'publicKey':c['publicKey'],'messageIds':a,'senderPublicKey':b,'signatureScheme':c['signatureScheme'],'signature':c['signature'],'timestamp':c['timestamp'],'nonce':c['nonce']})});if(!d['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20acknowledge\x20messages:\x20'+d['statusText']);}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20acknowledge\x20messages',e);}}async['addToBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist',b,'POST');}async['removeFromBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist',b,'DELETE');}async['clearBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/clear',b,'POST');}async['getBlacklist'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();logger['error']('getBlacklist\x20error\x20response:',d);throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20blacklist:\x20'+c['statusText']+'\x20-\x20'+d);}return await c['json']();}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20blacklist',e);}}async['existInBlacklist'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/blacklist/exist',b,'POST');}async['addToFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list',b,'POST');}async['removeFromFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list',b,'DELETE');}async['clearFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/clear',b,'POST');}async['getFriendsList'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20friends\x20list:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20friends\x20list',d);}}async['existInFriendsList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/friends-list/exist',b,'POST');}async['addToGuardList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list',b,'POST');}async['removeFromGuardList'](a,b){return this['_listOperation'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list',b,'DELETE');}async['getGuardList'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/guard-list/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok'])throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20guard\x20list:\x20'+c['statusText']);return await c['json']();}catch(d){if(d instanceof MessengerError)throw d;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20guard\x20list',d);}}async['updateSettings'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/settings',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20update\x20settings:\x20'+c['statusText']+'\x20-\x20'+d);}return(await c['json']())['success'];}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20update\x20settings',e);}}async['getSettings'](a,b){try{const c=await this['fetchWithTimeout'](this['config']['serverUrl']+'/v1/spam-protection/'+a+'/settings/get',{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!c['ok']){const d=await c['text']();throw new MessengerError('SERVER_ERROR','Failed\x20to\x20get\x20settings:\x20'+c['statusText']+'\x20-\x20'+d);}return await c['json']();}catch(e){if(e instanceof MessengerError)throw e;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20get\x20settings',e);}}async['_listOperation'](a,b,c='POST'){try{const d=await this['fetchWithTimeout'](a,{'method':c,'headers':{'Content-Type':'application/json'},'body':JSON['stringify'](b)});if(!d['ok']){const e=await d['text']();throw new MessengerError('SERVER_ERROR','List\x20operation\x20failed:\x20'+d['statusText']+'\x20-\x20'+e);}return await d['json']();}catch(f){if(f instanceof MessengerError)throw f;throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20perform\x20list\x20operation',f);}}};new MessengerServerClient();async function getAccount$1(){const {Account:a}=await import('./w/local/account.mjs');return a['Instance']();}var MessengerSession=class{constructor(a,b){this['identity']=null,this['config']={...DEFAULT_MESSENGER_CONFIG,...b},this['serverClient']=new MessengerServerClient(this['config']),this['userAddress']=a;const c=getDatabase(a);this['pqStore']=new PQSessionStoreAdapter(c,a),this['pqCipher']=new PQSessionCipher(this['pqStore'],async()=>{return(await(await getAccount$1())['deriveX25519Identity'](a))['falcon512KeyPair'];});}get['store'](){return this['pqStore'];}get['cipher'](){return this['pqCipher'];}async['ensureIdentity'](a){if(this['identity'])return this['identity'];const b=await this['pqStore']['getIdentityKeyPair'](),c=await this['pqStore']['getRegistrationId']();if(b&&c)return this['identity']={'x25519KeyPair':b,'registrationId':c},this['identity'];const d=await(await getAccount$1())['deriveX25519Identity'](this['userAddress']);return await this['pqStore']['setIdentityKeyPair'](d['x25519KeyPair']),await this['pqStore']['setRegistrationId'](d['registrationId']),this['identity']={'x25519KeyPair':d['x25519KeyPair'],'registrationId':d['registrationId']},this['identity'];}['deriveRegistrationId'](a){const b=a[0x0]<<0x8|a[0x1];return b===0x0?0x1:b;}async['registerDevice'](a){const b=await this['ensureIdentity'](a),c=0x1,d=0x1;let e,f;const g=await this['pqStore']['getSignedPreKeySignature'](c),h=await this['pqStore']['getSignedPreKey'](c),i=await this['pqStore']['getPQPreKey'](d),j=await this['pqStore']['getPQPreKeySignature'](d);if(h&&g&&i&&j)e=h['publicKey'],f=g;else{const u=await this['pqCipher']['generatePreKeyBundle'](c,d,this['config']['prekey_count']);e=u['signedPreKey']['keyPair']['publicKey'],f=u['signedPreKey']['signature'];}const k=await this['generatePreKeyBatch'](this['config']['prekey_count'],a),l=await(await getAccount$1())['get'](a,![],!![]);if(!l?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const m=Date['now'](),n=this['generateNonce'](),o='register:'+l['pubkey']+':'+m+':'+n,p=await(await getAccount$1())['signData'](a,o),q=Buffer['from'](p['signature']['slice'](0x2),'hex'),r=await this['pqStore']['getPQPreKey'](d),s=await this['pqStore']['getPQPreKeySignature'](d),t={'userAddress':a,'deviceId':0x1,'registrationId':b['registrationId'],'identityKey':bytesToBase64(b['x25519KeyPair']['publicKey']),'falcon512PublicKey':bytesToBase64(base64ToBytes(l['pubkey'])['slice'](0x1)),'signedPrekey':{'keyId':c,'publicKey':bytesToBase64(e),'signature':bytesToBase64(f)},'prekeys':k,'publicKey':l['pubkey'],'signatureScheme':'Falcon512','signature':bytesToBase64(q),'timestamp':m,'nonce':n};if(r&&s)t['pqPrekey']={'keyId':d,'publicKey':bytesToBase64(r['publicKey']),'signature':bytesToBase64(s)};if(h){const v=bytesToBase64(h['publicKey']),w=new TextEncoder()['encode'](v),x=await(await getAccount$1())['signData'](a,w),y=Buffer['from'](x['signature']['slice'](0x2),'hex');t['oldSignedPrekeySignature']=bytesToBase64(new Uint8Array(y));}await this['serverClient']['registerDevice'](t),await this['verifyRegistrationComplete'](a);}async['verifyRegistrationComplete'](a,b=0xa,c=0x1f4){for(let d=0x0;d<b;d++)try{const e=await(await getAccount$1())['get'](a,![],!![]);if(!e?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const f=Date['now'](),g=this['generateNonce'](),h='prekey_status:'+a+':'+f+':'+g,j=await(await getAccount$1())['signData'](a,h),k=Buffer['from'](j['signature']['slice'](0x2),'hex');await this['serverClient']['getPrekeyStatus'](a,e['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(k)),'timestamp':f,'nonce':g});return;}catch(l){if(l?.['message']?.['includes']('404')||l?.['status']===0x194){if(d<b-0x1){await new Promise(m=>setTimeout(m,c));continue;}}throw l;}throw new MessengerError('REGISTRATION_FAILED','Registration\x20verification\x20failed\x20after\x20'+b+'\x20attempts');}async['isDeviceRegistered'](a){try{if(!await this['pqStore']['getSignedPreKeySignature'](0x1))return![];const b=await(await getAccount$1())['get'](a,![],!![]);if(!b?.['pubkey'])return![];const c=Date['now'](),d=this['generateNonce'](),e='prekey_status:'+a+':'+c+':'+d,f=await(await getAccount$1())['signData'](a,e),g=Buffer['from'](f['signature']['slice'](0x2),'hex');return await this['serverClient']['getPrekeyStatus'](a,b['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(g)),'timestamp':c,'nonce':d}),!![];}catch(h){if(h?.['message']?.['includes']('404')||h?.['status']===0x194)return![];return![];}}async['generatePreKeyBatch'](a,b){if(a<=0x0)return[];const c=[],{generateX25519KeyPair:d}=await import('./w/messenger/pq/crypto.mjs'),e=randomBytes(0x4),f=(e[0x0]<<0x18|e[0x1]<<0x10|e[0x2]<<0x8|e[0x3])&0x7fffff00;for(let g=0x0;g<a;g++){const h=f+g,j=await this['pqStore']['getOneTimePreKey'](h);if(j){const n=bytesToBase64(j['publicKey']),o=await(await getAccount$1())['signData'](b,j['publicKey']),p=Buffer['from'](o['signature']['slice'](0x2),'hex');c['push']({'keyId':h,'publicKey':n,'signature':bytesToBase64(p)});continue;}const k=d(),l=await(await getAccount$1())['signData'](b,k['publicKey']),m=Buffer['from'](l['signature']['slice'](0x2),'hex');await this['pqStore']['setOneTimePreKey'](h,k),c['push']({'keyId':h,'publicKey':bytesToBase64(k['publicKey']),'signature':bytesToBase64(m)});}return c;}async['ensurePreKeys'](a,b=![]){const c=await(await getAccount$1())['get'](a,![],!![]);if(!c?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const d=Date['now'](),e=this['generateNonce'](),f='prekey_status:'+a+':'+d+':'+e,g=await(await getAccount$1())['signData'](a,f),h=Buffer['from'](g['signature']['slice'](0x2),'hex'),i=await this['serverClient']['getPrekeyStatus'](a,c['pubkey'],{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(h)),'timestamp':d,'nonce':e});if(!b&&i['currentCount']>=i['maxAllowed'])return;const j=i['maxAllowed']-i['currentCount'];if(j<=0x0)return;await this['ensureIdentity'](a);const k=await this['generatePreKeyBatch'](j,a);if(k['length']===0x0)return;const l=Date['now'](),m=this['generateNonce'](),n='upload_prekeys:'+c['pubkey']+':'+l+':'+m,o=await(await getAccount$1())['signData'](a,n),p=Buffer['from'](o['signature']['slice'](0x2),'hex');await this['serverClient']['uploadPreKeys']({'userAddress':a,'prekeys':k,'publicKey':c['pubkey'],'signatureScheme':'Falcon512','signature':bytesToBase64(p),'timestamp':l,'nonce':m});}['generateNonce'](){const a=new Uint8Array(0x10);return crypto['getRandomValues'](a),Array['from'](a,c=>c['toString'](0x10)['padStart'](0x2,'0'))['join']('');}async['establishSession'](a,b,c=0x1,d){if(await this['pqCipher']['hasSession'](b,c))return;if(!d){const k=await(await getAccount$1())['get'](a,![],!![]);if(!k?.['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20for\x20'+a);const l=Date['now'](),m=this['generateNonce'](),n=k['pubkey'],o='get_bundle:'+a+':'+l+':'+m,p=await(await getAccount$1())['signData'](a,o),q=Buffer['from'](p['signature']['slice'](0x2),'hex');d=await this['serverClient']['fetchRemoteBundle'](b,a,n,{'signatureScheme':'Falcon512','signature':bytesToBase64(new Uint8Array(q)),'timestamp':l,'nonce':m},c);}const e=d['signedPrekey'];if(!e)throw new MessengerError('IDENTITY_NOT_FOUND','No\x20signed\x20prekey\x20available\x20for\x20'+b);const f=base64ToBytes(d['identityKey']),g=d['falcon512PublicKey']?base64ToBytes(d['falcon512PublicKey']):f,h=base64ToBytes(e['publicKey']),i=base64ToBytes(e['signature']),j={'registrationId':d['registrationId'],'deviceId':c,'identityKey':f,'falcon512PublicKey':g,'signedPreKey':{'keyId':e['keyId'],'publicKey':h,'signature':i},'pqPreKey':d['pqPrekey']?{'keyId':d['pqPrekey']['keyId'],'publicKey':base64ToBytes(d['pqPrekey']['publicKey']),'signature':base64ToBytes(d['pqPrekey']['signature'])}:void 0x0};if(d['oneTimePrekey']){const r=base64ToBytes(d['oneTimePrekey']['publicKey']);j['oneTimePreKey']={'keyId':d['oneTimePrekey']['keyId'],'publicKey':r};}if(d['pqPrekey']){const s=base64ToBytes(d['pqPrekey']['publicKey']),t=base64ToBytes(d['pqPrekey']['signature']);j['pqPreKey']={'keyId':d['pqPrekey']['keyId'],'publicKey':s,'signature':t};}await this['pqCipher']['processPreKeyBundle'](b,c,j);}async['encryptMessage'](a,b,c,d=0x1){let e=0x0;const f=0x5;while(e<=f)try{if(!await this['pqCipher']['hasSession'](b,d))await this['establishSession'](a,b,d);const g=new TextEncoder()['encode'](c),h=await this['pqCipher']['encryptMessage'](b,g,d);return{'type':h['type'],'body':h['body']['buffer'],'registrationId':h['registrationId']};}catch(i){if(e>=f)throw i;try{await this['pqStore']['removeSession'](b,d),e++,await new Promise(j=>setTimeout(j,0x64));}catch(j){throw i;}}throw new MessengerError('ENCRYPTION_FAILED','Encryption\x20failed\x20after\x20multiple\x20attempts');}async['decryptMessage'](a,b,c,d,e=0x1){const f=new TextDecoder(),g=new Uint8Array(c);let h=0x0;const i=0x5,j=await this['pqCipher']['hasSession'](b,e);if(d!==0x3&&!j)throw new Error('收到\x20WHISPER_MESSAGE\x20但无现有会话,需要等待\x20PREKEY_MESSAGE');while(h<=i)try{let k;if(d===0x3)try{return k=await this['pqCipher']['decryptMessage'](b,g,e),f['decode'](k);}catch(l){if(j&&h===0x0){if(a['toLowerCase']()<b['toLowerCase']())throw new Error('PREKEY\x20竞争:我的地址较小,保留我的会话');else return await this['pqStore']['removeSession'](b,e),k=await this['pqCipher']['decryptMessage'](b,g,e),f['decode'](k);}else throw l;}else k=await this['pqCipher']['decryptMessage'](b,g,e);return f['decode'](k);}catch(m){if(h>=i)throw m;try{if(j)await this['pqStore']['removeSession'](b,e);if(d===0x3){}h++,await new Promise(n=>setTimeout(n,0x64));}catch(n){throw m;}}throw new MessengerError('DECRYPTION_FAILED','Decryption\x20failed\x20after\x20multiple\x20attempts');}async['getIdentityKey'](){return bytesToBase64((await this['ensureIdentity']())['x25519KeyPair']['publicKey']);}async['getRegistrationId'](){return(await this['ensureIdentity']())['registrationId'];}},SessionStateManager=class{constructor(a){this['store']=a;}async['snapshotSession'](a,b){const c=await this['store']['getSession'](a,b);return{'sessionData':c?JSON['stringify'](c):null,'timestamp':Date['now']()};}async['rollbackSession'](a,b,c){if(c['sessionData']){const d=JSON['parse'](c['sessionData']);await this['store']['setSession'](a,b,d);}else await this['store']['removeSession'](a,b);}async['commitSession'](a,b){}},DecryptionEngine=class{constructor(a,b){this['store']=a,this['cipher']=new PQSessionCipher(a,b),this['sessionManager']=new SessionStateManager(a);}async['decryptMessage'](a,b,c,d,e=0x1){const f=await this['sessionManager']['snapshotSession'](b,e);try{if(d===0x3)return await this['handlePreKeyMessage'](a,b,c,e,f);else return await this['handleWhisperMessage'](a,b,c,e,f);}catch(g){return await this['sessionManager']['rollbackSession'](b,e,f),{'success':![],'sessionUpdated':![],'sessionRolledBack':!![],'messageType':d===0x3?'PREKEY':'WHISPER','error':g instanceof Error?g['message']:String(g)};}}async['handlePreKeyMessage'](a,b,c,d,e){const f=new TextDecoder(),g=new Uint8Array(c),h=await this['cipher']['decryptMessage'](b,g,d),i=f['decode'](h);await this['sessionManager']['commitSession'](b,d);if(a['toLowerCase']()<b['toLowerCase']()){}return{'success':!![],'plaintext':i,'sessionUpdated':!![],'sessionRolledBack':![],'messageType':'PREKEY'};}async['handleWhisperMessage'](a,b,c,d,e){if(!await this['cipher']['hasSession'](b,d))throw new Error('No\x20session\x20for\x20WHISPER_MESSAGE');const f=new TextDecoder(),g=new Uint8Array(c),h=await this['cipher']['decryptMessage'](b,g,d);return{'success':!![],'plaintext':f['decode'](h),'sessionUpdated':!![],'sessionRolledBack':![],'messageType':'WHISPER'};}};function canonicalizeJson(a){if(a===void 0x0)return'null';if(a===null||typeof a!=='object')return JSON['stringify'](a);if(Array['isArray'](a))return'['+a['map'](canonicalizeJson)['join'](',')+']';const b=a;return'{'+Object['keys'](b)['sort']()['filter'](c=>b[c]!==void 0x0)['map'](c=>'\x22'+c+'\x22:'+canonicalizeJson(b[c]))['join'](',')+'}';}async function getAccount(){const {Account:a}=await import('./w/local/account.mjs');return a['Instance']();}var Messenger=class{constructor(a,b){this['userAddress']=null,this['onMessageCallback']=null,this['pollingTimer']=null,this['messageConsecutiveEmptyPulls']=0x0,this['prekeyConsecutiveOkCount']=0x0,this['isPollingRunning']=![],this['waitingMessages']=new Map(),this['failedMessages']=new Map(),this['waitingMessageRetries']=new Map(),this['sendPromise']=Promise['resolve'](),this['userAddress']=a,this['config']={...DEFAULT_MESSENGER_CONFIG,...b},this['session']=new MessengerSession(a,this['config']),this['serverClient']=new MessengerServerClient(this['config']),this['messageStorage']=new MessageStorage(a),this['sessionStateStorage']=new SessionStateStorage(a),this['decryptionEngine']=new DecryptionEngine(this['session']['store'],async()=>{return(await(await getAccount())['deriveX25519Identity'](a))['falcon512KeyPair'];}),this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x168*0x3e8;}['getUserAddress'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');return this['userAddress'];}async['getPublicKey'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');return(await(await getAccount())['get'](this['userAddress'],![],!![]))?.['pubkey']||'';}['isValidGuardMessage'](a,b){return Boolean(a&&b&&a32a(a)&&a32a(b));}async['generateSignatureParams'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=await(await getAccount())['get'](this['userAddress'],![]);if(!b?.['secret'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20not\x20found\x20or\x20no\x20secret\x20key\x20for\x20'+this['userAddress']);const {Falcon512Keypair:c}=await import('./keypairs/falcon512/index.mjs'),d=c['fromSecretKey'](b['secret']),e=d['getPublicKey']()['toWowPublicKey'](),f=Date['now'](),g=this['generateNonce'](),h=a+':'+e+':'+f+':'+g,i=await d['sign'](new TextEncoder()['encode'](h));return{'signatureScheme':'Falcon512','signature':Buffer['from'](i)['toString']('base64'),'timestamp':f,'nonce':g};}['generateNonce'](){const a=new Uint8Array(0x10);return crypto['getRandomValues'](a),Array['from'](a,c=>c['toString'](0x10)['padStart'](0x2,'0'))['join']('');}async['initialize'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');await this['session']['ensureIdentity'](this['userAddress']),await this['session']['registerDevice'](this['userAddress']),await this['session']['ensurePreKeys'](this['userAddress']),await this['checkAndRefillPrekeys'](),this['startPollingTimer']();}async['checkAndRefillPrekeys'](){if(!this['userAddress'])return;await this['session']['ensurePreKeys'](this['userAddress'],![]);}['startPollingTimer'](){if(this['pollingTimer'])clearTimeout(this['pollingTimer']);this['isPollingRunning']=!![],this['scheduleNextPoll']();}['stopPollingTimer'](){this['isPollingRunning']=![],this['pollingTimer']&&(clearTimeout(this['pollingTimer']),this['pollingTimer']=null);}['scheduleNextPoll'](){if(!this['isPollingRunning'])return;const a=this['getNextPollInterval']();this['pollingTimer']=setTimeout(()=>{this['poll']()['catch'](b=>{})['finally'](()=>{this['scheduleNextPoll']();});},a);}['getNextPollInterval'](){if(this['waitingMessages']['size']>0x0)return this['config']['message_poll_waiting_interval_ms']??0x3*0x3e8;return this['currentMessageInterval'];}async['poll'](){if(!this['userAddress'])return;try{const a=await this['pullMessages']();if(a['messages']['length']>0x0){this['messageConsecutiveEmptyPulls']=0x0,this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8;if(this['onMessageCallback'])this['onMessageCallback'](a['messages']);}else this['messageConsecutiveEmptyPulls']++,this['messageConsecutiveEmptyPulls']>=(this['config']['message_poll_consecutive_empty_limit']??0x3)&&(this['currentMessageInterval']=this['config']['message_poll_default_interval_ms']??0x168*0x3e8,this['messageConsecutiveEmptyPulls']=0x0);if(a['prekey_status']){if(a['prekey_status']['shouldRefill'])this['prekeyConsecutiveOkCount']=0x0,await this['checkAndRefillPrekeys']();else{this['prekeyConsecutiveOkCount']++;if(this['prekeyConsecutiveOkCount']>=(this['config']['prekey_poll_consecutive_ok_limit']??0x3))this['prekeyConsecutiveOkCount']=0x0;}}}catch(b){}}['triggerFastPoll'](){this['currentMessageInterval']=this['config']['message_poll_fast_interval_ms']??0x6*0x3e8,this['messageConsecutiveEmptyPulls']=0x0;if(this['isPollingRunning']){if(this['pollingTimer'])clearTimeout(this['pollingTimer']);this['scheduleNextPoll']();}}async['sendMessage'](a,b,c){const d=this['sendPromise'];let e;this['sendPromise']=new Promise(f=>{e=f;}),await d;try{if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const f=Date['now'](),g=Date['now'](),h=this['generateNonce'](),i=new TextEncoder()['encode'](b)['length'];if(i>0x2800)throw new MessengerError('INVALID_INPUT','Message\x20size\x20('+i+'\x20bytes)\x20exceeds\x20maximum\x20allowed\x20size\x20('+NORMAL_MESSAGE_BYTES_LIMIT+'\x20bytes).\x20Consider\x20using\x20sendZipFile\x20for\x20large\x20content.');await this['pullMessages']();const j=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),k=await this['session']['encryptMessage'](this['userAddress'],a,b),l=Buffer['from'](new Uint8Array(k['body']))['toString']('base64'),m=hashPlaintext(b,f,c?.['guardAddress'],c?.['passportAddress'],j),n=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!n)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20account\x20not\x20found');const o=n['pubkey'],p=c?.['guardAddress']||'',q=c?.['passportAddress']||'',r=c?.['network']||'',s=j>=0x0?j['toString']():'',t=c?.['force']?'true':'false',u='send_message:'+this['userAddress']+':'+a+':'+p+':'+q+':'+m+':'+s+':'+o+':'+g+':'+h+':'+t+':'+r,v=await(await getAccount())['signData'](this['userAddress'],u),w=Buffer['from'](v['signature']['slice'](0x2),'hex'),x=bytesToBase64(new Uint8Array(w)),y=await this['serverClient']['sendMessage']({'sender':v['publicKey'],'recipient':a,'ciphertext':l,'plaintextHash':m,'clientTimestamp':f,'msgType':k['type'],'signatureScheme':'Falcon512','signature':x,'timestamp':g,'nonce':h,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'network':c?.['network'],'force':c?.['force'],'lastReceivedLeafIndex':j>=0x0?j:void 0x0}),z={'messageId':y['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':m,'plaintext':b,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':j,'direction':'sent','status':y['status']==='confirmed'?'confirmed':'pending','msgType':k['type'],'createdAt':f};y['merkleData']&&(z['leafIndex']=y['merkleData']['leafIndex'],z['prevRoot']=y['merkleData']['prevRoot'],z['newRoot']=y['merkleData']['newRoot'],z['serverSignature']=y['merkleData']['serverSignature'],z['serverTimestamp']=y['merkleData']['serverTimestamp'],z['serverPublicKey']=y['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':y['merkleData']['newRoot'],'prevRoot':y['merkleData']['prevRoot'],'lastLeafIndex':y['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](z);if(y['pendingMerkleData'])for(const [A,B]of Object['entries'](y['pendingMerkleData'])){const C=this['messageStorage']['getMessage'](A);if(C&&C['status']==='pending')this['messageStorage']['updateMessageStatus'](A,'confirmed',{'leafIndex':B['leafIndex'],'newRoot':B['newRoot'],'serverSignature':B['serverSignature'],'serverTimestamp':B['serverTimestamp'],'serverPublicKey':B['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':y['messageId'],'status':z['status'],'merkleData':y['merkleData'],'guardList':y['guard_list'],'lastReceivedLeafIndex':j>=0x0?j:void 0x0};}finally{e();}}async['pullMessages'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d='fetch_messages:'+this['userAddress']+':'+(a||0x64)+':'+b+':'+c,e=(await(await getAccount())['get'](this['userAddress'],![],!![]))?.['pubkey']||'',f=await(await getAccount())['signData'](this['userAddress'],d),g={'signatureScheme':'Falcon512','signature':bytesToBase64(Buffer['from'](f['signature']['slice'](0x2),'hex')),'timestamp':b,'nonce':c},h=await this['serverClient']['pullMessages'](this['userAddress'],e,g,a);if(h['messages']['length']===0x0)return{'messages':[],'prekey_status':h['prekey_status']};const i=[],j=[],k=[...h['messages']]['sort'](function(l,m){return(l['clientTimestamp']||0x0)-(m['clientTimestamp']||0x0);});await this['processWaitingMessages'](i,j);for(const l of k){if(this['waitingMessages']['has'](l['id'])){j['push'](l['id']);continue;}if(this['failedMessages']['has'](l['id'])){j['push'](l['id']);continue;}if(this['messageStorage']['getMessage'](l['id'])){j['push'](l['id']);continue;}const m=await this['tryDecryptMessage'](l);if(m['success']&&m['message']&&m['decryptedData'])this['messageStorage']['saveMessage'](m['message']),i['push'](m['decryptedData']),j['push'](l['id']),this['waitingMessages']['delete'](l['id']);else{if(m['shouldRetry'])this['waitingMessages']['set'](l['id'],l);else this['failedMessages']['set'](l['id'],{'message':l,'error':m['error']||'Unknown\x20error'}),await this['saveFailedMessage'](l,m['error']||'Unknown\x20error'),j['push'](l['id']);}}if(this['waitingMessages']['size']>0x0&&this['isPollingRunning'])this['reschedulePolling']();if(j['length']>0x0&&this['userAddress']){const n=Date['now'](),o=this['generateNonce'](),p=await(await getAccount())['get'](this['userAddress'],![],!![]);if(p?.['pubkey']){const q='ack_messages:'+this['userAddress']+':'+j['join'](',')+':'+p['pubkey']+':'+n+':'+o,r=await(await getAccount())['signData'](this['userAddress'],q),s=Buffer['from'](r['signature']['slice'](0x2),'hex'),t=bytesToBase64(new Uint8Array(s));await this['serverClient']['acknowledgeMessages'](j,r['publicKey'],{'publicKey':r['publicKey'],'signatureScheme':'Falcon512','signature':t,'timestamp':n,'nonce':o});}}return{'messages':i,'prekey_status':h['prekey_status']};}['getLastSentLeafIndex'](a){if(!this['userAddress'])return-0x1;const b=this['messageStorage']['getMessagesBySession'](this['userAddress'],a)['filter'](c=>c['direction']==='sent'&&c['leafIndex']!==void 0x0);if(b['length']===0x0)return-0x1;return Math['max'](...b['map'](c=>c['leafIndex']));}['getSessionMessages'](a){if(!this['userAddress'])return[];return this['messageStorage']['getMessagesBySession'](this['userAddress'],a);}['getSessionState'](a){if(!this['userAddress'])return;return this['sessionStateStorage']['getSessionState'](this['userAddress'],a);}async['submitChainProof'](a,b,c){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const d=this['sessionStateStorage']['getSessionState'](this['userAddress'],b);if(!d||!d['currentRoot'])throw new MessengerError('SESSION_NOT_ESTABLISHED','No\x20session\x20state\x20found');const e=this['messageStorage']['getMessagesBySession'](this['userAddress'],b),f=e[e['length']-0x1];if(!f||!f['serverPublicKey']||!f['serverSignature'])throw new MessengerError('INVALID_PROOF','No\x20temporal\x20proof\x20(missing\x20server\x20public\x20key\x20or\x20signature),\x20cannot\x20submit\x20Proof\x20to\x20WoWok\x20blockchain');const g=f['serverPublicKey'],h=f['serverSignature'],i={'sessionId':d['sessionId'],'merkleRoot':d['currentRoot'],'messageCount':d['messageCount'],'timestamp':Date['now']()},{CallProof:j}=await import('./proof-ByE09RhA.mjs')['then'](l=>l['r']),k=await new j({'proof':JSON['stringify'](i),'server_pubkey':g,'server_signature':h,'proof_type':0x1,'description':c||'Messenger\x20session\x20proof\x20for\x20'+this['userAddress']+'\x20<->\x20'+b,'item_count':d['messageCount'],'about_address':b})['call'](a);return{'proofAddress':(k?.['objectChanges'])?.['find'](l=>l['objectType']?.['includes']('Proof'))?.['objectId']||'','txHash':k?.['digest']||''};}['destroy'](){this['stopPollingTimer']();}['disconnect'](){this['destroy']();}['setOnMessageCallback'](a){this['onMessageCallback']=a;}async['sendZipFile'](a,b,c){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const d=await this['loadFileData'](b),{ZipWriter:e,BlobWriter:f,Uint8ArrayReader:g}=await import('@zip.js/zip.js'),h=c?.['fileName']||a32c['basename'](b)||'file.zip',i=c?.['contentType']||this['detectContentType'](h),j=new f('application/zip'),k=new e(j);await k['add'](h,new g(d)),await k['close']();const l=await j['getData'](),m=new Uint8Array(await l['arrayBuffer']());if(m['length']>0x500000)throw new MessengerError('INVALID_INPUT','ZIP\x20file\x20size\x20('+m['length']+'\x20bytes)\x20exceeds\x20local\x20maximum\x20allowed\x20size\x20('+WTS_FILE_BYTES_LIMIT+'\x20bytes)');const n='0x'+createHash('sha256')['update'](m)['digest']('hex'),o=Buffer['from'](m)['toString']('base64'),p={'fileName':h+'.zip','fileSize':m['length'],'fileHash':n,'contentType':i};await this['pullMessages']();const q=this['messageStorage']['getLastReceivedLeafIndex'](this['userAddress'],a),r=Date['now'](),s=await this['session']['encryptMessage'](this['userAddress'],a,o),t=Buffer['from'](new Uint8Array(s['body']))['toString']('base64'),u=c?.['guardAddress']||'',v=c?.['passportAddress']||'',w=c?.['network']||'',x=hashPlaintext(o,r,u,v,q),y=Date['now'](),z=this['generateNonce'](),A=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!A)throw new MessengerError('IDENTITY_NOT_FOUND','User\x20account\x20not\x20found');const B=A['pubkey'],C=q>=0x0?q['toString']():'',D=c?.['force']?'true':'false',E='send_message:'+this['userAddress']+':'+a+':'+u+':'+v+':'+x+':'+C+':'+B+':'+y+':'+z+':'+D+':'+w,F=await(await getAccount())['signData'](this['userAddress'],E),G=Buffer['from'](F['signature']['slice'](0x2),'hex'),H=bytesToBase64(new Uint8Array(G)),I=await this['serverClient']['sendMessage']({'sender':F['publicKey'],'recipient':a,'ciphertext':t,'plaintextHash':x,'clientTimestamp':r,'msgType':s['type'],'zipMetadata':p,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'network':c?.['network'],'force':c?.['force'],'lastReceivedLeafIndex':q>=0x0?q:void 0x0,'signatureScheme':'Falcon512','signature':H,'timestamp':y,'nonce':z}),J={'messageId':I['messageId'],'fromAddress':this['userAddress'],'toAddress':a,'plaintextHash':x,'plaintext':o,'guardAddress':c?.['guardAddress'],'passportAddress':c?.['passportAddress'],'lastReceivedLeafIndex':q,'direction':'sent','status':I['status']==='confirmed'?'confirmed':'pending','msgType':s['type'],'zipMetadata':p,'createdAt':r};I['merkleData']&&(J['leafIndex']=I['merkleData']['leafIndex'],J['prevRoot']=I['merkleData']['prevRoot'],J['newRoot']=I['merkleData']['newRoot'],J['serverSignature']=I['merkleData']['serverSignature'],J['serverTimestamp']=I['merkleData']['serverTimestamp'],J['serverPublicKey']=I['merkleData']['serverPublicKey'],this['sessionStateStorage']['updateSessionState'](this['userAddress'],a,{'currentRoot':I['merkleData']['newRoot'],'prevRoot':I['merkleData']['prevRoot'],'lastLeafIndex':I['merkleData']['leafIndex'],'lastSyncAt':Date['now']()}));this['messageStorage']['saveMessage'](J);if(I['pendingMerkleData'])for(const [K,L]of Object['entries'](I['pendingMerkleData'])){const M=this['messageStorage']['getMessage'](K);if(M&&M['status']==='pending')this['messageStorage']['updateMessageStatus'](K,'confirmed',{'leafIndex':L['leafIndex'],'newRoot':L['newRoot'],'serverSignature':L['serverSignature'],'serverTimestamp':L['serverTimestamp'],'serverPublicKey':L['serverPublicKey']});}return this['triggerFastPoll'](),{'messageId':I['messageId'],'status':J['status'],'merkleData':I['merkleData'],'guardList':I['guard_list'],'lastReceivedLeafIndex':q>=0x0?q:void 0x0};}async['loadFileData'](a){if(a['startsWith']('http://')||a['startsWith']('https://')){const d=await fetch(a);if(!d['ok'])throw new MessengerError('NETWORK_ERROR','Failed\x20to\x20fetch\x20file\x20from\x20'+a+':\x20'+d['statusText']);const e=await d['arrayBuffer']();return new Uint8Array(e);}const b=a32c['resolve'](a);if(!a32d['existsSync'](b))throw new MessengerError('FILE_NOT_FOUND','File\x20not\x20found:\x20'+b);const c=a32d['readFileSync'](b);return new Uint8Array(c);}['detectContentType'](a){switch(a32c['extname'](a)['toLowerCase']()){case'.wts':return'wts';case'.wip':return'wip';default:return'zip';}}async['_createSignedRequest'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b=Date['now'](),c=this['generateNonce'](),d=b+':'+c+':'+canonicalizeJson(a),e=await(await getAccount())['signData'](this['userAddress'],d),f=Buffer['from'](e['signature']['slice'](0x2),'hex'),g=bytesToBase64(new Uint8Array(f)),h=await(await getAccount())['get'](this['userAddress'],![],!![]);if(!h||!h['pubkey'])throw new MessengerError('IDENTITY_NOT_FOUND','Account\x20public\x20key\x20not\x20found');return{'userAddress':this['userAddress'],'publicKey':h['pubkey'],'signatureScheme':'Falcon512','signature':g,'timestamp':b,'nonce':c,'data':a};}['_validateAddresses'](a){const b=[],c=[];for(const d of a)if(a32a(d))b['push'](d);else c['push'](d);return{'valid':b,'invalid':c};}async['addToBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToBlacklist'](this['userAddress'],e);}async['removeFromBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromBlacklist'](this['userAddress'],e);}async['clearBlacklist'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['clearBlacklist'](this['userAddress'],a);}async['getBlacklist'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getBlacklist'](this['userAddress'],a);}async['existInBlacklist'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInBlacklist'](this['userAddress'],e);}async['addToFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'add','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['addToFriendsList'](this['userAddress'],e);}async['removeFromFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromFriendsList'](this['userAddress'],e);}async['clearFriendsList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['clearFriendsList'](this['userAddress'],a);}async['getFriendsList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getFriendsList'](this['userAddress'],a);}async['existInFriendsList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'exist','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['existInFriendsList'](this['userAddress'],e);}async['addToGuardList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b={'guards':a},c=await this['_createSignedRequest'](b);return this['serverClient']['addToGuardList'](this['userAddress'],c);}async['removeFromGuardList'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const {valid:b,invalid:c}=this['_validateAddresses'](a);if(c['length']>0x0)return{'success':![],'operation':'remove','modifiedCount':0x0,'currentCount':0x0,'maxCount':0x0,'invalidAddresses':c,'message':'Invalid\x20addresses:\x20'+c['join'](',\x20')};const d={'addresses':b},e=await this['_createSignedRequest'](d);return this['serverClient']['removeFromGuardList'](this['userAddress'],e);}async['getGuardList'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getGuardList'](this['userAddress'],a);}async['getSettings'](){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const a=await this['_createSignedRequest']({});return this['serverClient']['getSettings'](this['userAddress'],a);}async['setSettings'](a){if(!this['userAddress'])throw new MessengerError('IDENTITY_NOT_FOUND','User\x20address\x20not\x20set');const b={'allowStrangerMessages':a['allowStrangerMessages'],'maxInboxSize':a['maxInboxSize']},c=await this['_createSignedRequest'](b);return this['serverClient']['updateSettings'](this['userAddress'],c);}async['tryDecryptMessage'](a){try{const b=Uint8Array['from'](Buffer['from'](a['bodyB64'],'base64')),c=await this['decryptionEngine']['decryptMessage'](this['userAddress'],a['from'],b['buffer'],a['msgType']);if(!c['success'])return{'success':![],'shouldRetry':this['isRetryableError'](c['error']||''),'error':c['error'],'sessionUpdated':c['sessionUpdated']};const d=c['plaintext'];if(!a['clientTimestamp'])throw new Error('Missing\x20clientTimestamp\x20for\x20message\x20'+a['id']);if(!a['plaintextHash'])throw new Error('Missing\x20plaintextHash\x20for\x20message\x20'+a['id']);const e=verifyMessage({'messageId':a['id'],'plaintext':d,'plaintextHash':a['plaintextHash'],'createdAt':a['clientTimestamp'],'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'merkleMetadata':a['merkleMetadata']?{'prevRoot':a['merkleMetadata']['prevRoot'],'newRoot':a['merkleMetadata']['newRoot'],'serverTimestamp':a['merkleMetadata']['serverTimestamp'],'leafIndex':a['merkleMetadata']['leafIndex'],'proofSiblings':a['merkleMetadata']['proofSiblings'],'proofIndices':a['merkleMetadata']['proofIndices']}:void 0x0});if(!e['valid'])throw new Error(e['error']);const f={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash'],'plaintext':d,'guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':'received','status':'decrypted','msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp'],'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata']};if(a['merkleMetadata'])this['sessionStateStorage']['updateSessionState'](this['userAddress'],a['from'],{'currentRoot':a['merkleMetadata']['newRoot'],'prevRoot':a['merkleMetadata']['prevRoot'],'lastLeafIndex':a['merkleMetadata']['leafIndex'],'lastSyncAt':Date['now']()});const g=a['merkleMetadata']?.['serverTimestamp']||a['clientTimestamp']||Date['now']();if(a['lastReceivedLeafIndex']!==void 0x0&&a['lastReceivedLeafIndex']>=0x0){const h=this['messageStorage']['getMessagesBySession'](this['userAddress'],a['from'])['filter'](i=>i['direction']==='sent'&&i['status']==='confirmed'&&i['leafIndex']!==void 0x0&&i['leafIndex']<=a['lastReceivedLeafIndex']);for(const i of h)this['messageStorage']['updateMessageStatus'](i['messageId'],'read');}return{'success':!![],'shouldRetry':![],'message':f,'decryptedData':{'id':a['id'],'from':a['from'],'plaintext':d,'timestamp':g,'merkleVerified':!!a['merkleMetadata'],'merkleData':a['merkleMetadata']?{'leafIndex':a['merkleMetadata']['leafIndex'],'rootHash':a['merkleMetadata']['newRoot']}:void 0x0},'sessionUpdated':c['sessionUpdated']};}catch(j){const k=j instanceof Error?j['message']:String(j);return{'success':![],'shouldRetry':this['isRetryableError'](k),'error':k};}}['isRetryableError'](a){return[/message number/i,/chain key/i,/session not found/i,/prekey not found/i,/PREKEY 竞争:我的地址较小,保留我的会话/i,/The operation failed for an operation-specific reason/i,/DOMException/i,/收到 WHISPER_MESSAGE 但无现有会话,需要等待 PREKEY_MESSAGE/i]['some'](b=>b['test'](a));}async['processWaitingMessages'](a,b){if(this['waitingMessages']['size']===0x0)return;const c=[],d=Array['from'](this['waitingMessages']['values']())['sort'](function(e,f){return(e['clientTimestamp']||0x0)-(f['clientTimestamp']||0x0);});for(const e of d){const f=e['id'],g=await this['tryDecryptMessage'](e);if(g['success']&&g['message']&&g['decryptedData'])this['messageStorage']['saveMessage'](g['message']),a['push'](g['decryptedData']),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{if(!g['shouldRetry'])this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Unknown\x20error'}),await this['saveFailedMessage'](e,g['error']||'Unknown\x20error'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else{const h=(this['waitingMessageRetries']['get'](f)||0x0)+0x1;if(h>=0x3)this['failedMessages']['set'](f,{'message':e,'error':g['error']||'Retry\x20limit\x20exceeded'}),await this['saveFailedMessage'](e,g['error']||'Retry\x20limit\x20exceeded'),b['push'](f),c['push'](f),this['waitingMessageRetries']['delete'](f);else this['waitingMessageRetries']['set'](f,h);}}}for(const i of c)this['waitingMessages']['delete'](i);if(c['length']>0x0){}}async['saveFailedMessage'](a,b){const c={'messageId':a['id'],'fromAddress':a['from'],'toAddress':this['userAddress'],'plaintextHash':a['plaintextHash']||'','guardAddress':a['guardAddress'],'passportAddress':a['passportAddress'],'lastReceivedLeafIndex':a['lastReceivedLeafIndex'],'direction':'received','status':'decrypt_failed','msgType':a['msgType'],'leafIndex':a['merkleMetadata']?.['leafIndex'],'prevRoot':a['merkleMetadata']?.['prevRoot'],'newRoot':a['merkleMetadata']?.['newRoot'],'serverSignature':a['merkleMetadata']?.['serverSignature'],'serverTimestamp':a['merkleMetadata']?.['serverTimestamp'],'serverPublicKey':a['merkleMetadata']?.['serverPublicKey'],'createdAt':a['clientTimestamp']||Date['now'](),'receivedAt':Date['now'](),'zipMetadata':a['zipMetadata'],'decryptError':b,'decryptAttempts':0x1,'lastDecryptAttemptAt':Date['now']()};this['messageStorage']['saveMessage'](c);}['reschedulePolling'](){if(!this['isPollingRunning']||!this['pollingTimer'])return;clearTimeout(this['pollingTimer']),this['pollingTimer']=null,this['scheduleNextPoll']();}['getFailedMessages'](){return Array['from'](this['failedMessages']['entries']())['map'](([a,b])=>({'messageId':a,'from':b['message']['from'],'error':b['error'],'leafIndex':b['message']['merkleMetadata']?.['leafIndex']}));}['clearFailedMessages'](a){if(a)this['failedMessages']['delete'](a);else this['failedMessages']['clear']();}['getWaitingMessageCount'](){return this['waitingMessages']['size'];}};export{canonicalizeJson as n,Messenger as t};
|