@wowok/wowok 2.3.18 → 2.4.0
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-CCG4h3Tt.mjs → arb-pFcb4ftp.mjs} +1 -1
- package/dist/esm/{base-CDujg0CW.mjs → base-BdlWCNje.mjs} +1 -1
- package/dist/esm/bcs/index.d.mts +1 -1
- package/dist/esm/{call-CjiutK7n.mjs → call-Cf74XogX.mjs} +1 -1
- package/dist/esm/client/index.d.mts +1 -1
- package/dist/esm/client/index.mjs +1 -1
- package/dist/esm/client-CcSxA1Tm.mjs +1 -0
- package/dist/esm/cryptography/index.d.mts +1 -1
- package/dist/esm/{evm-account-D-9b2P5o.d.mts → evm-account-B1-nzcbY.d.mts} +124 -18
- package/dist/esm/graphql/index.d.mts +1 -1
- package/dist/esm/graphql/index.mjs +1 -1
- package/dist/esm/{graphql-DS8RUdlp.mjs → graphql-Ccoor2f6.mjs} +1 -1
- package/dist/esm/grpc/index.d.mts +1 -1
- package/dist/esm/grpc/index.mjs +1 -1
- package/dist/esm/{grpc-BcOvQ6pC.mjs → grpc-33XsFGKx.mjs} +1 -1
- package/dist/esm/{index-Cj4KHtbw.d.mts → index-B8BZSNzI.d.mts} +6 -6
- package/dist/esm/{index-fGNIZdBz.d.mts → index-C-WBdTM5.d.mts} +67 -9
- package/dist/esm/index.d.mts +5 -5
- 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-Bj7TtF3B.mjs → messenger-CkRQcNzs.mjs} +1 -1
- package/dist/esm/messenger-api-B9NB9Byo.mjs +1 -0
- package/dist/esm/multisig/index.d.mts +1 -1
- package/dist/esm/{object-B-eGy8U5.mjs → object-D5C_RkYD.mjs} +1 -1
- package/dist/esm/{proof-Ck9Bu-Jx.mjs → proof-BR6cbbRo.mjs} +1 -1
- package/dist/esm/{query-DIsbjIQ7.mjs → query-CoCibg2q.mjs} +1 -1
- package/dist/esm/{received-CrZF7nTR.mjs → received-H24viThJ.mjs} +1 -1
- package/dist/esm/{service-Fh_GX6lR.mjs → service-NZ-TLNHV.mjs} +1 -1
- package/dist/esm/transactions/index.d.mts +1 -1
- package/dist/esm/{util-D-TSMMSN.mjs → util-DWhWaV7w.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 +2 -2
- package/dist/esm/w/call/guard.mjs +1 -1
- package/dist/esm/w/call/index.d.mts +2 -2
- 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 +4 -4
- 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/evm-account.d.mts +2 -2
- package/dist/esm/w/local/evm-account.mjs +1 -1
- package/dist/esm/w/local/index.d.mts +4 -4
- 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-D7BssNyx.mjs → w-GXPhQ_II.mjs} +1 -1
- package/package.json +1 -1
- package/dist/esm/client-rikC538P.mjs +0 -1
- package/dist/esm/messenger-api-DhHcvqz2.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-rikC538P.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-DS8RUdlp.mjs';import{a as a21aL,i as a21aM,n as a21aN,r as a21aO,t as a21aP}from'./grpc-BcOvQ6pC.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-DhiTZPiB.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,T as a21bC,U as a21bD,V as a21bE,W as a21bF,X as a21bG,Y as a21bH,Z as a21bI,_ as a21bJ,_t as a21bK,a as a21bL,at as a21bM,b as a21bN,c as a21bO,ct as a21bP,d as a21bQ,dt as a21bR,et as a21bS,f as a21bT,ft as a21bU,g as a21bV,gt as a21bW,h as a21bX,ht as a21bY,i as a21bZ,it as a21c0,j as a21c1,k as a21c2,l as a21c3,lt as a21c4,m as a21c5,mt as a21c6,n as a21c7,nt as a21c8,o as a21c9,ot as a21ca,p as a21cb,pt as a21cc,q as a21cd,r as a21ce,rt as a21cf,s as a21cg,st as a21ch,t as a21ci,tt as a21cj,u as a21ck,ut as a21cl,v as a21cm,vt as a21cn,w as a21co,x as a21cp,y as a21cq,yt as a21cr,z as a21cs}from'./common-D8TcHVCJ.mjs';import{a as a21ct,c as a21cu,d as a21cv,f as a21cw,i as a21cx,l as a21cy,n as a21cz,o as a21cA,p as a21cB,r as a21cC,s as a21cD,t as a21cE,u as a21cF}from'./exception-CkI_xPvd.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 a21cG,i as a21cH,n as a21cI,o as a21cJ,r as a21cK,t as a21cL}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{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 a21cM,A as a21cN,B as a21cO,C as a21cP,D as a21cQ,E as a21cR,F as a21cS,G as a21cT,H as a21cU,I as a21cV,J as a21cW,K as a21cX,L as a21cY,M as a21cZ,N as a21d0,O as a21d1,P as a21d2,Q as a21d3,R as a21d4,S as a21d5,T as a21d6,U as a21d7,V as a21d8,W as a21d9,X as a21da,Y as a21db,Z as a21dc,_ as a21dd,a as a21de,at as a21df,b as a21dg,c as a21dh,ct as a21di,d as a21dj,et as a21dk,f as a21dl,g as a21dm,h as a21dn,i as a21do,it as a21dp,j as a21dq,k as a21dr,l as a21ds,m as a21dt,n as a21du,nt as a21dv,o as a21dw,ot as a21dx,p as a21dy,q as a21dz,r as a21dA,rt as a21dB,s as a21dC,st as a21dD,t as a21dE,tt as a21dF,u as a21dG,v as a21dH,w as a21dI,x as a21dJ,y as a21dK,z as a21dL}from'./object-B-eGy8U5.mjs';import{t as a21dM}from'./received-CrZF7nTR.mjs';import{i as a21dN,n as a21dO,r as a21dP,t as a21dQ}from'./base-CDujg0CW.mjs';import{CallPayment}from'./w/call/payment.mjs';import{CallAllocation}from'./w/call/allocation.mjs';import{BuiltinPermissionIndex,CallPermission}from'./w/call/permission.mjs';import{CallArbitration}from'./w/call/arbitration.mjs';import{n as a21dR,t as a21dS}from'./util-D-TSMMSN.mjs';import{CallDemand}from'./w/call/demand.mjs';import{CallGuard,formatGuardParseErrors,gen_passport,generateNodeComments,guard2file,parseGuardFile,parseGuardFromMarkdown,validateGuardNode}from'./w/call/guard.mjs';import{CallProgress}from'./w/call/progress.mjs';import{CallMachine,machineNode2file}from'./w/call/machine.mjs';import{$ as a21dT,t as a21dU}from'./service-Fh_GX6lR.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 a21dV,r as a21dW,t as a21dX}from'./call-CjiutK7n.mjs';import{a as a21dY,i as a21dZ,n as a21e0,r as a21e1,t as a21e2}from'./proof-Ck9Bu-Jx.mjs';import{_ as a21e3,a as a21e4,b as a21e5,c as a21e6,d as a21e7,f as a21e8,g as a21e9,h as a21ea,i as a21eb,l as a21ec,m as a21ed,n as a21ee,o as a21ef,p as a21eg,r as a21eh,s as a21ei,t as a21ej,u as a21ek,v as a21el,x as a21em,y as a21en}from'./query-DIsbjIQ7.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 a21eo}from'./messenger-Bj7TtF3B.mjs';import{_ as a21ep,a as a21eq,b as a21er,c as a21es,d as a21et,f as a21eu,g as a21ev,h as a21ew,i as a21ex,l as a21ey,m as a21ez,n as a21eA,o as a21eB,p as a21eC,r as a21eD,s as a21eE,t as a21eF,u as a21eG,v as a21eH,y as a21eI}from'./messenger-api-DhHcvqz2.mjs';import{A as a21eJ,C as a21eK,D as a21eL,E as a21eM,F as a21eN,I as a21eO,L as a21eP,M as a21eQ,N as a21eR,O as a21eS,P as a21eT,R as a21eU,S as a21eV,T as a21eW,_ as a21eX,a as a21eY,b as a21eZ,c as a21f0,d as a21f1,f as a21f2,g as a21f3,h as a21f4,i as a21f5,j as a21f6,k as a21f7,l as a21f8,m as a21f9,n as a21fa,o as a21fb,p as a21fc,r as a21fd,s as a21fe,t as a21ff,u as a21fg,v as a21fh,w as a21fi,x as a21fj,y as a21fk,z as a21fl}from'./w-D7BssNyx.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,a21dE as AllocationMode,a21du as AmountType,a21dA as ArbStatus,a21bh as Arguments,a21be as AsyncCache,a21fd as BRIDGE_STEP_DESCRIPTIONS,BUITIN_IDS,a21C as BaseClient,a21r as BcsEnum,a21n as BcsStruct,a21p as BcsTuple,a21m as BcsType,a21eg as BridgeChainId,a21ff as BridgeClient,a21ed as BridgeErrorCode,a21fa as BridgeNodeClient,a21ea as BridgeTokenId,a21f5 as BridgeTransferDirection,a21eY as BridgeTransferStatus,a21fb as BridgeTransferStep,a21e9 as BridgeVersion,a21b1 as BrowserPasskeyProvider,BuiltinPermissionIndex,CallAllocation,CallArbitration,a21dQ as CallBase,a21dX as CallContact,CallDemand,CallGuard,CallMachine,a21dT as CallOrder,CallPayment,CallPermission,a21dV as CallPersonal,CallProgress,a21e2 as CallProof,CallRepository,CallReward,a21dU as CallService,CallTreasury,a21z as ClientCache,a21ci as CoinWrapPrefix,Config,a21c7 as ContextType,a21w as CoreClient,CryptoVault,DEFAULT_ACCOUNT_NAME,a21aS as DEFAULT_ED25519_DERIVATION_PATH,a21b4 as DEFAULT_FALCON512_DERIVATION_PATH,DEFAULT_LIMITS,DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,a21aW as DEFAULT_SECP256K1_DERIVATION_PATH,a21aZ as DEFAULT_SECP256R1_DERIVATION_PATH,a21do as DiscountType,a21ce as ENTITY_LINKER_ADDRESS,a21bZ as ENTITY_REGISTRAR_ADDRESS,a21aj as ENTRYPOINT,a21f7 as ERC20_TRANSFER_TOPIC,ETH_MAINNET,a21aR as Ed25519Keypair,a21aT as Ed25519PublicKey,a21bL as EntityAddress,EvmAccount,EvmNetworkRegistry,a21aA as FALCON512_PRIVATE_KEY_SIZE,a21b3 as Falcon512Keypair,a21b2 as Falcon512PublicKey,a21aH as FaucetRateLimitError,a21cW as GUARDINSTRUCT,a21db as GUARDQUERY,a21c9 as GasCoinType,a21cg as GasTokenType,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,a21bO as GetObject,a21c3 as GetObjectDescription,a21ck as GetObjectExisted,a21aL as GrpcCoreClient,a21aN as GrpcTypes,a21aP as GrpcWebFetchTransport,a21ej as INFO_CONSTANT,a21de as IdFrom,a21ah as Inputs,a21bQ as IsBcsStringLength,a21bT as IsValidArgType,a21cb as IsValidBalance,a21c5 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,a21cL as LogLevel,a21cI as Logger,a21eb as MAINNET_BRIDGE_CONFIG,a21e4 as MAINNET_COMMITTEE_MEMBER_ADDRESSES,a21ef as MAINNET_COMMITTEE_PUBKEYS,a21ei as MAINNET_COMMITTEE_WEIGHTS,a21bX as MAX_DEPENDED_COUNT,a21bV as MAX_DESCRIPTION_LENGTH,a21bJ as MAX_ENV_PERMISSION_GUARD_COUNT,a21cm as MAX_GUARD_TABLE_ITEM_LENGTH,a21cq as MAX_INPUT_SIZE,a21bN as MAX_LONG_NAME_LENGTH,MAX_MESSENGER_ACCOUNTS,a21cp as MAX_MULTI_OPERANDS,a21bB as MAX_NAME_LENGTH,a21dw as MAX_OBJECTS_PER_QUERY,a21bl as MAX_PERMISSION_GUARD_COUNT,a21e0 as MAX_PROOF_SIZE,MAX_QUERY_LIMIT,a21e1 as MAX_SERVER_PUBKEY_SIZE,a21dZ as MAX_SERVER_SIGNATURE_SIZE,a21co as MAX_TABLE_SIZE,a21Q as MIST_PER_WOW,a21Y as MOVE_STDLIB_ADDRESS,MessageDirection,MessageStatus,MessageType,a21eo as Messenger,MessengerError,MessengerErrorCode,a21er as MessengerManager,a21bC as Modules,a21cE as MoveErrors,a21bc as MultiSigPublicKey,a21b6 as MultiSigSigner,NORMAL_MESSAGE_BYTES_LIMIT,a21dC as OBJECT_TYPE_DEFINITIONS,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,a21c2 as RecipientType,a21bj as RegistrarAddress,a21dO 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,a21eJ as TOKENS_CLAIMED_TOPIC,a21f6 as TOKENS_DEPOSITED_TOPIC,a21eQ as TOKENS_DEPOSITED_V2_TOPIC,TokenInfo,a21ag as Transaction,a21a9 as TransactionCommands,a21ab as TransactionDataBuilder,a21e3 as TransferStatus,a21dh as TreasuryOp,a21s as TypeTagSerializer,a21aa as UpgradePolicy,a21c1 as ValueType,a21cz as WErrors,a21cC as WException,WIP,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,a21cx as WValidate,a21ct as W_ENSURE,a21cA as W_ERROR,a21cD as W_FAILURE,a21aw as W_PRIVATE_KEY_PREFIX,a21cu as W_SAFE,a21cy as W_SUCCESS,a21cF as W_VALIDATE_PARAM,WipError,WipSizeError,WipValidationError,a21ds as WitnessSourceType,a21dG as WitnessTargetType,a21bv as WitnessType,a21fk 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,a21d3 as bcsBytesToValue,a21eF as blacklist,a21eK as buildClaimMessage,a21am as bytesEqual,bytesToBigInt,bytesToHex,checkSchemaCompatibility,a21d9 as checkType,a21fi as claimOnEth,a21eW as claimOnEthBySeq,a21eZ as claimOnWow,a21af as coinWithBalance,a21k as compareBcsBytes,a21by as contactFn,a21cK as createSensitiveLogger,a21bo as createValueContainer,createWip,a21dj as data2object,a21az as decodeWowPrivateKey,a21br as demandFn,a21eM as depositErc20,a21eL as depositEth,a21eS as depositFromEth,a21eV as depositFromWow,a21I as deriveDynamicFieldID,a21a0 as deriveObjectID,a21eR as encodeApprove,a21eT as encodeBridgeERC20,a21eN as encodeBridgeERC20V2,a21eO as encodeBridgeETH,a21eP as encodeBridgeETHV2,a21eU as encodeTokenTransferPayloadV2,a21fl as encodeTransferBridgedTokensWithSignatures,a21au as encodeWowPrivateKey,a21cv as enrichMoveError,a21cM as extractCoinType,a21u as extractStatusFromEffectsBcs,a21eA as extractZipFromPlaintext,a21eD as extract_zip_messages,fetch_token_info_operation,a21da as filterGuardInstruct,a21e6 as findEvmChainConfig,a21ec as findEvmChainConfigByBridgeChainId,a21ek as findToken,a21e7 as findTokenBySymbol,a21O as formatAddress,a21U as formatDigest,formatGuardParseErrors,a21y as formatMoveAbortMessage,a21ex as friendslist,a21a1 as fromBase58,a21W as fromBase64,a21Z as fromHex,gen_passport,a21dY as gen_proof,generateNodeComments,generate_wip,a21eq as generate_wts,a21cT as getCallEnvAccount,a21dP as getCoinParam,a21aF as getFaucetHost,a21ai as getFullnodeUrl,a21dc as getGuardQueryInfo,a21aQ as getJsonRpcFullnodeUrl,a21cH as getLogLevel,a21eB as getMessengerManager,a21cw as getMoveErrorDescription,a21dl as getMoveNameFromNumber,a21dy as getMoveNameFromObjectType,a21dt as getNumberFromMoveName,a21dn as getNumberFromObjectType,a21dm as getNumbersFromObjectTypes,a21dd as getObjectTypeDefinition,a21dH as getObjectTypeDefinitionFromNumber,a21dK as getObjectTypeFromMoveName,a21dg as getObjectTypeFromNumber,a21dJ as getObjectTypesFromNumbers,a21a8 as getPureBcsSchema,guard2file,a21eE as guardlist,hexToBytes,a21d5 as idFromToString,a21a7 as isArgument,a21dN as isCallResultSubmission,a21el as isEvmChain,a21bu as isGasTokenType,a21bA as isThisPackage,a21ae as isTransaction,isValidAddress,a21cs as isValidArray,a21aE as isValidBIP32Path,a21bk as isValidDescription,isValidEvmAddress,a21aC as isValidHardenedPath,a21bE as isValidHttpUrl,a21cP as isValidIdFromInput,a21bq as isValidLongName,a21bD as isValidName,a21e as isValidNamedPackage,a21g as isValidStructTag,a21c as isValidTransactionDigest,a21bF as isValidU128,a21bp as isValidU16,a21bt as isValidU256,a21cd as isValidU32,a21bs as isValidU64,a21bH as isValidU8,a21dk as isValidValueContainer,a21bG as isValidValueType,a21bI as isValidValueTypeInput,a21a as isValidWowAddress,a21f as isValidWowObjectId,a21bz as isValueTypeNumber,a21cB as isWException,a21bi as isWitnessType,a21en as isWowChain,a21aJ as isWowGraphQLClient,a21aM as isWowGrpcClient,a21D as isWowJsonRpcClient,loadWip,local_info_operation,local_mark_operation,a21cG as logger,a21bS as machineFn,machineNode2file,a21fe as makeBridgeTransferState,a21es as mark_conversation_as_viewed,a21ey 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,a21dI as numberToObjectType,a21d6 as objectTypeToNumber,a21cj as object_module_and_name_from_type,a21c8 as object_name_from_type,a21dF as owner_receive,a21f0 as parseEthClaimEvent,a21f8 as parseEthDepositEvent,parseGuardFile,parseGuardFromMarkdown,a21cR as parseIdFrom,a21dv as parseObjectType,a21b8 as parsePartialSignatures,a21dB as parseRecipient,a21ar as parseSerializedSignature,a21j as parseStructTag,a21a2 as parseToMist,a21P as parseToUnits,a21G as parseTransactionBcs,a21v as parseTransactionEffectsBcs,a21dp as parseTypeParameter,a21cf as parseValueType,a21df as permission_set,privateKeyToAddress,a21eG as proof_message,a21ba as publicKeyFromRawBytes,a21b7 as publicKeyFromWowBytes,a21et as pull_messages,a21q as pureBcsSchemaFromTypeName,a21fg as queryErc20Balance,a21f1 as queryEthBalance,a21f2 as queryEthTxConfirmations,a21fc as queryEthTxReceipt,a21f9 as queryEvmToWowTransferStatus,a21dS as queryObjectWithType,a21dR as queryObjectsWithType,a21ee as queryPermissions,a21eh as queryProtocolInfo,a21cQ as queryTableItem_AddressMark,a21d1 as queryTableItem_DemandPresenter,a21dr as queryTableItem_EntityLinker,a21cN as queryTableItem_EntityRegistrar,a21dq as queryTableItem_MachineNode,a21cZ as queryTableItem_PermissionPerm,a21d0 as queryTableItem_ProgressHistory,a21d2 as queryTableItem_RepositoryData,a21cS as queryTableItem_RewardRecord,a21cV as queryTableItem_TreasuryHistory,a21fj as queryWowClaimStatus,a21f4 as queryWowToEvmTransferStatus,a21f3 as queryWowTx,query_account,query_account_list,a21e5 as query_events,a21em 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,a21cY as query_objects,a21d4 as query_objects_json,a21dL as query_personal,a21dM as query_received,a21cO as query_table,a21d8 as query_tableItem,a21cU as query_table_json,a21d7 as raw2type,registerBridgeEvmNetworks,a21c0 as repositoryFn,a21aG as requestWowFromFaucetV2,a21cX as resolveCallEnv,a21dz as restoreNodeFromOutput,a21bM as rewardFn,a21eu as send_file,a21eC as send_message,a21ca as serviceFn,a21cJ as setLogLevel,a21ez as settings,signEIP1559,signLegacy,sign_wip,a21ew as sign_wts,a21T as toBase58,a21M as toBase64,toChecksumAddress,a21X as toHex,a21as as toSerializedSignature,a21ch as toTxAddress,a21bP as toTxAddressVec,a21c4 as toTxObject,a21cl as toTxString,a21bR as toTxU128,a21bU as toTxU16,a21cc as toTxU16Vec,a21c6 as toTxU256,a21bY as toTxU32,a21bW as toTxU64,a21bK as toTxU8,a21dW as transformPersonalInput,transformRewardInput,a21cn as treasuryFn,a21dx as uint2address,a21dD as validObjects,validateGuardNode,a21di as valueToBcsBytes,a21cr as valueTypeToString,a21e8 as verifyCommitteeConsistency,a21b5 as verifyPersonalMessageSignature,a21b9 as verifySignature,a21bb as verifyTransactionSignature,verifyWip,verify_wip,a21ev as verify_wts,a21eX as waitForEthTx,a21fh as waitForWowTx,a21ep as watch_conversations,a21eH as watch_messages,wip2html,wipToHtml,a21eI 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-CcSxA1Tm.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-Ccoor2f6.mjs';import{a as a21aL,i as a21aM,n as a21aN,r as a21aO,t as a21aP}from'./grpc-33XsFGKx.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-DhiTZPiB.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,T as a21bC,U as a21bD,V as a21bE,W as a21bF,X as a21bG,Y as a21bH,Z as a21bI,_ as a21bJ,_t as a21bK,a as a21bL,at as a21bM,b as a21bN,c as a21bO,ct as a21bP,d as a21bQ,dt as a21bR,et as a21bS,f as a21bT,ft as a21bU,g as a21bV,gt as a21bW,h as a21bX,ht as a21bY,i as a21bZ,it as a21c0,j as a21c1,k as a21c2,l as a21c3,lt as a21c4,m as a21c5,mt as a21c6,n as a21c7,nt as a21c8,o as a21c9,ot as a21ca,p as a21cb,pt as a21cc,q as a21cd,r as a21ce,rt as a21cf,s as a21cg,st as a21ch,t as a21ci,tt as a21cj,u as a21ck,ut as a21cl,v as a21cm,vt as a21cn,w as a21co,x as a21cp,y as a21cq,yt as a21cr,z as a21cs}from'./common-D8TcHVCJ.mjs';import{a as a21ct,c as a21cu,d as a21cv,f as a21cw,i as a21cx,l as a21cy,n as a21cz,o as a21cA,p as a21cB,r as a21cC,s as a21cD,t as a21cE,u as a21cF}from'./exception-CkI_xPvd.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 a21cG,i as a21cH,n as a21cI,o as a21cJ,r as a21cK,t as a21cL}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{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 a21cM,A as a21cN,B as a21cO,C as a21cP,D as a21cQ,E as a21cR,F as a21cS,G as a21cT,H as a21cU,I as a21cV,J as a21cW,K as a21cX,L as a21cY,M as a21cZ,N as a21d0,O as a21d1,P as a21d2,Q as a21d3,R as a21d4,S as a21d5,T as a21d6,U as a21d7,V as a21d8,W as a21d9,X as a21da,Y as a21db,Z as a21dc,_ as a21dd,a as a21de,at as a21df,b as a21dg,c as a21dh,ct as a21di,d as a21dj,et as a21dk,f as a21dl,g as a21dm,h as a21dn,i as a21do,it as a21dp,j as a21dq,k as a21dr,l as a21ds,m as a21dt,n as a21du,nt as a21dv,o as a21dw,ot as a21dx,p as a21dy,q as a21dz,r as a21dA,rt as a21dB,s as a21dC,st as a21dD,t as a21dE,tt as a21dF,u as a21dG,v as a21dH,w as a21dI,x as a21dJ,y as a21dK,z as a21dL}from'./object-D5C_RkYD.mjs';import{t as a21dM}from'./received-H24viThJ.mjs';import{i as a21dN,n as a21dO,r as a21dP,t as a21dQ}from'./base-BdlWCNje.mjs';import{CallPayment}from'./w/call/payment.mjs';import{CallAllocation}from'./w/call/allocation.mjs';import{BuiltinPermissionIndex,CallPermission}from'./w/call/permission.mjs';import{CallArbitration}from'./w/call/arbitration.mjs';import{n as a21dR,t as a21dS}from'./util-DWhWaV7w.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 a21dT,t as a21dU}from'./service-NZ-TLNHV.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 a21dV,r as a21dW,t as a21dX}from'./call-Cf74XogX.mjs';import{a as a21dY,i as a21dZ,n as a21e0,r as a21e1,t as a21e2}from'./proof-BR6cbbRo.mjs';import{_ as a21e3,a as a21e4,b as a21e5,c as a21e6,d as a21e7,f as a21e8,g as a21e9,h as a21ea,i as a21eb,l as a21ec,m as a21ed,n as a21ee,o as a21ef,p as a21eg,r as a21eh,s as a21ei,t as a21ej,u as a21ek,v as a21el,x as a21em,y as a21en}from'./query-CoCibg2q.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 a21eo}from'./messenger-CkRQcNzs.mjs';import{_ as a21ep,a as a21eq,b as a21er,c as a21es,d as a21et,f as a21eu,g as a21ev,h as a21ew,i as a21ex,l as a21ey,m as a21ez,n as a21eA,o as a21eB,p as a21eC,r as a21eD,s as a21eE,t as a21eF,u as a21eG,v as a21eH,y as a21eI}from'./messenger-api-B9NB9Byo.mjs';import{A as a21eJ,C as a21eK,D as a21eL,E as a21eM,F as a21eN,I as a21eO,L as a21eP,M as a21eQ,N as a21eR,O as a21eS,P as a21eT,R as a21eU,S as a21eV,T as a21eW,_ as a21eX,a as a21eY,b as a21eZ,c as a21f0,d as a21f1,f as a21f2,g as a21f3,h as a21f4,i as a21f5,j as a21f6,k as a21f7,l as a21f8,m as a21f9,n as a21fa,o as a21fb,p as a21fc,r as a21fd,s as a21fe,t as a21ff,u as a21fg,v as a21fh,w as a21fi,x as a21fj,y as a21fk,z as a21fl}from'./w-GXPhQ_II.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,a21dE as AllocationMode,a21du as AmountType,a21dA as ArbStatus,a21bh as Arguments,a21be as AsyncCache,a21fd as BRIDGE_STEP_DESCRIPTIONS,BUITIN_IDS,a21C as BaseClient,a21r as BcsEnum,a21n as BcsStruct,a21p as BcsTuple,a21m as BcsType,a21eg as BridgeChainId,a21ff as BridgeClient,a21ed as BridgeErrorCode,a21fa as BridgeNodeClient,a21ea as BridgeTokenId,a21f5 as BridgeTransferDirection,a21eY as BridgeTransferStatus,a21fb as BridgeTransferStep,a21e9 as BridgeVersion,a21b1 as BrowserPasskeyProvider,BuiltinPermissionIndex,CallAllocation,CallArbitration,a21dQ as CallBase,a21dX as CallContact,CallDemand,CallGuard,CallMachine,a21dT as CallOrder,CallPayment,CallPermission,a21dV as CallPersonal,CallProgress,a21e2 as CallProof,CallRepository,CallReward,a21dU as CallService,CallTreasury,a21z as ClientCache,a21ci as CoinWrapPrefix,Config,a21c7 as ContextType,a21w as CoreClient,CryptoVault,DEFAULT_ACCOUNT_NAME,a21aS as DEFAULT_ED25519_DERIVATION_PATH,a21b4 as DEFAULT_FALCON512_DERIVATION_PATH,DEFAULT_LIMITS,DEFAULT_MESSENGER_CONFIG,DEFAULT_QUERY_LIMIT,a21aW as DEFAULT_SECP256K1_DERIVATION_PATH,a21aZ as DEFAULT_SECP256R1_DERIVATION_PATH,a21do as DiscountType,a21ce as ENTITY_LINKER_ADDRESS,a21bZ as ENTITY_REGISTRAR_ADDRESS,a21aj as ENTRYPOINT,a21f7 as ERC20_TRANSFER_TOPIC,ETH_MAINNET,a21aR as Ed25519Keypair,a21aT as Ed25519PublicKey,a21bL as EntityAddress,EvmAccount,EvmNetworkRegistry,a21aA as FALCON512_PRIVATE_KEY_SIZE,a21b3 as Falcon512Keypair,a21b2 as Falcon512PublicKey,a21aH as FaucetRateLimitError,a21cW as GUARDINSTRUCT,a21db as GUARDQUERY,a21c9 as GasCoinType,a21cg as GasTokenType,GetAccountOrMark_Address,GetLocalNamesByAddresses,GetManyAccountOrMark_Address,a21bO as GetObject,a21c3 as GetObjectDescription,a21ck as GetObjectExisted,a21aL as GrpcCoreClient,a21aN as GrpcTypes,a21aP as GrpcWebFetchTransport,a21ej as INFO_CONSTANT,a21de as IdFrom,a21ah as Inputs,a21bQ as IsBcsStringLength,a21bT as IsValidArgType,a21cb as IsValidBalance,a21c5 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,a21cL as LogLevel,a21cI as Logger,a21eb as MAINNET_BRIDGE_CONFIG,a21e4 as MAINNET_COMMITTEE_MEMBER_ADDRESSES,a21ef as MAINNET_COMMITTEE_PUBKEYS,a21ei as MAINNET_COMMITTEE_WEIGHTS,a21bX as MAX_DEPENDED_COUNT,a21bV as MAX_DESCRIPTION_LENGTH,a21bJ as MAX_ENV_PERMISSION_GUARD_COUNT,a21cm as MAX_GUARD_TABLE_ITEM_LENGTH,a21cq as MAX_INPUT_SIZE,a21bN as MAX_LONG_NAME_LENGTH,MAX_MESSENGER_ACCOUNTS,a21cp as MAX_MULTI_OPERANDS,a21bB as MAX_NAME_LENGTH,a21dw as MAX_OBJECTS_PER_QUERY,a21bl as MAX_PERMISSION_GUARD_COUNT,a21e0 as MAX_PROOF_SIZE,MAX_QUERY_LIMIT,a21e1 as MAX_SERVER_PUBKEY_SIZE,a21dZ as MAX_SERVER_SIGNATURE_SIZE,a21co as MAX_TABLE_SIZE,a21Q as MIST_PER_WOW,a21Y as MOVE_STDLIB_ADDRESS,MessageDirection,MessageStatus,MessageType,a21eo as Messenger,MessengerError,MessengerErrorCode,a21er as MessengerManager,a21bC as Modules,a21cE as MoveErrors,a21bc as MultiSigPublicKey,a21b6 as MultiSigSigner,NORMAL_MESSAGE_BYTES_LIMIT,a21dC as OBJECT_TYPE_DEFINITIONS,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,a21c2 as RecipientType,a21bj as RegistrarAddress,a21dO 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,a21eJ as TOKENS_CLAIMED_TOPIC,a21f6 as TOKENS_DEPOSITED_TOPIC,a21eQ as TOKENS_DEPOSITED_V2_TOPIC,TokenInfo,a21ag as Transaction,a21a9 as TransactionCommands,a21ab as TransactionDataBuilder,a21e3 as TransferStatus,a21dh as TreasuryOp,a21s as TypeTagSerializer,a21aa as UpgradePolicy,a21c1 as ValueType,a21cz as WErrors,a21cC as WException,WIP,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,a21cx as WValidate,a21ct as W_ENSURE,a21cA as W_ERROR,a21cD as W_FAILURE,a21aw as W_PRIVATE_KEY_PREFIX,a21cu as W_SAFE,a21cy as W_SUCCESS,a21cF as W_VALIDATE_PARAM,WipError,WipSizeError,WipValidationError,a21ds as WitnessSourceType,a21dG as WitnessTargetType,a21bv as WitnessType,a21fk 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,a21d3 as bcsBytesToValue,a21eF as blacklist,a21eK as buildClaimMessage,a21am as bytesEqual,bytesToBigInt,bytesToHex,checkSchemaCompatibility,a21d9 as checkType,a21fi as claimOnEth,a21eW as claimOnEthBySeq,a21eZ as claimOnWow,a21af as coinWithBalance,a21k as compareBcsBytes,a21by as contactFn,a21cK as createSensitiveLogger,a21bo as createValueContainer,createWip,a21dj as data2object,a21az as decodeWowPrivateKey,a21br as demandFn,a21eM as depositErc20,a21eL as depositEth,a21eS as depositFromEth,a21eV as depositFromWow,a21I as deriveDynamicFieldID,a21a0 as deriveObjectID,a21eR as encodeApprove,a21eT as encodeBridgeERC20,a21eN as encodeBridgeERC20V2,a21eO as encodeBridgeETH,a21eP as encodeBridgeETHV2,a21eU as encodeTokenTransferPayloadV2,a21fl as encodeTransferBridgedTokensWithSignatures,a21au as encodeWowPrivateKey,a21cv as enrichMoveError,a21cM as extractCoinType,a21u as extractStatusFromEffectsBcs,a21eA as extractZipFromPlaintext,a21eD as extract_zip_messages,fetch_token_info_operation,a21da as filterGuardInstruct,a21e6 as findEvmChainConfig,a21ec as findEvmChainConfigByBridgeChainId,a21ek as findToken,a21e7 as findTokenBySymbol,a21O as formatAddress,a21U as formatDigest,formatGuardParseErrors,a21y as formatMoveAbortMessage,a21ex as friendslist,a21a1 as fromBase58,a21W as fromBase64,a21Z as fromHex,gen_passport,a21dY as gen_proof,generateNodeComments,generate_wip,a21eq as generate_wts,a21cT as getCallEnvAccount,a21dP as getCoinParam,a21aF as getFaucetHost,a21ai as getFullnodeUrl,a21dc as getGuardQueryInfo,a21aQ as getJsonRpcFullnodeUrl,a21cH as getLogLevel,a21eB as getMessengerManager,a21cw as getMoveErrorDescription,a21dl as getMoveNameFromNumber,a21dy as getMoveNameFromObjectType,a21dt as getNumberFromMoveName,a21dn as getNumberFromObjectType,a21dm as getNumbersFromObjectTypes,a21dd as getObjectTypeDefinition,a21dH as getObjectTypeDefinitionFromNumber,a21dK as getObjectTypeFromMoveName,a21dg as getObjectTypeFromNumber,a21dJ as getObjectTypesFromNumbers,a21a8 as getPureBcsSchema,guard2file,a21eE as guardlist,hexToBytes,a21d5 as idFromToString,a21a7 as isArgument,a21dN as isCallResultSubmission,a21el as isEvmChain,a21bu as isGasTokenType,a21bA as isThisPackage,a21ae as isTransaction,isValidAddress,a21cs as isValidArray,a21aE as isValidBIP32Path,a21bk as isValidDescription,isValidEvmAddress,a21aC as isValidHardenedPath,a21bE as isValidHttpUrl,a21cP as isValidIdFromInput,a21bq as isValidLongName,a21bD as isValidName,a21e as isValidNamedPackage,a21g as isValidStructTag,a21c as isValidTransactionDigest,a21bF as isValidU128,a21bp as isValidU16,a21bt as isValidU256,a21cd as isValidU32,a21bs as isValidU64,a21bH as isValidU8,a21dk as isValidValueContainer,a21bG as isValidValueType,a21bI as isValidValueTypeInput,a21a as isValidWowAddress,a21f as isValidWowObjectId,a21bz as isValueTypeNumber,a21cB as isWException,a21bi as isWitnessType,a21en as isWowChain,a21aJ as isWowGraphQLClient,a21aM as isWowGrpcClient,a21D as isWowJsonRpcClient,loadWip,local_info_operation,local_mark_operation,a21cG as logger,a21bS as machineFn,machineNode2file,a21fe as makeBridgeTransferState,a21es as mark_conversation_as_viewed,a21ey 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,a21dI as numberToObjectType,a21d6 as objectTypeToNumber,a21cj as object_module_and_name_from_type,a21c8 as object_name_from_type,a21dF as owner_receive,a21f0 as parseEthClaimEvent,a21f8 as parseEthDepositEvent,parseGuardFile,parseGuardFromMarkdown,a21cR as parseIdFrom,a21dv as parseObjectType,a21b8 as parsePartialSignatures,a21dB as parseRecipient,a21ar as parseSerializedSignature,a21j as parseStructTag,a21a2 as parseToMist,a21P as parseToUnits,a21G as parseTransactionBcs,a21v as parseTransactionEffectsBcs,a21dp as parseTypeParameter,a21cf as parseValueType,a21df as permission_set,privateKeyToAddress,a21eG as proof_message,a21ba as publicKeyFromRawBytes,a21b7 as publicKeyFromWowBytes,a21et as pull_messages,a21q as pureBcsSchemaFromTypeName,a21fg as queryErc20Balance,a21f1 as queryEthBalance,a21f2 as queryEthTxConfirmations,a21fc as queryEthTxReceipt,a21f9 as queryEvmToWowTransferStatus,a21dS as queryObjectWithType,a21dR as queryObjectsWithType,a21ee as queryPermissions,a21eh as queryProtocolInfo,a21cQ as queryTableItem_AddressMark,a21d1 as queryTableItem_DemandPresenter,a21dr as queryTableItem_EntityLinker,a21cN as queryTableItem_EntityRegistrar,a21dq as queryTableItem_MachineNode,a21cZ as queryTableItem_PermissionPerm,a21d0 as queryTableItem_ProgressHistory,a21d2 as queryTableItem_RepositoryData,a21cS as queryTableItem_RewardRecord,a21cV as queryTableItem_TreasuryHistory,a21fj as queryWowClaimStatus,a21f4 as queryWowToEvmTransferStatus,a21f3 as queryWowTx,query_account,query_account_list,a21e5 as query_events,a21em 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,a21cY as query_objects,a21d4 as query_objects_json,a21dL as query_personal,a21dM as query_received,a21cO as query_table,a21d8 as query_tableItem,a21cU as query_table_json,a21d7 as raw2type,registerBridgeEvmNetworks,a21c0 as repositoryFn,a21aG as requestWowFromFaucetV2,a21cX as resolveCallEnv,a21dz as restoreNodeFromOutput,a21bM as rewardFn,a21eu as send_file,a21eC as send_message,a21ca as serviceFn,a21cJ as setLogLevel,a21ez as settings,signEIP1559,signLegacy,sign_wip,a21ew as sign_wts,a21T as toBase58,a21M as toBase64,toChecksumAddress,a21X as toHex,a21as as toSerializedSignature,a21ch as toTxAddress,a21bP as toTxAddressVec,a21c4 as toTxObject,a21cl as toTxString,a21bR as toTxU128,a21bU as toTxU16,a21cc as toTxU16Vec,a21c6 as toTxU256,a21bY as toTxU32,a21bW as toTxU64,a21bK as toTxU8,a21dW as transformPersonalInput,transformRewardInput,a21cn as treasuryFn,a21dx as uint2address,a21dD as validObjects,validateGuardData,validateGuardNode,a21di as valueToBcsBytes,a21cr as valueTypeToString,a21e8 as verifyCommitteeConsistency,a21b5 as verifyPersonalMessageSignature,a21b9 as verifySignature,a21bb as verifyTransactionSignature,verifyWip,verify_wip,a21ev as verify_wts,a21eX as waitForEthTx,a21fh as waitForWowTx,a21ep as watch_conversations,a21eH as watch_messages,wip2html,wipToHtml,a21eI as wts2html};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $S as
|
|
1
|
+
import { $S as ValidatorsApy, $b as UnsafeSplitCoinParams, $x as ConsensusDeterminedVersionAssignments, $y as GetBalanceParams, A as isWowJsonRpcClient, AC as WowProgrammableMoveCall, AS as PaginatedCoins, Ab as TCoinsParams, Ax as CoinBalance, BC as WowValidatorSummary, BS as RPCTransactionRequestParams, Bb as TValidatorsApyParams, Bx as AccumulatorEvent, C as JsonRpcError, CC as WowObjectData, CS as MultiSigPublicKeyLegacy, Cb as MultiGetTransactionBlocksParams, Cx as WowObjectChangeCreated, D as PaginationArguments, DC as WowObjectResponse, DS as ObjectValueKind, Db as TAllCoinsParams, Dx as WowObjectChangeTransferred, E as OrderArguments, EC as WowObjectRef, ES as ObjectResponseError, Eb as TAllBalancesParams, Ex as WowObjectChangePublished, FC as WowTransactionBlockBuilderMode, FS as PaginatedTransactionResponse, Fb as TOwnedObjectsParams, Fx as EpochPage, GC as JsonRpcHTTPTransportOptions, GS as TransactionBlockData, Gb as UnsafeMoveCallParams, Gx as Checkpoint, Gy as BscribeTransactionParams, HC as WowWithdrawalTypeArg, HS as Signature, Hb as TryMultiGetPastObjectsParams, Hx as AccumulatorValue, IC as WowTransactionBlockKind, IS as PasskeyAuthenticator, Ib as TReferenceGasPriceParams, Ix as ProgrammableTransaction, JS as TransactionFilter, Jb as UnsafePayWowParams, Jx as Claim, Jy as EryEventsParams, KC as JsonRpcTransport, KS as TransactionBlockEffectsModifiedAtVersions, Kb as UnsafePayAllWowParams, Kx as CheckpointCommitment, Ky as DevInspectTransactionBlockParams, LC as WowTransactionBlockResponse, LS as ProtocolConfig, Lb as TStakesByIdsParams, Lx as WowMoveNormalizedModules, MC as WowSystemStateSummary, MS as PaginatedEvents, Mb as TDynamicFieldObjectParams, Mx as DynamicFieldPage, NC as WowTransaction, NS as PaginatedObjectsResponse, Nb as TDynamicFieldsParams, Nx as EndOfEpochInfo, O as WowJsonRpcClient, OC as WowObjectResponseQuery, OS as OwnedObjectRef, Ob as TBalanceParams, Ox as WowObjectChangeWrapped, PC as WowTransactionBlock, PS as PaginatedStrings, Pb as TLatestWowSystemStateParams, Px as EpochInfo, QS as ValidatorApy, Qb as UnsafeSplitCoinEqualParams, Qx as CompressedSignature, Qy as GetAllCoinsParams, RC as WowTransactionBlockResponseOptions, RS as ProtocolConfigValue, Rb as TStakesParams, Rx as WowMoveObject, S as getJsonRpcFullnodeUrl, SC as WowObjectChange, SS as MultiSigPublicKey, Sb as MultiGetObjectsParams, Sx as WTryMultiGetPastObjectsParams, T as WowHTTPTransportError, TC as WowObjectDataOptions, TS as ObjectRead, Tb as QueryTransactionBlocksParams, Tx as WowObjectChangeMutated, UC as HttpHeaders, US as StakeObject, Ub as UnsafeBatchTransactionParams, Ux as Balance, VC as WowWithdrawFrom, VS as RawData, Vb as TryGetPastObjectParams, Vx as AccumulatorOperation, WC as JsonRpcHTTPTransport, WS as TransactionBlockBytes, Wb as UnsafeMergeCoinsParams, Wx as BalanceChange, Wy as BscribeEventParams, XS as TypeOrigin, Xb as UnsafeRequestAddStakeParams, Xx as CoinSupply, Xy as ExecuteTransactionBlockParams, YS as TransferObjectParams, Yb as UnsafePublishParams, Yx as CoinStruct, Yy as EryTransactionBlocksParams, ZS as UpgradeInfo, Zb as UnsafeRequestWithdrawStakeParams, Zx as CommitteeInfo, Zy as GetAllBalancesParams, _C as WowMoveNormalizedModule, _S as MoveStruct, _b as GetReferenceGasPriceParams, _x as WGetTotalTransactionBlocksParams, aC as WowEvent, aS as DynamicFieldInfo, ab as GetDynamicFieldObjectParams, ax as WGetChainIdentifierParams, bC as WowMoveStructTypeParameter, bS as MultiSig, bb as GetTotalSupplyParams, bx as WMultiGetTransactionBlocksParams, cC as WowGasData, cS as ECMHLiveObjectSetDigest, cb as GetLatestWowSystemStateParams, cx as WGetEventsParams, dC as WowMoveAbort, dS as ExecuteTransactionRequestType, db as GetNormalizedMoveModuleParams, dx as WGetNormalizedMoveFunctionParams, eC as WowArgument, eS as DelegatedStake, eb as GetCheckpointParams, ex as UnsafeTransferObjectParams, fC as WowMoveFunctionArgType, fS as ExecutionStatus, fb as GetNormalizedMoveModulesByPackageParams, fx as WGetNormalizedMoveModuleParams, gC as WowMoveNormalizedFunction, gS as MoveCallParams, gb as GetProtocolConfigParams, gx as WGetProtocolConfigParams, hC as WowMoveNormalizedField, hS as InputObjectKind, hb as GetOwnedObjectsParams, hx as WGetObjectParams, iC as WowEndOfEpochTransactionKind, iS as DryRunTransactionBlockResponse, ib as GetCommitteeInfoParams, ix as WExecuteTransactionBlockParams, jC as WowReservation, jS as PaginatedDynamicFieldInfos, jb as TCommitteeInfoParams, jx as CheckpointPage, k as WowJsonRpcClientOptions, kC as WowParsedData, kS as PaginatedCheckpoints, kb as TCoinMetadataParams, kx as Order, lC as WowMoveAbility, lS as EndOfEpochData, lb as GetMoveFunctionArgTypesParams, lx as WGetLatestCheckpointSequenceNumberParams, mC as WowMoveNormalizedEnum, mS as GetPastObjectRequest, mb as GetObjectParams, mx as WGetNormalizedMoveStructParams, nC as WowChangeEpoch, nS as DevInspectResults, nb as GetCoinMetadataParams, nx as WDevInspectTransactionBlockParams, oC as WowEventFilter, oS as DynamicFieldName, ob as GetDynamicFieldsParams, ox as WGetCheckpointParams, pC as WowMoveModuleId, pS as GasCostSummary, pb as GetNormalizedMoveStructParams, px as WGetNormalizedMoveModulesByPackageParams, qC as JsonRpcTransportRequestOptions, qS as TransactionEffects, qb as UnsafePayParams, qx as CheckpointId, qy as DryRunTransactionBlockParams, rC as WowCoinMetadata, rS as DisplayFieldsResponse, rb as GetCoinsParams, rx as WDryRunTransactionBlockParams, sC as WowExecutionResult, sS as DynamicFieldType, sb as GetLatestCheckpointSequenceNumberParams, sx as WGetCheckpointsParams, tC as WowCallArg, tS as DevInspectArgs, tb as GetCheckpointsParams, tx as UnsafeTransferWowParams, uC as WowMoveAbilitySet, uS as EventId, ub as GetNormalizedMoveFunctionParams, ux as WGetMoveFunctionArgTypesParams, vC as WowMoveNormalizedStruct, vS as MoveValue, vb as GetStakesByIdsParams, vx as WGetTransactionBlockParams, w as WowHTTPStatusError, wC as WowObjectDataFilter, wS as ObjectOwner, wb as QueryEventsParams, wx as WowObjectChangeDeleted, xC as WowMoveVisibility, xS as MultiSigLegacy, xb as GetTransactionBlockParams, xx as WTryGetPastObjectParams, yC as WowMoveNormalizedType, yS as MoveVariant, yb as GetStakesParams, yx as WMultiGetObjectsParams, zC as WowTransactionBlockResponseQuery, zS as PublicKey, zb as TTotalSupplyParams, zx as WowMovePackage } from "../index-C-WBdTM5.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 Claim, 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 PaginatedStrings, type PaginatedTransactionResponse, type PaginationArguments, 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-CcSxA1Tm.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 { iy as Ed25519PublicKey, ny as Ed25519Keypair, ry as Ed25519KeypairData, ty as DEFAULT_ED25519_DERIVATION_PATH } from "../../index-C-WBdTM5.mjs";
|
|
2
2
|
export { DEFAULT_ED25519_DERIVATION_PATH, Ed25519Keypair, type Ed25519KeypairData, Ed25519PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Bv as Falcon512PublicKey, Lv as DEFAULT_FALCON512_DERIVATION_PATH, Rv as Falcon512Keypair, zv as Falcon512KeypairData } from "../../index-C-WBdTM5.mjs";
|
|
2
2
|
export { DEFAULT_FALCON512_DERIVATION_PATH, Falcon512Keypair, type Falcon512KeypairData, Falcon512PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gv as PasskeyProvider, Hv as BrowserPasskeyProvider, Kv as findCommonPublicKey, Uv as BrowserPasswordProviderOptions, Vv as PasskeyPublicKey, Wv as PasskeyKeypair } from "../../index-C-WBdTM5.mjs";
|
|
2
2
|
export { BrowserPasskeyProvider, type BrowserPasswordProviderOptions, PasskeyKeypair, type PasskeyProvider, PasskeyPublicKey, type findCommonPublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $v as Secp256k1Keypair, Qv as DEFAULT_SECP256K1_DERIVATION_PATH, Zv as Secp256k1PublicKey, ey as Secp256k1KeypairData } from "../../index-C-WBdTM5.mjs";
|
|
2
2
|
export { DEFAULT_SECP256K1_DERIVATION_PATH, Secp256k1Keypair, type Secp256k1KeypairData, Secp256k1PublicKey };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Jv as DEFAULT_SECP256R1_DERIVATION_PATH, Xv as Secp256r1KeypairData, Yv as Secp256r1Keypair, qv as Secp256r1PublicKey } from "../../index-C-WBdTM5.mjs";
|
|
2
2
|
export { DEFAULT_SECP256R1_DERIVATION_PATH, Secp256r1Keypair, type Secp256r1KeypairData, Secp256r1PublicKey };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as a31a}from'./wow-types-DcqbnAaK.mjs';import{r as a31b}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 a31c from'path';import*as a31d from'fs';import{createHash}from'crypto';const logger=a31b('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&&a31a(a)&&a31a(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-Ck9Bu-Jx.mjs')['then'](l=>l['o']),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':d['sessionId']})['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']||a31c['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=a31c['resolve'](a);if(!a31d['existsSync'](b))throw new MessengerError('FILE_NOT_FOUND','File\x20not\x20found:\x20'+b);const c=a31d['readFileSync'](b);return new Uint8Array(c);}['detectContentType'](a){switch(a31c['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(a31a(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 a31a}from'./wow-types-DcqbnAaK.mjs';import{r as a31b}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 a31c from'path';import*as a31d from'fs';import{createHash}from'crypto';const logger=a31b('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&&a31a(a)&&a31a(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-BR6cbbRo.mjs')['then'](l=>l['o']),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':d['sessionId']})['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']||a31c['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=a31c['resolve'](a);if(!a31d['existsSync'](b))throw new MessengerError('FILE_NOT_FOUND','File\x20not\x20found:\x20'+b);const c=a31d['readFileSync'](b);return new Uint8Array(c);}['detectContentType'](a){switch(a31c['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(a31a(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};
|